AS3でプログラミングを始めたばかりですが、まだはっきりしないことがいくつかあります。
私は3つの異なるファイルを持つプロジェクトを持っています:twinrunner.fla
、、。twinrunner.as
wall.as
壁を画面上で右から左にスクロールさせます。プレイヤーに当たったら認識させたい。私はこれをで達成しようとしましたhitTestObject
。しかし、残念ながら、エラーが発生するだけです。
twinrunner.as
public class TwinRunner extends MovieClip
{
private var _timer:Timer;
public function TwinRunner()
{
//Timer initialize
_timer = new Timer(500, 1);
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onUpdateTime);
_timer.start();
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(event:Event):void
{
//Add event listeners
button.addEventListener(MouseEvent.CLICK, onGuessButtonClick);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
}
private function onRemovedFromStage(event:Event):void
{
//Remove the onEnterFrame event if
//this object is removed from the stage
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
removeEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
}
private function onGuessButtonClick(event:Event):void
{
addChild(new Wall());
}
private function onEnterFrame(event:Event):void
{
}
private function onUpdateTime(event:Event):void
{
addChild(new Wall());
_timer.reset();
_timer.start();
}
}
wall.as
public class Wall extends MovieClip
{
private var _vx:int;
public function Wall()
{
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(event:Event):void
{
x = stage.width;
y = 300;
_vx = -5;
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage)
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onRemovedFromStage(event:Event):void
{
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
removeEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
trace("wall removed");
}
private function onKeyDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.RIGHT)
{
_vx = -20;
}
}
private function onEnterFrame(event:Event):void
{
x += _vx;
if(this.hitTestObject(Player))
{
trace("player hit");
}
if (x + width / 2 < 0)
{
parent.removeChild(this);
}
}
}
これをコンパイルしようとするたびに、エラー1046が発生します。
タイプが見つからないか、コンパイルされていません-定数:Player
それはかなりばかげた間違いだと思いますが、私は完全に道に迷っており、どこを検索すればよいかわかりません。