AS3 - 使用变量动态附加类

时间:2015-08-12 14:28:41

标签: actionscript-3 class flash dynamic addchild

这是一个非常简单的查询。 我在库中有一堆MovieClip,设置为ActionScript导出如下:

Overlay_1
Overlay_2
Overlay_3
...
...
...

可能有更多,他们的名字可能是任何东西(例如,不是数字上升)。

目前,要将这些MovieClip中的一个添加到舞台中,我将使用以下脚本:

var overlay_1:Overlay_1 = new Overlay_1();
addChild(overlay_1);

这个问题我想用字符串设置一个变量,让我们说" Overlay_6"然后将具有该导出名称的库中的MovieClip添加到舞台。

例如:

var overlayToAdd:String = "Overlay_6";

var overlayCotent:this[overlayToAdd] = new this[overlayToAdd+"()"];
addChild(overlayCotent);

最终的结果是,我设置变量' overlayToAdd'从库中挑出并添加到舞台中的内容。

如果有人可以帮助我,那么感激!然后,我可以自由设置' overlayToAdd'变量到数组的值,或者我想要的!

在过去(AS2)中,我会使用一个eval函数,但现在已经消失了。

1 个答案:

答案 0 :(得分:0)

我解决了! 好的,所以我的解决方案如下,希望这有助于其他人!

var overlayName:String;
var overlayClass:Class;
var overlaySprite:Sprite;
overlayName="Overlay_1"; //This can be set by pretty much anything like an array value etc.
overlayClass=getDefinitionByName(overlayName) as Class;
overlaySprite=new overlayClass();
addChild(overlaySprite);