如何在AS3中的另一个影片剪辑中访问影片剪辑?

时间:2012-10-21 21:28:48

标签: actionscript-3

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

曲目列表的名称是“内容”,而在“内容”里面我有多个动画片段,以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);

任何帮助都是附带的:)

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

请记住,DisplayObject.name是指实例名称,因此,如果您在Flash IDE中工作,请确保填写“属性”面板中的实例名称。

另外,尝试在切换之前将名称存储在字符串var中:

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

由于e.target的类型为Object,因此不会输入名称属性,特别是Switch似乎讨厌它。

答案 2 :(得分:0)

发现问题出在我在列表中使用的文本中。

将其从TLF文本更改为经典文本后,它正常工作。