我想将一个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");
(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);
编辑 (3):使用flashVars
如果使用swfObject,则使用以下行添加flashVars:
var flashvars = {}; flashvars.myVariable=3.14159 ... ... swfobject.embedSWF( "FlashVarTest.swf", "flashContent", "100%", "100%", swfVersionStr, xiSwfUrlStr, flashvars, params, attributes);
如果你使用标签,那么你添加flashVars如下:
无论您使用嵌入方法,都可以在AS3中访问flashVars,如下所示:
如果您使用的是Flex SDK:
var myVariable:Number = FlexGlobals.topLevelApplication.parameters.myVariable;
如果您不使用Flex SDK:
var myVariable:Number =Number(LoaderInfo(this.root.loaderInfo).parameters.myVariable);