コードを実行すると、次のエラーが発生します。
TypeError: エラー #1009: null オブジェクト参照のプロパティまたはメソッドにアクセスできません。スクリプトで::敵/moveToward()
プレイヤーをステージに登録することと関係があると思います。これまでのところ、Engine、Player、Enemy の 3 つのクラスがあります。私は現在、横スクロールのビートエムアップゲームを構築しています。
package scripts
{
import flash.display.*;
import flash.events.*;
import flash.events.Event;
import flash.display.Stage;
public class Enemy extends MovieClip
{
var enemySpeed: Number = 3;
var xDistance: Number = 50
var yDistance: Number = 20;
public var player: Player;
public function Enemy()
{
this.addEventListener(Event.ADDED_TO_STAGE, addListeners)
}
public function addListeners(event: Event):void
{
stage.addEventListener(Event.ENTER_FRAME, moveToward);
trace("handeled");
}
function moveToward(event: Event):void
{
if(this.x < player.x - xDistance)
{
this.x += enemySpeed;
this.scaleX = -1;
}
if(this(root).x > player.x+xDistance)
{
this.x -= enemySpeed;
this. scaleX = 1;
}
if(this.y < player.y-yDistance)
{
this.y += enemySpeed;
}
if(this.y > player.y+yDistance)
{
this.y -= enemySpeed;
}
}