2012-01-02 5 views
4

別のクラスの変数にアクセスする必要があります。エラー '1119:静的型Classを持つ参照を介しておそらく未定義のプロパティenemyListにアクセスしています。'変数は「public」と「static」になっているので、私は何が間違っているのか分かりません。AS3 - エラー1119:静的型のクラスを持つ参照を介して、おそらく未定義のプロパティenemyListへのアクセス。

変数が作成されるクラス。問題が発生すると、変数が行われたところ、ちょうどそれを明確にするためにラインの背後にある変数

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); ** 
    } 
} 
} 

パット「**」にアクセスする必要がある

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 
} 
} 

クラス。

クラスは別のフォルダにあります(クラス>敵&クラス>船)、それはそれと関係があるかどうかわかりません。

ありがとうございます。

答えて

1

あなたは、静的プロパティにアクセスしたい場合、あなたはそれが定義されたクラスを使用する必要があります。また、クラスは、あなたの船のクラスで適切にインポートされていることを確認しEnemy.enemyList

import classes.enemy.Enemy;

+0

私は小文字の「敵」は単にタイプミスであると仮定します。そうでない場合、私は喜んでもっと答えて私の答えを広げます。 – Kapep

+0

私がそれをするなら、私は次のようになる:1120:未定義の敵の敵へのアクセス。 –

+0

時々私はとても愚かなことがあります...それをするのを忘れました。ありがとう! –

0

アップデート1:

Enemy

あなたのクラスをインポートし、私はenemy私と仮定しにも忘れてはいけませんその弾丸enemyEnemy

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

    function enterFrame(e:Event):void 
    { 
    this.x += speed; 
    trace(Enemy.enemyList); ** 
    } 
でなければなりません

:N Bulletは、あなたがそれが宣言されたクラス名とそれを呼び出す必要があるので、インスタンスから静的プロパティを呼び出すことはできません、クラスのインスタンスであります

+0

私がそれをするなら、私は次のようになる:1120:未定義の敵のアクセス敵。 –

+0

@Robbe Van Winckelが答えを更新しました。あなたのクラスEnemyを敵のパッケージからインポートすることを忘れないでください。 – Patrick

2

は、私は同じ問題に出くわしたとソリューションは次のとおりです。

あなたのクラス名が「敵」であり、あなたがそれにアクセスすると、それは反対しないクラスとして残る

は、あなたのクラスのオブジェクトを作成しようと

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

や弾丸がムービークリップである場合は、独自のクラス・definationのオブジェクトとしてアクセスできるように、その子ムービークリップとしての敵に、そしてenemy1にそのインスタンス名を変更します"敵"

1

私はas3でエラー1119と同じ問題がありました。

私は髪の毛を引っ張っていましたが、TLFテキストに関連する出力メッセージがあることに気付きました。

私はFLAファイルのアクションスクリプト設定に行き、textlayoutライブラリのコードにマージしました。

これが役に立ちます。

関連する問題