2012-08-24 166 views
0

我正在編程一些東西,當我認爲一切都很好,Flash會向我發出一個錯誤!?訪問未定義的屬性? Actionscript 3

起初我很沮喪。然後在檢查我的代碼後,我看不到罪魁禍首。所以我所做的就是「簡單化」,並將其改爲只是一個跟蹤聲明。

我仍然得到錯誤。我不知道什麼是錯的。

package { 

    import flash.display.MovieClip; 
    import src.data.DActors; 

    public class DocumentClass extends MovieClip { 

     public var dActors:DActors = new DActors; 

     public function DocumentClass() { 
     trace (dActors); 
     trace ("Main"); 
     } 

    } 

} 

這是DActors類:

package src.data 
{ 
    public class DActors 
    { 
     public var me:int = 1; 

     public function DActors(); 
     {  
      trace(me); 
     } 

    } 

} 

一些範圍,我不知道的東西?

哦,順便說一下,它會拋出「我」沒有定義'!?

編輯:其實,我沒有意識到真正的問題,爲什麼地獄是我的構造函數不接受變量!

package src.data 
{ 
public class DActors 
{ 
    public var actors:Array = new Array(); 
    public var dActor:DActor = new DActor(); 

    public function DActors(); 
    { 
     actors.push(dActor); 
    } 

} 

}

輸出:

1120:未定義的屬性演員的訪問。

1120:訪問未定義的屬性dActor。

?????這讓我很擔心。要麼我的眼睛在愚弄我,要麼我錯過了一些非常基本的東西。

+0

你在用什麼IDE? – Kolyunya

+0

@Kolyunya'FlashDevelop with Flash CS6 workflow'。 – Secret

回答

1
public function DActors(); 

構造函數不會;(分號)結束。

+0

* FACEPALM *哈哈。謝謝。我只是習慣'將方括號放在花括號後面',而我過早地添加分號。簡直不敢相信這個錯誤有多難以置信的愚蠢,我已經把所有的數據結構和繼承醜化都包裹起來了,所以我蝙蝠就注意到了這一點。 – Secret

+0

我認爲你是as3的新手。 cooool。 – Benny

0
public var dActors:DActors = new DActors; 

應該是:適當

public var dActors:DActors = new DActors(); 
+0

仍然不起作用; 1120:訪問未定義的屬性me。 – Secret

+0

如果您使用的是Adobe Flash Pro。然後:文件 - >發佈設置 - > Flash(.swf)[在左側面板上] - > EXPAND ADVANCED - >檢查:許可調試。 – Zhafur

+0

請看我的編輯。 – Secret

0

調用構造函數的構造DActors打破你的代碼。

public function DActors(); 

如果你改變了DActors類這一點,將工作:

package src.data 
{ 
    public class DActors 
    { 
     public var me:int = 1; 

     public function DActors() 
     { 
      trace(me); 
     } 
    } 
} 
+0

仍然不起作用; 1120:訪問未定義的屬性me。 – Secret

+0

嘗試'this.me'和'this.dActors' – Kolyunya

+0

跟蹤似乎是一種靜態方法; 1042:這個關鍵字不能在靜態方法中使用。它只能用於實例方法,函數閉包和全局代碼。 – Secret

0

分號後

public var dActors:DActors = new DActors();