2012-08-17 18 views
0

任何人都可以協助AS3 gotoAndPlay()。我研究了AS3中這個函數的用法,但由於某些原因,我的代碼無法工作。gotoAndPlay問題

import flash.display.MovieClip; 
function disInfo(event:MouseEvent):void 
{ 
switch (event.currentTarget.name) 
{ 
    case "one_mc" : 
    Object(this).top_mc.one_mc.gotoAndPlay(2); 
     break; 
    case "two_mc" : 
     gotoAndPlay(2); 
     break; 
} 
}; 
Object(this).top_mc.two_mc.addEventListener(MouseEvent.CLICK, disInfo); 

這是我與switch語句一起使用它的方式。提前致謝。

+0

您currentTarget當前總是將是two_mc因爲這是你已經附加監聽到什麼。 – BadFeelingAboutThis 2012-08-17 16:30:40

回答

0

我想,你的代碼一些意大利麪條。

你的代碼很奇怪..不是addEventListener top.one_mc

參考下面的代碼。

import flash.display.MovieClip; 

function disInfo(event:MouseEvent):void 
{ 
    var mc:MovieClip = event.currentTarget as MovieClip; 

    mc.gotoAndPlay(2); 
}; 

top.one_mc.addEventListener(MouseEvent.CLICK, disInfo); 
top.two_mc.addEventListener(MouseEvent.CLICK, disInfo); 
+0

意大利麪或不,上面沒有工作。感謝幫助。 – 2012-08-17 06:28:48

0

你能告訴我們更多關於你想要做什麼嗎?我們需要知道你的元素被稱爲什麼,以及你想要做什麼,然後我們才能給你一個明確的答案。

使用下面的代碼來確定您的交換機是否工作。 讓我們知道什麼是跟蹤

import flash.display.MovieClip; 
    function disInfo(event:MouseEvent):void { 
    trace(event.currentTarget.name); 
    switch (event.currentTarget.name) { 
     case "one_mc" : 
     Object(this).top_mc.one_mc.gotoAndPlay(2); 
      break; 
     case "two_mc" : 
      gotoAndPlay(2); 
      break; } 
}; 
    Object(this).top_mc.two_mc.addEventListener(MouseEvent.CLICK, disInfo); 
+0

我想通過一個函數在兩個單獨的時間軸上調用gotoAndPlay()。每條時間線的路徑都不相同。我從來沒有在AS3中使用gotoAndPlay。它在AS2中過去非常容易。 – 2012-08-17 06:33:10

+2

您是否曾嘗試在開關前追蹤「event.currentTarget.name」的值以確保它包含正確的值? – phunder 2012-08-17 06:35:33

+0

從你的代碼我假設你有一個影片剪輯的實例名稱「頂部」,其中又包含一個實例名稱爲「one_mc」的子元素。你究竟在做什麼「Object(this)」?在主時間軸上是「頂部」嗎?如果是這樣,那麼你不需要在它前面添加「Object(this)」。 – phunder 2012-08-17 06:40:53