我目前正在制作一个音频播放器,其中包括滚动曲目列表。
曲目列表的名称是“内容”,而在“内容”里面我有多个动画片段,以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);
任何帮助都是附带的:)
答案 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文本更改为经典文本后,它正常工作。