Flash AS3 eval()

时间:2011-08-13 01:27:17

标签: flash actionscript-3

我是AS3的新手。我的fla中有15个声音;我将它们导入库并导出名为s1, s2, s3, ... s15

的所有声音

我创建了一个接收数字然后播放声音的功能。

在AS2中,我可以像eval一样使用eval("s" + n),但在AS3中我不能!{/ p>

我的AS3代码是:

function PlaySound(Num:Number=NaN) {
    var mySound:Sound = new ["s"+Num](); 
    mySound.play();
}

显然我收到了错误!

有人可以帮助我吗?

Best,Flávio

2 个答案:

答案 0 :(得分:7)

等效的AS3代码为:

var soundClass:Class = getDefinitionByName("s" + Num) as Class;
var mySound:Sound = new soundClass(); 

答案 1 :(得分:0)

将这些声音对象放在一个数组中,例如arr [“s1”] = s1,arr [“s2”] = s2等等(在AS3中是的,数组实际上是一个散列图。)

一旦完成,无论何时收到号码(Num)都可以做到这一点

function PlaySound(Num:Number=NaN) {
  var mySound:Sound = arr["s"+Num];
  mySound.play();
}