我想将一个float变量发送到Actionscript.
我用window.document.setVariable(),但它只支持类型String,并忽略0和指向(.)
我尝试使用parseFloat(),并value * 1在JavaScript,但它不工作.
你的问题很模糊.不过,这里有:
有两种(编辑为3种)方法可以从html中将变量导入Flash.两者都使用这个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");
Run Code Online (Sandbox Code Playgroud)
(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);
Run Code Online (Sandbox Code Playgroud)
编辑 (3):使用flashVars
如果使用swfObject,则使用以下行添加flashVars:
var flashvars = {};
flashvars.myVariable=3.14159
...
...
swfobject.embedSWF(
"FlashVarTest.swf", "flashContent", "100%", "100%", swfVersionStr,
xiSwfUrlStr, flashvars, params, attributes);
Run Code Online (Sandbox Code Playgroud)
如果你使用<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>
Run Code Online (Sandbox Code Playgroud)
无论您使用嵌入方法,都可以在AS3中访问flashVars,如下所示:
如果您使用的是Flex SDK:
var myVariable:Number = FlexGlobals.topLevelApplication.parameters.myVariable;
Run Code Online (Sandbox Code Playgroud)
如果您不使用Flex SDK:
var myVariable:Number =Number(LoaderInfo(this.root.loaderInfo).parameters.myVariable);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1226 次 |
| 最近记录: |