开发者

AS3 ActionScript 3 - Instantiating Objects With A Timer?

I'm making a vertical (constantly) scrolling shooter & am trying to instantiate objects based on a timer. For exa开发者_高级运维mple: At 30 seconds, place a building @ x, y.

My problem is that the "building" is instantiated when the game starts and then again at the 30 second mark - instead of only @ the 30 second mark.

If anyone could steer me in the correct direction, it would be greatly appreciated.

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); 
    }   


}

}

Where am I going wrong?

Thank you for looking.


Here's the first of your class:

public class  ObjectPlacer extends MovieClip
{
private var Build01Timer:Timer;

**private var canPlace:Boolean = true;**

You're setting it to TRUE at the start, set it to false, and that would solve your problem :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜