Actionscript 3 AS3-错误1119:通过静态类型类的引用访问可能未定义的属性enemyList。

Actionscript 3 AS3-错误1119:通过静态类型类的引用访问可能未定义的属性enemyList。,actionscript-3,Actionscript 3,我需要从另一个类获取对变量的访问权限,我不断收到错误“1119:通过静态类型类的引用访问可能未定义的属性EneyList”。我看不出我做错了什么,因为我的变量被设置为“public”和“static” 类创建变量的位置 package classes.enemy { imports ... public class Enemy extends MovieClip { public static var enemyList:Array = new Array(); ** v

我需要从另一个类获取对变量的访问权限,我不断收到错误“1119:通过静态类型类的引用访问可能未定义的属性EneyList”。我看不出我做错了什么,因为我的变量被设置为“public”和“static”

类创建变量的位置

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); **
    }
}   
}
将“**”放在问题发生的地方和变量产生的地方,只是为了说明问题

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


提前感谢。

如果要访问静态属性,需要使用它在中定义的类:
敌方.enemyList

还要确保在你船的舱位中正确导入了舱位:
import classes.敌军.敌军

更新1:

别忘了导入你的类
敌人

我假设
Bullet
中的
Bullet
是一个类实例,因此您不能从一个实例调用静态属性,您需要使用声明它的类名来调用它:

所以在子弹中,敌人应该是敌人

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

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

我遇到了同样的问题,解决方案是:

您的类名是“敌人”,当您访问它时,它仍然是类而不是对象

试着把你的班级变成一个对象

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

或者,如果bullet是一个movieclip,其中敌方作为其子movieclip,则将其实例名称更改为enemy1,以便您可以将其作为其自己的类定义“敌方”的对象访问。

我在as3上遇到了与错误1119相同的问题

我正在整理我的头发,然后我注意到有一条与TLF文本相关的输出消息

所以我转到FLA文件上的动作脚本设置,并将代码合并到textlayout库中


希望这能有所帮助。

我想小写的
敌人
只是一个打字错误。如果没有,我将很乐意用更多的信息来扩展我的答案。如果我这样做,我将获得:1120:未定义的财产敌人的访问权限。如果我这样做,我将获得:1120:未定义的财产敌人的访问权限。@Robbe Van Winckel更新了答案。别忘了从敌人包中导入你的类敌人。