Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [FLASH] PHP, FlashVars i Firefox, Dlaczego to nie działa... ?
pawlikwn
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.10.2008

Ostrzeżenie: (0%)
-----


Witam,

trochę dziwny problem, ale wciąż nie mogę znaleźć rozwiązania. Mianowicie chodzi o zmienne flashVars przekazywane do galerii flash. W zależności od strony, przekazuję zmienną z nazwą galerii. Wszystko jest spoko w operze i w IE, natomiast FF przechwytuje zmienną, ale nie podmienia jej przy zmianie strony. Dopiero po odświeżeniu z pominięciem Cache'a jest w stanie ją wczytać.

Moje pomysły:
1. Wymusić nie cache'owanie
  1. <meta http-equiv="Pragma" content="no-cache" />
  2. <meta http-equiv="expires" content="-1" />
  3.  
  4. NIE ZADZIAŁAŁO


2. Zrobić to samo nagłówkami w PHP:
  1.  
  2. header("Cache-Control: no-cache, must-revalidate");
  3. header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); //Dowolna data wsteczna
  4.  
  5. NIE ZADZIAŁAŁO


3. Strzelić z nerwów w klawiaturę: - nie pomogło

Macie jakieś sugestie (IMG:style_emoticons/default/questionmark.gif)

Kod flasha:
{tpl:flash_gal_category} - tutaj jest nazwa zmiennej

  1. <div id="flashdiv">
  2. <script language="JavaScript" type="text/javascript">
  3. AC_FL_RunContent(
  4. 'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
  5. 'width', '703',
  6. 'height', '355',
  7. 'src', 'gallery',
  8. 'quality', 'high',
  9. 'pluginspage', 'http://www.adobe.com/go/getflashplayer',
  10. 'align', 'middle',
  11. 'play', 'true',
  12. 'loop', 'true',
  13. 'FlashVars', 'category={tpl:flash_gal_category}',
  14. 'scale', 'showall',
  15. 'wmode', 'transparent',
  16. 'devicefont', 'false',
  17. 'id', 'gallery',
  18. 'bgcolor', '#251c1c',
  19. 'name', 'gallery',
  20. 'menu', 'true',
  21. 'allowFullScreen', 'false',
  22. 'allowScriptAccess','sameDomain',
  23. 'movie', 'gallery',
  24. 'salign', ''
  25. ); //end AC code
  26. <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="703" height="355" id="gallery" align="middle">
  27. <param name="allowScriptAccess" value="sameDomain" />
  28. <param name="allowFullScreen" value="false" />
  29. <param name="FlashVars" value="category={tpl:flash_gal_category}" />
  30. <param name="movie" value="gallery.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#251c1c" />
  31. <embed src="gallery.swf" FlashVars="category={tpl:flash_gal_category}" quality="high" bgcolor="#251c1c" width="703" height="355" name="gallery" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
  32. </object>
  33.  
  34. </div>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
varez
post
Post #2





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


o ile mi wiadomo to flash jest zawsze najbardziej "na gorze"..
a sprawdzales czy na innym FF tez sa problemy?
Go to the top of the page
+Quote Post
pawlikwn
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.10.2008

Ostrzeżenie: (0%)
-----


Cytat(varez @ 23.11.2009, 22:58:45 ) *
o ile mi wiadomo to flash jest zawsze najbardziej "na gorze"..


To zależy właśnie od parametru wmode: jeśli jest window to flash jest renderowany zewnętrznie względem przeglądarki. Umieszczanie elementów JS, albo DHTML jest nad nim wtedy nie możliwe. Jeśli ustawisz opaque, bądź transparent - renderowaniem zajmuje się przeglądarka i wówczas CSS, DHTML, JS mogą wchodzić w interakcję z flashem. Dlatego w przypadku dropdown menu ustawia się parametr wmode=opaque, lub wmode=transparent. Cytat:
Cytat
Window Mode (wmode) - What's It For?
There are three window modes. Windowless mode allows you to take advantage of the transparent movie, absolute positioning, and layering capabilities available in the browser. They are controlled with the wmode parameter in the object tag. The default mode is available by either choosing not to specify any wmode, or by using wmode="window". We'll look at Macromedia's explanation of the three modes and then we'll explore them a bit further individually.

  • Window: Use the Window value to play a Flash Player movie in its own rectangular window on a web page. This is the default value for wmode and it works the way the classic Flash Player works. This normally provides the fastest animation performance.
  • Opaque: By using the Opaque value you can use JavaScript to move or resize movies that don't need a transparent background. Opaque mode makes the movie hide everything behind it on the page. Additionally, opaque mode moves elements behind Flash movies (for example, with dynamic HTML) to prevent them from showing through.
  • Transparent: Transparent mode allows the background of the HTML page, or the DHTML layer underneath the Flash movie or layer, to show through all the transparent portions of the movie. This allows you to overlap the movie with other elements of the HTML page. Animation performance might be slower when you use this value.

Więcej na tej stronie: http://www.communitymx.com/content/article.cfm?cid=e5141



Cytat(varez @ 23.11.2009, 22:58:45 ) *
a sprawdzales czy na innym FF tez sa problemy?


Niestety jest to samo (IMG:style_emoticons/default/sad.gif)

Pośrednim rozwiązaniem problemu było dodanie zmiennej losowej jako get w URLu określającym adres obiektu swf. Dzięki temu zadziałał no-cache przeglądarki i za każdym razem .swf wczytuje się na nowo. Super, tylko że w przypadku większych plików .swf metoda kosztowna transferowo...
Ja swojego .swf a musiałem właśnie przez to zoptymailizować i dla ciekawostki powiem, że usunięcie z loadera dynamicznego pola tekstowego pokazującego ilość załadowanych danych w procentach zaoszczędziło mi 80 KB (IMG:style_emoticons/default/exclamation.gif) ! Tego też nie rozumiem, bo w polu embedowałem tylko 11 znaków (0-9 i %).

Rozwiązanie:
  1. var flashvars = {category: "xxxx"};
  2. var params = {};
  3. var attributes = {};
  4. params.wmode = "transparent";
  5. swfobject.embedSWF("gallery_final.swf?category=xxxx&rd=12345678", "flashdiv", "703", "350", "10.0.0","expressInstall.swf", flashvars,params,attributes);
  6.  
  7. Gdzie wartość 12345678 może być generowana w php np. $rand = time();
  8.  
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 02:39