Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何从公共类Myclass extends MovieClip访问场景中的对象?_Actionscript 3_Flash_Class_Object_Scene - Fatal编程技术网

Actionscript 3 如何从公共类Myclass extends MovieClip访问场景中的对象?

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

当我在场景第一帧的主代码中时,我可以很好地访问player.x和y属性,但是来自类敌人。因为我只能在构造中发送一次参数,但我不知道如何不断更新循环中的坐标。xb和yb是我的玩家对象在场景中的坐标,每次我在场景中创建敌人对象时,我都会将其作为参数发送,但这种方法只给出一次坐标。我想在每个循环中更新玩家对象的坐标,我该怎么做?我尝试了行:trace(“this.parent.player.x”),但它不起作用

    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
,但这更容易出错),并调用其接口以获取所需的任何信息。例如,一个射击怪物的
类,请求管理类在其射程内获得怪物以选择目标,或者你的
敌人
类搜索玩家。

太棒了!既然你的问题解决了,你介意选择一个答案作为最佳答案吗?