as3 - 动态访问类属性

时间:2009-12-20 15:39:11

标签: actionscript-3 class dynamic attributes

public class SndFx
{
    [Embed(source="Sounds/01.mp3")]
    public static const s01:Class;
    public static const s01s:Sound = new s01() as Sound;

    [Embed(source="Sounds/02.mp3")]
    public static const s02:Class;
    public static const s02s:Sound = new s02() as Sound;

    [etc...]
}

我可以动态访问这些属性吗?我有很多想要播放的声音,我想做这样的事情:

SndFx["s"+numberStr+"s"].play();

1 个答案:

答案 0 :(得分:2)

我不知道如何做到这一点,虽然我不确定它实际上是不可能的。但是,解决这个问题的方法是使用具有典型静态方法的单例来访问实例。

SndFx.getInstance()['s'+numberStr+'s'].play();

更好的方法是使用Sound对象填充数组,甚至是Flash Player 10 Vector,并使用它来访问对象。

SndFx.soundEffectsArray[parseInt(numberStr)].play();

允许您检查解析的整数是否超出范围,等等。