본문 바로가기

FLASH/AS3.0팁

동적으로 생성한 무비클립에 이벤트 넣기

이 방법은 단슨한 코드이지만  아주 중요합니다.

동적으로 코드를 생성해 내고 그것에 인스턴스 네임을 부여해 주고 각 객체마다 이벤트를 등록해 주는 것이 for문으로 간단히 해결이 됩니다.

이벤트는 별도로 이벤트 함수를 넣어주면 되지요.

 

var a:Array = new Array();
var cnt:int = 30;
//무비클립생성
for(var i:int=0; i<cnt; i++){
 var mc:Circle = new Circle();
 mc.x= Math.random()* stage.stageWidth;
 mc.y= Math.random()*(stage.stageHeight-50);
 mc.name = "mc"+i//인스턴스네임을 내가 원하는 형태로 설정

 addChild(mc);
 mc.addEventListener(MouseEvent.CLICK, clickHandler); //이벤트 등록
}

// 이벤트 함수
function clickHandler(e:MouseEvent){
 var mc_circle:MovieClip = e.target as MovieClip// 이벤트에서 무비클립으로 형변환
 removeChild(mc_circle);
 rep.text = mc_circle.name.substr(2,2)+"번째 무비클립이 제거되었습니다.";
}



복제된무비클립에이벤트넣기.fla