1

我目前正在制作一个音频播放器,其中包括一个滚动曲目列表。

曲目列表的名称是“内容”,在“内容”中我有多个影片剪辑,从 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.currentTarget 而不是 e.target。

顺便说一句,由于 MovieClip 是动态的,因此您可以跳过开关的使用。这是代码:

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 类型,因此不会键入名称属性,并且 Switch 似乎特别讨厌它。

于 2012-10-21T21:54:45.267 回答