2013-04-08 3 views
0

그들은 적이 아니며 단지 풍선을 쏘는 것입니다. 그러나 addChild를 사용하여 추가하면 아무 것도 클릭하지 않고 "촬영"애니메이션을 재생하지 못합니다. 여기 내 코드가있다. 실례가되지 않으면 ActionScript가 시작되었습니다.살인 게임 Enemies ActionScript 3.0

아이들을 클릭하는 것 외에는 스테이지에 추가 된 오브젝트에 전혀 등록하지 않는 것 외에는 모두 잘 작동합니다. 외부 클래스가 없으며 모든 인스턴스 이름이 정확합니다. 나는 연계에서 풍선을 "피해자"라고 불렀습니다.

import flash.display.MovieClip; 
import flash.utils.Timer; 
import flash.events.MouseEvent; 


Mouse.hide(); 
cursor_mc.startDrag(true); 


stage.addEventListener(MouseEvent.MOUSE_DOWN, onClick); 
shotHandler.addEventListener(MouseEvent.MOUSE_DOWN, boxShot); 

function boxShot(evt:MouseEvent):void 
{ 
    enemyBox.gotoAndStop(2); 
} 




    function onClick(event:MouseEvent):void 

    { 
     cursor_mc.play(); 
     var myBullet:MovieClip = new black_mc(); 
     myBullet.x = mouseX; myBullet.y = mouseY; 
     stage.addChildAt(myBullet , 0); 
    } 


    var myTimer:Timer = new Timer(1200, 300); 
    myTimer.addEventListener(TimerEvent.TIMER, createEnemies); 
    myTimer.start(); 

    function createEnemies(e:Event):void 
    { 


     var circle:MovieClip = new victim(); 
     circle.x = Math.random() * stage.stageWidth; 
     circle.y = Math.random() * stage.stageHeight; 
     addChildAt(circle , 2); 


    } 

답변

0

코드를 살펴본 결과 "피해자"개체에 MouseListeners가 추가되지 않습니다. 어쨌든 객체를 클릭 할 때 뭔가를해야한다면 다음과 같이 쓸 수 있습니다 :

function createEnemies(e:Event):void //your enemy creation function 
{ 


    var circle:MovieClip = new victim(); 

    circle.addEventListener(MouseEvent.CLICK, onObjClick); // here is your click listener 

    circle.x = Math.random() * stage.stageWidth; 
    circle.y = Math.random() * stage.stageHeight; 
    addChildAt(circle , 2); 


} 

private function onObjClick(event:MouseEvent):void { 
    var target:MovieClip = event.currentTarget as victim; 
    target.gotoAndPlay("destroyAnim"); 
    //target.goToDeath(); uncomment this and comment previous line if you already have a destroy function into your "victim" class. 
}