希望这应该是一个快速的问题。我无法使用数组动态访问库中的某些影片剪辑。
基本上,我的数组中有一堆字母..
var monarray:Array =("AAACBCBCAABBC").split("");
现在,我的图书馆拥有三个电影剪辑。它们具有以下AS3链接: 龟背竹 monsterB monsterC
我想要做的是根据我在数组中的位置创建一个对象的新实例。例如,当monarray在index [0]时,我想要添加monsterA ..
这是我用来尝试实现此效果的代码:
var b = new monster[monarray[i]];
b.x = mouseX;
b.y = mouseY;
addChild(b);
i ++;
然而,在编译我的.swf时,我收到此错误:
Scene 1, Layer 'Layer 1', Frame 1, Line 9 1086: Syntax error: expecting semicolon before leftbracket.
我理解这是因为我显然做得不对,但我只使用数组来调用特定索引的实例。
如果这是noobish,我很抱歉,但我不太确定如何在移动中动态选择这三个库实例!
提前多多感谢!
哈利。
答案 0 :(得分:1)
即使上面的答案在定义上是正确的,但它仍然是实现你想要做的事情的“hacky”方式。我不建议您使用上述方法,除非您想要一种方法来动态添加新类型的怪物。让我试着解释一下。
如果要在运行时插入新的怪物类型,请使用上述方法。
你有你的base.swf加载一个external.swf(其中包含你提到的怪物的定义!)。 base.swf已经部署,你不想对它进行更改,那么上面的方法已经足够了。
假设您已经知道将在运行时部署的不同类型的怪物(在大多数游戏中就是这种情况!)我建议您创建一个工厂类,使用inhertitance(创建一个IMonster接口!并且工厂类可以将你的A,B,C等作为输入来挑出新的怪物。
答案 1 :(得分:0)
不确定尝试:
var mst = getDefinitionByName("monster"+monarray[i]) as Class;
var b = new mst;