1

私は現在、スクロール トラック リストを含むオーディオ プレーヤーを作成しています。

トラック リストの名前は「content」で、「content」の中に track1 から track10 という名前の複数のムービークリップがあります。

現在、「コンテンツ」ムービークリップ内の個々のムービークリップにアクセスしようとしていますが、うまくいきません。

これがあまり明確でない場合は申し訳ありません。

これが私のコードの一部です:

    var trackName: String;

function playTrack(e: MouseEvent) :void{
    switch(e.target.name){
        case "track1":
        trackName = "These Days";
        trace ("track 1");
        break;

        case "track2":
        trackName = "Walking After You";
        trace ("track 2");
        break;
    }
}

content.track1.addEventListener(MouseEvent.CLICK, playTrack);
content.track2.addEventListener(MouseEvent.CLICK, playTrack);

どんな助けでも感謝します:)

4

3 に答える 3

1

e.target の代わりに e.currentTarget を試してください。

ちなみに、ムービークリップは動的なので、スイッチの使用をスキップできます。コードは次のとおりです。

content.track1.trackName =  "These Days";
content.track2.trackName =  "Walking After You";
content.track1.addEventListener(MouseEvent.CLICK, playTrack);
content.track2.addEventListener(MouseEvent.CLICK, playTrack);

function playTrack(e: MouseEvent) :void{
     trackName = e.currentTarget.trackName;
}
于 2012-10-22T13:08:36.593 に答える
0

リストで使用していたテキストに問題があることがわかりました。

TLFテキストからクラシックテキストに変更した後、正しく機能しました。

于 2012-10-22T15:08:23.960 に答える
0

DisplayObject.name はインスタンス名を参照することに注意してください。したがって、Flash IDE で作業している場合は、[プロパティ] パネルにインスタンス名が入力されていることを確認してください。

また、スイッチの前に名前を文字列 var に保存してみてください。

var obj_name:String = e.target.name;
switch(obj_name){
}

e.target は Object 型なので name プロパティは型付けされず、特に Switch はそれを嫌うようです。

于 2012-10-21T21:54:45.267 に答える