Передача переменной во flash из php - PullRequest
0 голосов
/ 25 августа 2009

У меня есть небольшая проблема ... но я схожу с ума ...

В HTML у меня есть этот код:

 <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://macromedia.com/cabs/swflash.cab#version=6,0,0,0"   
  ID=flaMovie WIDTH=554.6 HEIGHT=57.3>
  <PARAM NAME=movie VALUE="main_menu.swf">
  <PARAM NAME=FlashVars VALUE="nyelv=<?php echo $_SESSION['lang'];?>">
  <PARAM NAME=quality VALUE=medium>
  <PARAM NAME=bgcolor VALUE=#99CC33>
  <EMBED src="main_menu.swf" 
    FlashVars='nyelv=<?php echo $_SESSION['lang'];?>' 
    bgcolor=#99CC33 WIDTH=554.6 HEIGHT=57.3 
    TYPE="application/x-shockwave-flash">
  </EMBED>
</OBJECT>

И вспышка это:

Первый ключевой кадр:

 stop();
 if (lang == "EN") {
    gotoAndStop(2);
 }else{
    gotoAndStop(3);
 }
Ключевой кадр

2,3 имеет только некоторый график, а Stop ()

Если lang - EN, тогда мне нужно перейти на ключевой кадр 2, если не на 3 ...

На IE6 работает хорошо .. без проблем. На FF 3.5 что-то не в порядке .. если я нажму кнопку обновления на FF, то иногда ОК, иногда не ОК, иногда только часть графического элемента, отображаемого на ключевом кадре 3 ... Я не совсем понимаю ..

Раньше у меня не было проблем с flashvars на FF ... что-то изменилось с FF 3.x?

Есть ли другой способ передать переменную во флэш-память? (я не хочу использовать строку запроса ..)

Может быть, JQuery?

Thnx.

Ответы [ 2 ]

0 голосов
/ 25 августа 2009

Да. Новый флэш-плеер .. Выход $ _SESSION ['lang'] равен EN или HUN, зависит от того, какую ссылку вы нажали .... если я жестко закодировал EN во flashvars, то ничего не изменилось, поэтому $ _SESSION ['lang'] я думаю, что все в порядке ... с хорошим выходом ...

0 голосов
/ 25 августа 2009

Мне кажется, что вы передаете переменную с именем nyelv, а не lang. Проверьте свои flashvars и попробуйте снова.

Что касается ошибочного рендеринга в Firefox, это может быть проблемой с кешем. Вы проверяете, что все загружено правильно перед вызовом gotoAndStop()?

Кроме того, если вы используете Flash 8 или более раннюю версию, возможно, будет хорошей идеей дождаться покадровой смены кадров после загрузки всего. Я обнаружил, что это помогает много раз, так как все, что загружается, не гарантирует, что все также инициализировано.

Поэтому, чтобы дать правильный ответ, попробуйте это (при условии, что вспышка 8 или более ранняя, и AS2):

Frame 1:
--------

function preloadWait() :Void {
   if (_root.getBytesLoaded() != undefined 
        && _root.getBytesLoaded() == _root.getBytesTotal()) {
       delete _root.onEnterFrame;
       _root.play();
   }
}

stop();
_root.onEnterFrame == preloadWait;

Frame 2:
--------

if (lang == "EN") {
    gotoAndStop(3);
 }else{
    gotoAndStop(4);
 }

Кадры 3 и 4 должны содержать то, что у вас сейчас есть в кадрах 2 и 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...