2009-12-20 60 views
0
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...] 
} 

我可以動態訪問這些屬性嗎?我有其中的許多聲音我想打球,我想要做這樣的事情:as3 - 動態訪問類屬性

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

回答

2

我不知道的方式做到這一點,雖然我不能肯定它的其實不可能。但是解決這個問題的方法是使用一個典型的靜態方法來訪問實例。

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

更好的方法是使用Sound對象填充數組或甚至Flash Player 10 Vector並使用它來訪問對象。

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

這允許你檢查解析整數是否出界等的C。

+0

填充字典是我最終做的。您可以使用此[[「]動態訪問屬性。 – quano 2009-12-24 15:10:44