【问题标题】:as3 - Access class attributes dynamicallyas3 - 动态访问类属性
【发布时间】:2010-12-28 12:19:43
【问题描述】:
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();

【问题讨论】:

    标签: actionscript-3 class dynamic attributes


    【解决方案1】:

    我不知道有什么方法可以做到这一点,尽管我不确定这实际上是不可能的。但一种解决方法是使用带有典型静态方法的单例来访问实例。

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

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

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

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

    【讨论】:

    • 填充字典是我最终要做的。您可以使用 this[""] 动态访问属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多