我创建了一个 Flash 动画(CS5、ActionScript 3)并将其转换为 SWF。Flash 动画在它开始在我的 Flex 应用程序中运行之前需要 3 个变量的值(在 swf 时间轴中定义)。我已经在 Flex 中使用 swfloader 嵌入了 swf 文件,但是我需要在动画开始之前将参数从 Flex 传递到 Flash。我该怎么做呢?
我在下面设置我的弹性代码的方式,变量没有被更新。每次访问 changeParams 函数时都会出现异常,因为它找不到“Type”、“Num1”等。
我的闪存代码的一部分:
//These 3 variables need to be populated via Flex BEFORE the animation starts...
var Num2:int;
var Num1:int;
var Type:String;
var whichNumber:int;
var frameNumber:int;
function playMe():void {
switch (Type) {
case 'type1':
gotoAndPlay(16);
break;
case 'type2':
frameNumber = 27;
whichNumber = 1;
gotoAndPlay(frameNumber);
break;
case 'type3':
frameNumber = 29;
whichNumber = 1;
gotoAndPlay(17);
break;
case 'type4':
whichNumber = 1;
break;
}
}
我的弹性代码:
public function changeParams():void {
idAnimation.content["Type"] = 'type1';
idAnimation.content["Num1"] = 6;
idAnimation.content["Num2"] = 30;
trace ("Type= " + idAnimation.content["Type"]);
trace ("Num1= " + idAnimation.content["Num1"]);
trace ("Num2= " + idAnimation.content["Num2"]);
}
]]>
</mx:Script>
<mx:SWFLoader id="idAnimation" source="animation.swf" init="changeParams()" />