Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Flash jako link
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
mdco
Jak zrobić aby animacja flash była linkiem, ale link nie może być wbudowany w animacje.
Niestety coś takiego nie działa:
<a href=......> <object....>......</object> </a>
Ma ktoś jakiś pomysł?

Dzieki
Strus
Hmmm trochu lipa jak to nie działa, bo nie ma innej możliwości wstawienia Flasha na strone niż object i tworzenia linków przez a winksmiley.jpg
nospor
Ja na flash się nie znam, ale kiedyś zleciiliśmy zrobienie flasha, i w samym flashu były linki. Może też zrób linka w samym flashu
mdco
Własnie chodzi mi żeby nie robić na sztywno linku w pliku swf.
Ale już sobie poradziłem, dla zaciekwionych podaje rozwiązanie winksmiley.jpg :
Kod
<script language="javascript">
function baner_klik()
{
       window.open("dowolny_link")
}
</script>


a w pliku swf użyłem
Kod
getURL("javascript: baner_klik();")


Może sie komuś przyda winksmiley.jpg
php programmer
no tak, a co wtedy kiedy nie mozesz edytowac pliku flash
bo masz jedynie plik swf
revyag
Nie da się zrobić tego bez edycji pliku źródłowego. Była już o tym temat.
bigZbig
Mam taki tworczy pomysl - poprawcie mnie jesli to niemozliwe - moze by przykryc film flasha jakas przezroczysta warstwa i te warstwe lub znajdujacy sie na niej przezroczysty element podlinkowac. Jest to rodzaj triku ale moze zadziala?
revyag
Nie zadziała smile.gif
Flash zawsze ustawi się wyżej niż jakakolwiek warstwa.
php programmer
no nie wiem ja pamietam ze bylo kiedys u mnie w pracy takie rozwiazanie
to byl chyba przezroczysty gif, tylko ze to bylo na dpstawie
pozycji absolutnej, a czy ktos wie czy mozna nalozyc na siebie elementy jeden na drugi ale nie korzystajac z pozycji absolutnej questionmark.gif

ponizej rozwiazanie niezbyt profesjonalne ale jak narazie nie mam innego
  1. <object ="flash_bez_linku"></object>
  2. <div style="position:absolute; left:0px; top:0px;">
  3. <!-- tutaj celujemy pozycje tak aby trafiło na nasz baner swf -->
  4. <A HREF="<?=$link?>"><IMG src="blank.gif" border="0"></A>
  5. <!-- gdzie blank jest przeźroczystym gifem -->
  6. </div>
revyag
Wiem że się powtarzam, ale to nie zadziała snitch.gif Co byś nie wymyślił flash i tak będzie na górze.
poza tym @php programmer
Cytat
no tak, a co wtedy kiedy nie mozesz edytowac pliku flash
bo masz jedynie plik swf

a potem:
Cytat
no nie wiem ja pamietam ze bylo kiedys u mnie w pracy takie rozwiazanie
to byl chyba przezroczysty gif, tylko ze to bylo na dpstawie
pozycji absolutnej,


Skoro znałeś rozwiązanie (pomijam fakt że jest błędne) to po co zadawałeś pytanie questionmark.gif
Nabijania postów nie lubimy.
php programmer
To nie jest wcale nabiajnie postu.
Po pierwsze to co napisałem działa, bo dziś tego uzyłem,
ale działa tylko w IE a w FF już nie
dlatego moje pytanie pomimo ze niby sam sobie dałem odpowiedź nie jest bezcelowe, bo moja własna odpowiedź nie jest do końca dobra bo po pierwsze działa jedynie w IE a po drugie trzeba korzystać z pozycji absolutnej czego wole uniknąc
bigZbig
Cytat(revyag @ 2006-02-13 13:30:09)
Nie zadziała smile.gif
Flash zawsze ustawi się wyżej niż jakakolwiek warstwa.

@revyag - jestes pesymista - zadziala tylko trzeba przykryc jednego flasha innym, wypozycjonowac absolutnie i nadac z-index. Sprawdzalem tylko pod FF.

edit
--------------------
@php programer - nie unikaj pozycjonowania absolutnego. Pamietaj ze pozycjonowanie absolutne dokonuje sie wzgledem bloku obejmujacego, a blokiem obejmujacym nie musi byc okno przegladarki. Jak mozna przeczytac na http://www.kurshtml.boo.pl/
Cytat
Blokiem obejmującym zwykle jest okno przeglądarki lub ramka. Jednak jeżeli element, który pozycjonujemy znajduje się wewnątrz innego elementu, który wcześniej został poddany pozycjonowaniu (absolutnemu, relatywnemu lub ustalonemu), to położenie jest obliczane względem pozycji tego elementu nadrzędnego, a nie okna przeglądarki.
Zajec
A czemu właściwie przeglądarki nie obsługują takiego prostego
Kod
<a><object></object></a>
? Jest o tym jakaś wzmianka na W3C?
revyag
Tak, przyznaję się do błędu snitch.gif To jest do obejścia smile.gif
Zgodnie ze wskazówkami ze strony macromedii link
udało sie zrobić odnośnik na obiekcie flasha.
Kod
<style type="text/css">
div#flash, a#flashlink {
    position:absolute;
    left:0;
    top:0;
}
a#flashlink {
    display:block;
}
a#flashlink img {
    border:0;
}
</style>

  1. <div id="flash">
  2. <object type="application/x-shockwave-flash" data="m.swf?path=film.swf" width="644" height="45">
  3. <param name="movie" value="m.swf?path=film.swf" />
  4. <param name="wmode" value="transparent" />
  5. </object>
  6. </div>
  7. <a id="flashlink" href="http://www.wp.pl"><img src="obrazek.gif" /></a>


Flash osadzony według: flashsatay

Zgodnie z tym co napisał php programmer trzeba przykryć flasha przeźroczystym gifem o rozmiarach flasha. Dodatkowo należy ustawić parametr wmode, oznaczający przeźroczystość filmu.

Wada tego rozwiązania jest oczywista - pozycjonowanie absolutne, ale jak ktoś nie ma wyjścia to pewnie mu się to przyda.

Zaleta jest taka że ff,ie i opera poprawnie to interpretują.

Można to zrobić też bez elementu a. Wypozycjonować absolutnie sam obrazek i dać mu zdarzenie onclick.
php programmer
revyag
Ja zrobiłem jak napisałeś, ale to zachowuje się tak jak to moje
tzn w IE ok ale juz w FF gif chowa się pod spód i klikanie nic nie daje
revyag
No to coś źle zrobiłeś smile.gif
Dodałeś do kodu osadzającego flasha:
  1. <param name="wmode" value="transparent" />

bez tego nie pójdzie.
Jak napisałem wyżej, sprawdziłem i pod ie,ff,opera działa bez zarzutu.
php programmer
oczywisciez ze dodalem transparent

a mozesz dac link, gdzie masz to działające?
revyag
klik
działające smile.gif
sztosz
Dobre, tylko kiedy ktoś tak jak ja używa FX + FlashBlock to wtedy ni ma szans na zobaczenie flasha winksmiley.jpg Ale to jest akurat nie do rozwiązania winksmiley.jpg
revyag
No ale nie mówimy tu o takim przypadku. Chodziło o to aby bez ingerencji w źródło flasha, zrobić z niego klikalnego linka smile.gif
php programmer
rev.. (dziwna nazwa)
twoja strona nie istenieje nawet

The page cannot be found
revyag
Masz refleks nie ma co. Wstawiłem to 15 lutego, poczekałem 5 dni i zdjąłem, dzisiaj jest 24.
Bez jaj, miałem czekać aż łaskawie sobie zobaczysz ?
LBO
hmmm.. lepszym rozwiazaniem jest zrobic flasha containera... ktory ladowal by okreslona inna animacje.. sztuka w tym by wszelkie SRCe czerpal ze znacznikow PARAM (w samym HTMLu wiec php jak najbardziej biggrin.gif)... czyli 2 paramy by byly jeden ze sciezka do external flasha.. a drugi z sciezka dla linka (oczywiscie trzeba by bylo ladnie to wszystko oprogramowac, ale to juz nie problem)
--------------------------------------
wiem, ze troche pozno,ale moze ktos bedzie mial podobny problem
revyag
@LBO tu chodziło o linka na animacji którą masz już gotową, bez ingerencji w plikach źródłowych. Bo tak cała dyskusja traci sens - w źródle flasha zrobie sobie link i po kłopocie.
bigZbig
@revyag - LBO chodzilo o zrobienie dodatkowego filmu flasha ktory wczytywalby interesujacy nas inny plik flasha i linkowal go. W takim przypadku nie musimy miec zrodla pliku pierwotnego. Tworzony przez nas dodatkowy film flasha bylby tylko opakowaniem.

Z drugiej strony zgadzam sie z Toba ze ta dykusja dotyczy raczej problemu jak podlinkowac film flasha nie uzywajac flasha, a jedynie html, css ewentualnie js.
The Night Shadow
Czy w tym:

  1. <script language="javascript">
  2. function baner_klik()
  3. {
  4. window.open("dowolny_link")
  5. }


Da się zagnieździć formularz z danymi? Chodzi mi o to, że animacja ma być linkiem, ale ma przesyłać dane za pomocą formlarza. Czy może odwrotnie sam skrypt zagnieździć w formularzu?

Chodzi o taki link w formularz:

  1. <a href="#" onclick="document.getElementById('usun<? echo "".$wiersz['login'].""; ?>').submit();" onMouseOver="overlib('<table><tr><td><center>Czasem Ci, którzy pojawili się w tym życiu<br />okazują się nieproszonymi gośćmi...</center></td></tr></table>', FGCOLOR, '#222222', BGCOLOR, '#000000', TEXTCOLOR, '#CCCCCC', STATUS, 'Dymek zwykły', VAUTO, WRAP)" onMouseOut="nd();"><b>Usuń</b></a>



Znalazłem rozwiąznie. Dla zainteresowanych:


  1. <script language="javascript">
  2. function baner_klik()
  3. {
  4. document.getElementById('usun<? echo "".$wiersz['login'].""; ?>').submit();
  5. }
  6. </script>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.