2012-10-21 154 views
1

我目前正在制作一个音频播放器,其中包含一个滚动曲目列表。如何访问AS3中另一个影片剪辑中的影片剪辑?

曲目列表的名称是“content”,在“content”里面我有多个movieclip,它们是从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); 

任何帮助apperciated :)

回答

0

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

此外,尝试切换之前在一个字符串存储变种的名称:

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

由于e.target是Object类型,名称PROPERT不会被类型化,并且开关特别看来恨。

+0

我现在的问题是没有得到字符串的工作,我甚至不能让踪迹工作,所以我不认为我正确访问track1 movieclip。 – user1763814

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; 
} 
0

发现这个问题是与我是用列表的文本。

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