2012-01-02 110 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库。

希望这会有所帮助。

相关问题