作为Flash新手,我发现这非常令人困惑,而且花了我几个小时。如果有人遇到同样的问题,请在这里回答我自己的问题。
从技术上讲,你应该能够做到这样的事情:
<param name="movie" value="movie.swf?param=value" />
<embed src="movie.swf?param=value" ...
或者这个:
<PARAM NAME "FlashVars" VALUE="param=value">
<EMBED .... FlashVars="param=value">
两者都应该在_root或_level0范围内创建一个名为'param'的变量,并使用正确的值。
记录在案here
但是,在我的特定版本的Flash(CS4,ActionScript 2.0)中,这不起作用。
答案 0 :(得分:1)
您还可以使用 ExternalInterface 在HTML页面上调用返回值的JavaScript函数。这具有附加价值,您无需对该值进行硬编码,您可以将参数传递给JavaScript函数。
在Flash电影中:
import flash.external.ExternalInterface;
function getOutsideValue(argToJS:String):Void {
var jsArgument:String = argToJS;
var result:Object = ExternalInterface.call("stringAdd", jsArgument);
}
在HTML页面的Javascript中:
function stringAdd(inptStr){
var strToAdd = inptStr;
strToAdd += " added text";
return strToAdd;
}
所以当你在Flash中调用ActionScript函数时:
getOutsideValue("I get");
它将返回:
I get added text
请注意,ExternalInterface也可用于从JavaScript调用Flash中的函数。这两个例子可以在这里找到:http://kb2.adobe.com/cps/156/tn_15683.html
这似乎是向SWF电影传递信息的推荐方式,它肯定比使用硬编码值更具动态性和强大性。
答案 1 :(得分:0)
对我有用的答案是修改CS4生成的HTML中的AC_FL_RunContent()函数,添加需要传递给电影的参数,例如
'flashvars', 'param=value',
似乎此函数会覆盖OBJECT和EMBED标记或查询字符串中直接指定的任何内容。
可能有更好的解决方案......