Actionscript 3 如何从公共类Myclass extends MovieClip访问场景中的对象?
当我在场景第一帧的主代码中时,我可以很好地访问player.x和y属性,但是来自类敌人。因为我只能在构造中发送一次参数,但我不知道如何不断更新循环中的坐标。xb和yb是我的玩家对象在场景中的坐标,每次我在场景中创建敌人对象时,我都会将其作为参数发送,但这种方法只给出一次坐标。我想在每个循环中更新玩家对象的坐标,我该怎么做?我尝试了行:trace(“this.parent.player.x”),但它不起作用Actionscript 3 如何从公共类Myclass extends MovieClip访问场景中的对象?,actionscript-3,flash,class,object,scene,Actionscript 3,Flash,Class,Object,Scene,当我在场景第一帧的主代码中时,我可以很好地访问player.x和y属性,但是来自类敌人。因为我只能在构造中发送一次参数,但我不知道如何不断更新循环中的坐标。xb和yb是我的玩家对象在场景中的坐标,每次我在场景中创建敌人对象时,我都会将其作为参数发送,但这种方法只给出一次坐标。我想在每个循环中更新玩家对象的坐标,我该怎么做?我尝试了行:trace(“this.parent.player.x”),但它不起作用 public function Enemy(xLocation:int, yLoc
public function Enemy(xLocation:int, yLocation:int, xb, yb) {
// constructor code
x = xLocation;
y = yLocation;
addEventListener(Event.ENTER_FRAME, loop);
xa = xb;
ya = yb;
}
public function loop(e:Event):void {
x -= xSpeedConst;
trace(this.x);
trace (xa + " " + ya);
}
任何帮助都将不胜感激……只需将玩家实例传递到敌人而不是坐标中,然后将实例保存在敌人内部,例如:
public class Enemy{
private var player:Player;
public function Enemy(xLocation:int, yLocation:int, playerParam){
player = playerParam;
}
}
现在,在您的循环中,您应该能够通过说出:player.x或player.y来访问播放机更新的x和y值。有几种方法可以解决此问题。我最喜欢的一个方法是创建一个管理器类,该类将包含其中的所有对象,可以是子对象,也可以是其他结构、数组等。然后,您希望了解其他实例的类将被提供一个指向管理器类的链接(或者将其作为
this.parent
,但这更容易出错),并调用其接口以获取所需的任何信息。例如,一个射击怪物的塔类,请求管理类在其射程内获得怪物以选择目标,或者你的敌人类搜索玩家。太棒了!既然你的问题解决了,你介意选择一个答案作为最佳答案吗?