Actionscript 3 AS3-错误1119:通过静态类型类的引用访问可能未定义的属性enemyList。
我需要从另一个类获取对变量的访问权限,我不断收到错误“1119:通过静态类型类的引用访问可能未定义的属性EneyList”。我看不出我做错了什么,因为我的变量被设置为“public”和“static” 类创建变量的位置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
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更新了答案。别忘了从敌人包中导入你的类敌人。