2014-03-30 70 views
0

我有一個影片剪輯這段代碼被稱爲搬上舞臺主時間軸無法轉換根影片剪輯

if(MovieClip(root).isWithinRange(MovieClip(e.currentTarget), MovieClip(root).hero,  10)) 
{ 
    if(e.currentTarget.getStatus() == 0) 
    { 
     e.currentTarget.unlock(); 
    } 
} 

,這讓我在影片剪輯(根)錯誤。我試圖追查,它給了我同樣的錯誤。

Type Coercion failed: cannot convert flash.display::[email protected] to flash.display.MovieClip. 

跟蹤根給我載物臺。

所以我不能將Stage對象轉換爲MovieClip,但是當我試圖跳過轉換時,它不能使用該方法,因爲它說它是一個靜態類型。我如何訪問此方法?

回答

0

這是因爲stage是DisplayObject而不是MovieClip。所以,你可以把它轉換成影片剪輯:

var stageRef:MovieClip = this.parent as MovieClip; 

如果對象是在舞臺上placen - 階段 .addChild(yourObject);

,或者您可以通過存取權限的DisplayObject它(確保導入flash.display.DisplayObject;)

DisplayOject(stage)["nameOfUrObject"]; 
+0

第一個給了我stageRef的null。 如果我要嘗試第二個,那麼「nameOfUrObject」是什麼?我試圖調用的函數或根或e.currentTarget? – user2956947

+0

這是你的對象。你已經進入舞臺的那個人。 如果什麼都不起作用,我會在我醒來時檢查它。 – raco

+0

所以你可以通過DisplayObject(stage)和DisplayOject(stage)訪問舞臺[「nameOfUrObject」]你可以訪問放置在舞臺上的對象。進入[]只是給它的實例名稱。 – raco

0

這裏真正的答案是,階段不是影片剪輯。期。

你不能做你想做的事情,我顯然不明白這個方法來自哪裏?如果您想要答案,請提出具體問題。我已經回答了這個問題,不幸的是它對你的幫助不大:)

p.s. 閱讀所有的意見後 - 這裏有一個鏈接,可以幫助你:AS3 - Call function in root timeline from class

保持時間軸上的一切是一個非常非常糟糕的做法(遺憾地說)。

+0

我無法訪問主時間軸上的方法? isWithinRange是主時間軸上第一層的一種方法 – user2956947

+0

我很喜歡使用類,但是我們在這個閃光過程中不這樣做 – user2956947