2011-05-01 115 views
1

我是Flash/ActionScript的新手,並且在爲我的某些符號創建自定義基類時遇到了一些麻煩。ActionScript 3中的符號鏈接/ Flash CS5

我有一個閃存文件,裏面有很多行星,我想存儲一些關於每個星球的信息,所以我在一個actionScript文件中創建了一個Planet類,其中包括最小和最大溫度每個星球。

在我的主Flash文件中,我爲每個星球製作了一張帶有自定義圖片的符號,每個星球都有不同的動畫。我想要做的是將這些符號中的每一個都設置爲行星,我原本是通過將庫中的鏈接改爲行星來做到這一點的,但那隻適用於一個符號,一旦我在另一個符號上改變它就停止工作,它不會讓你將它們設置爲同一個班級。 所以我試着右鍵點擊它,去屬性和設置'導出動作',然後我命名類'水星'或'維納斯',並設置基類到星球(行星擴展動畫片段)。它向我保證,即使認爲它找不到金星,它也會在出口時爲我生成金星。我按命令+輸入,並將其與這些出現編譯時錯誤:

../Main.as, Line 9 1046: Type was not found or was not a compile-time constant: Venus. 

..Main.as, Line 31 1046: Type was not found or was not a compile-time constant: Mercury. 

當它只有1級的工作,它會造成地球的實例有一個默認的構造,然後在Main方法中,我會在該類上調用一個「初始化」函數,以便讓我設置實例變量和事件處理程序以供稍後使用。我只需要知道如何使Flash調用爲我的其他符號創建Planet的更多實例,而無需將它們合併爲一件事。

任何提示將不勝感激!謝謝。

回答

1

你的問題有點令人困惑;不過看起來你想創建一個基類「星球」,並讓其他類如水星和金星繼承它的屬性。從這裏你可以設置你的庫符號來使用Plant作爲基類。這裏是你怎麼會去這樣做:

基類:

package 
{ 
    import flash.display.MovieClip; 

    public class Planet extends MovieClip 
    { 
     // vars 
     public var temperature:Number; 
     public var radius:Number; 
    } 
} 

類爲您的實際行星(需要爲每個星球):

package 
{ 
    public class Venus extends Planet 
    { 
     /** 
     * Constructor 
     */ 
     public function Venus() 
     { 
      // set properties here 
      temperature = 900; 
      radius = 12.93; 
     } 
    } 
} 

如果您創建這些文件,然後所有應該工作正常。

+0

謝謝,多數民衆贊成我最終做的,希望Flash可以自動生成一個默認的構造函數(這是什麼似乎告訴我,當我設置鏈接和基類),但它從來沒有經過這諾言。儘管這種方式有效,但無所謂,非常感謝您的幫助! – vgrixti 2011-05-01 13:05:44