2011-07-25 3 views
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); 
    } 


} 

}

는 어디서 잘못된 것입니까?

감사합니다.

답변

0

여기에 클래스의 첫 번째입니다 : 당신은 시작 TRUE로 설정하고

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

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

, false로 설정하고 그 문제 :

+0

D' 아를 해결할 것입니다! 그 점을 지적 해 주셔서 감사합니다. 어리 석다는 느낌은 좌절감보다 훨씬 낫습니다. – GameCherry

+0

그래, 변수를 선언 할 때 변수를 설정하면이 일이 자주 발생합니다. 생성자에서 false로 설정합니다! - 사람들이 당신이 답변을 수락 볼 수 있도록 또한, 그 확인란을 클릭하십시오 :) – RasmusWL

관련 문제