0
我正在製作一個垂直(不斷)滾動的射擊遊戲&正試圖基於計時器實例化對象。例如:在30秒處,放置一棟建築@ x,y。AS3 ActionScript 3 - 使用計時器實例化對象?
我的問題是,當遊戲開始時,「建築物」被實例化,然後再次在30秒的時間點 - 而不是僅在30秒的時間點。
如果有人能引導我在正確的方向,將不勝感激。
package com.gamecherry.gunslinger
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class ObjectPlacer extends MovieClip
{
private var Build01Timer:Timer;
private var canPlace:Boolean = true;
private var stageRef:Stage;
private var startX:Number;
private var startY:Number;
private var time:int = 5000;
public function ObjectPlacer(stageRef:Stage) : void
{
this.stageRef = stageRef;
var Build01Timer = new Timer(time, 1);
Build01Timer.addEventListener(TimerEvent.TIMER, placeTimerHandler, false, 0, true);
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
Build01Timer.start();
}
private function loop(e:Event): void
{
if (canPlace)
{
var BuildingsLeft01:BuildingsLeft = new BuildingsLeft(stage, 720, -540);
BuildingsLeft01.scaleX = -1;
stageRef.addChildAt((BuildingsLeft01), 2);
canPlace = false;
}
}
private function placeTimerHandler(e: TimerEvent) : void
{
canPlace = true;
}
private function removeSelf() : void
{
removeEventListener(Event.ENTER_FRAME, loop);
if (stageRef.contains(this))
stageRef.removeChild(this);
}
}
}
我要去哪裏錯了?
謝謝你的期待。
D'哦!感謝您指出了這一點。感覺愚蠢比感到沮喪要好得多。 – GameCherry
是的,當你在聲明變量的時候經常發生這種情況。我會在構造函數中將其設置爲false! - 也請點擊該複選框,以便人們可以看到你接受了答案:) – RasmusWL