2012-10-21 153 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文本更改爲經典文本後,它工作正常。