Как я могу отправить значение в Actionscript, используя Javascript - PullRequest
0 голосов
/ 20 ноября 2011

Я хочу отправить переменную float в Actionscript.

Я использую window.document.setVariable(), но он поддерживает только тип String и игнорирует 0 и точку (.)

Я пытаюсь использовать parseFloat() и value * 1 в javascript, но это не работает.

1 Ответ

7 голосов
/ 20 ноября 2011

Ваш вопрос довольно расплывчатый. Тем не менее, здесь идет:

Существует 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...