我需要从另一个类访问变量,但我不断收到错误“1119:通过静态类型类的引用访问可能未定义的属性敌人列表”。我看不出我做错了什么,因为我的变量被设为“公共(public)”和“静态”。

生成变量的类。

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

将“**”放在问题发生的位置和变量的位置后面,只是为了清楚起见。

类在不同的文件夹中(类>敌人和类>船),不知道是否与此有关。

提前致谢。

最佳答案

如果要访问静态属性,则需要使用它定义的类:Enemy.enemyList
还要确保该类在您的船类中正确导入:import classes.enemy.Enemy;

关于actionscript-3 - AS3 - 错误 1119 : Access of possibly undefined property enemyList through a reference with static type Class.,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8696709/

10-16 00:08