2008-11-12 66 views
2

在試圖學習如何在ActionScript中創建對象時,我沒有成功。 我注意到的一件事情是,似乎有十億種不同的做法。即使他們沒有人爲我工作。這真讓我困惑,我不知道嘗試調試的方法。Actionscript Object(Class?)語法

,似乎要拿出最常見的做法是:

function myClass() { 
    this.val = 1; 
} 

var test = new myClass(); 
trace(test.val); 

但是,這只是給我的編譯器錯誤無論怎樣我簡單做它,它沒有任何意義,我認爲一個功能可能是一個目的。如果函數是一個對象,那麼「this」在函數中的某個函數(它被解釋爲一個對象)時指向何處。

,似乎拿出幾分較少另一種方法是:

class myClass { 
    function myClass() { 
     this.val = 1; 
    } 
} 

var test = ....

這給我的編譯器錯誤,以及,似乎更正式。但我可以找到很少的文檔比較。大多數指南要麼非常簡單,要麼假設您正在討論內置對象。

第三種方法是在函數中創建一個

 new Object();
,添加所需的所有東西並返回它。似乎合乎邏輯。但是我已經閱讀過所有提及原型的東西,而且看起來像這樣創建的對象不適合成爲原型。但我真的很困惑。

我也遇到過一些問題,說AS2和AS3之間的對象語法不同,但沒有其他更多。

我該如何創建對象?什麼是最佳實踐,對於上帝的愛,有人知道我在哪裏可以找到深入的教程? (我的google-fu顯然很弱)

回答

5

AS2和AS3之間的語法確實不同。對於AS3的語法看起來像下面這樣:

package somePackage { 

    public class SomeClass { 
     public function SomeClass() { 

     } 
    } 
} 

通過解釋,包是可以包含多個類,所以你必須聲明一下包包含每個類定義的包裝。

一個類需要一個構造函數。在大多數語言中,構造函數的名稱與該類的名稱相同。 ActionScript就是這種情況。

要呼叫您的類的實例會是這個樣子:

package somePackage { 

    public class OtherClass { 
     public function OtherClass() { 
      var something = new SomeClass(); 
     } 
    } 
} 

我有我的AS3參考坐在我面前,所以我覺得跟上面的代碼段非常有信心,但不幸的是我AS2參考是在工作,但代碼看起來應該像下面這樣:

class ThirdClass { 
    public function ThirdClass() { 

    } 
} 

然後實例化一個變量應該是這個樣子:

var third = new ThirdClass(); 

請不要提供的示例不使用強類型,我會建議您儘可能在ActionScript中使用強類型。

雖然我強烈建議你選擇的Essential ActionScript 2.0和/或Essential ActionScript 3.0副本,我發現下面的鏈接,開始教程:

Beginning Flash and ActionScript Tutorials

More Beginner Tutorials

+0

我想這一點,但對於無論什麼原因,我不能使用它,我已經嘗試將它放在同一個文件中,並將其放入具有各種導入語句的不同文件中。我如何獲得這些課程? – Alex 2008-11-12 23:12:41

相關問題