2012-01-02 62 views
4

我需要從另一個類訪問一個變量,並且不斷收到錯誤「1119:通過靜態類型類的引用訪問可能未定義的屬性enemyList」。我看不到我做錯了什麼,因爲我的變量是'公開'和'靜態'。AS3 - 錯誤1119:通過靜態類型類的引用訪問可能未定義的屬性enemyList。

其中變量被創建的類。

package classes.enemy 
{ 
imports ... 

public class Enemy extends MovieClip 
{ 
    public static var enemyList:Array = new Array(); ** 
    var speed:Number; 

    public function initialize() 
    { 
     var stageReff:Stage = this.stage as Stage; 
     addEventListener("enterFrame", enterFrame); 
    } 

    public function Enemy() 
    { 
     enemyList.push(this); ** 
     this.x = 700; 
     this.y = Math.random()*200 + 50; 
     speed = Math.random()*5 + 5; 
    } 

    //code 
} 
} 

類需要發生問題和對變量的製作,只是要清楚背後的紋路變

package classes.ship 
{ 
imports ... 

public class Bullet extends MovieClip 
{ 
    var speed:Number; 

    public function initialize() 
    { 
     var stageReff:Stage = this.stage as Stage; 
     stage.addEventListener("enterFrame", enterFrame); 
    } 

    //code 

    function enterFrame(e:Event):void 
    { 
     this.x += speed; 

     trace(enemy.enemyList); ** 
    } 
} 
} 

推杆「**」的訪問。

類在不同的文件夾(類>敵人&類> ship),不知道這與它有什麼關係。

在此先感謝。

回答

1

如果您要訪問的靜態屬性,則需要使用類是在定義:Enemy.enemyList

還要確保類在你的船級正確導入:import classes.enemy.Enemy;

+0

我認爲小寫'enemy'只是一個錯字。如果沒有,我會很樂意用更多的信息擴展我的答案。 – Kapep 2012-01-02 01:31:48

+0

如果我這樣做,我會得到:1120:訪問未定義的屬性敵人。 – 2012-01-02 01:33:04

+0

有時我可能很愚蠢......忘了這麼做。謝謝! – 2012-01-02 01:48:06

0

更新1:

也不要忘了導入類Enemy

我想,我enemy ñBullet是一個類的實例,所以你不能從一個實例調用靜態屬性,你需要在聲明類的名字來稱呼它:

所以子彈enemy應該是Enemy

package classes.ship { 
    //... 
    import enemy.Enemy; 
    //... 

    function enterFrame(e:Event):void 
    { 
    this.x += speed; 
    trace(Enemy.enemyList); ** 
    } 
+0

如果我這樣做,我會得到:1120:訪問未定義的屬性敵人。 – 2012-01-02 01:33:21

+0

@Robbe Van Winckel更新了答案不要忘記從敵人包裹中輸入你的類敵人。 – Patrick 2012-01-02 01:46:27

2

我遇到了同樣的問題,解決的辦法是:

你的類名是「敵人」,當你訪問它,它仍然是階級不反對

儘量使你的類的對象

enemy1 = new enemy(); // in your bullet class 

,或者如果子彈是一個影片剪輯中的敵人作爲其子影片剪輯,然後改變它的實例名稱enemy1這樣你就可以訪問它作爲自己的類認定中的對象「敵人」

1

我在as3上遇到了與1119錯誤相同的問題。

我拉我的頭髮,然後我發現有一個輸出消息與TLF文本相關。

所以我去FLA文件上的動作腳本設置,併合併到代碼textlayout庫。

希望這會有所幫助。

相關問題