Переменная JavaScript для Flash? - PullRequest
0 голосов
/ 10 марта 2011

У меня есть этот код в JavaScript, с помощью которого я хочу отправить переменную во Flash:

function getMovie()
{
  var isIE = navigator.appName.indexOf("Microsoft") != -1;
  return (isIE) ? window["Hra_Kraje.swf"] : document["Hra_Kraje.swf"];
}


function getUser(user)
{  
    Name = user.name;
    getMovie().sendTextToFlash(Name); 
}

и следующий код AS2 во Flash:

import flash.external.ExternalInterface;

function getTextFromJavaScript(str:String):Void
{
    name = str;
}

ExternalInterface.addCallback("sendTextToFlash", this, getTextFromJavaScript);

Но фильм делаетне похоже, чтобы получить переменную.В чем проблема, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 10 марта 2011

Если вы не используете метод встраивания динамического объекта Flash, HTML-код вашего объекта Flash должен выглядеть примерно так:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="" id="sample" width=400 height=80>
    <param name="movie" VALUE="sample.swf">
    <embed play="false" swliveconnect="true" name="sample" src="sample.swf" quality="high" bgcolor="#FFFFFF" width=400 height=80 type="application/x-shockwave-flash"></embed>
</object>

id="sample в теге объекта и name="sample" & swliveconnect="true"в теге embed важныЗначение идентификатора тега объекта и значение имени тега внедрения должны быть одинаковыми (но, разумеется, не обязательно должны быть «образцами»).Вы будете использовать это значение в своих вызовах window ["sample"] и document ["sample"], например:

function changetext(str){   
    if(window.sample) window.document["sample"].SetVariable("myText", str);
    if(document.sample) document.sample.SetVariable("myText", str);
}

В приведенном выше простом примере используется метод обратного вызова SetVariable, который есть во Flash-ролике.,В вашем случае это должен быть ваш обратный вызов sendTextToFlash, если ваш код AS2 правильный, что, по-видимому, имеет место.Попробуйте сначала исправить свой HTML-код и посмотрите, работает ли он, а затем отправьте отчет.

Вы также можете проверить эти два ресурса для получения дополнительной информации и рабочего демонстрационного кода: http://www.oddhammer.com/tutorials/firefox_setvariable/
http://www.permadi.com/tutorial/flashjscommand/

0 голосов
/ 10 марта 2011

Вы пытаетесь получить DOMElement для фильма, используя его имя файла

window["Hra_Kraje.swf"] : document["Hra_Kraje.swf"]

Это не сработает. Вместо этого вы должны использовать «id»

окно [id_of_object_or_embed_tag]: документ [id_of_object_or_embed_tag]

Еще лучше, используйте что-то вроде swfobject для размещения фильма на странице

...