Ваш вопрос довольно расплывчатый. Тем не менее, здесь идет:
Существует 2 (отредактированных до 3 ) метода для получения переменной во Flash из html. Оба используют ExternalInterface
класс
(1): извлеките переменную в ActionScript
//JavaScript:
var myVariable=3.14159; //or whatever you want to set it as
function getMyVariable() {
return myVariable;
}
//Flash
var myVariable:Number=ExternalInterface.call("getMyVariable");
(2): вставить переменную в ActionScript
//Flash
ExternalInterface.addCallback("pushVar", varPushed);
var myVariable:Number=0;
function varPushed(x:Number):void {
myVariable=x;
}
//JavaScript
var myVariable=3.14159; //or whatever you want to set it as
var fl = document.getElementById('myflashobject');
fl.pushVar(myVariable);
EDIT
(3): использовать flashVars
Если вы используете swfObject, то вы добавляете flashVars, используя следующую строку:
var flashvars = {};
flashvars.myVariable=3.14159
...
...
swfobject.embedSWF(
"FlashVarTest.swf", "flashContent", "100%", "100%", swfVersionStr,
xiSwfUrlStr, flashvars, params, attributes);
Если вы используете тег <object>
, вы добавляете flashVars следующим образом:
<object id='mySwf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' height='100%' width='100%'>
<param name='src' value='FlashVarTest.swf'/>
<param name='flashVars' value='myVariable=3.14159'/>
<embed name='mySwf' src='FlashVarTest.swf' height='100%' width='100%' flashVars='myVariable=3.14159'/>
</object>
Независимо от вашего метода встраивания, вы получаете доступ к flashVars в AS3 следующим образом:
Если вы используете Flex SDK:
var myVariable:Number = FlexGlobals.topLevelApplication.parameters.myVariable;
Если вы не используете Flex SDK:
var myVariable:Number =Number(LoaderInfo(this.root.loaderInfo).parameters.myVariable);