[Actionscript] 사용자 정의 EventListener 만들기
- Nest
- Development
- Category
- ETC
- Hit
- 553
- Star
- 0
이벤트리스너는 액션스크립트에서 어떤 상황이 일어났을 때 뭔가 다른 행동을 할 수 있게 알려주고 호출한다.
이벤트리스너를 이용하여 각 요소의 애니메이션이나 상황의 타이밍을 제어할 수 있다. 타이밍 뿐만 아니라 모든지다.
Event
클래스 속에서는 지정된 이벤트 뿐이다. 대표적으로 COMPLETE이벤트정도...
하지만 한 클래스에 같은 이름으로 다른 메서드에서 사용하면 동일한 이벤트로 호출될 것이다. 다르게 말하면 1명의 부모에서 자식이 2,3,4명 다르지만 다 다른자식이 되어야한다. 성격이나 말도 틀릴것이다.
이 이벤트로서의 자식들을 개별적으로 임의로 만들어 줄 수 있다.
부모 클래스
package {
import flash.display.Sprite;
import flash.events.*;
public class Console extends Sprite {
public function Console():void {
var game:Game = new Game();
game.addEventListener(Game.GAME_OVER, gameOverListener);
}
private function gameOverListener(e:Event):void {
trace("game over");
}
}
}
자식 클래스
package {
import flash.display.Sprite;
import flash.events.*;
public class Game extends Sprite {
public static const GAME_OVER:String = "gameOver";
public function Game():void {
// 할일 하고 다 끝냈으면...
dispatchEvent(new Event(Game.GAME_OVER));
}
}
}
주의사항
- 자식 클래스에서 import불러오는 클래스는
flash.events.EventDispatcher
이다. 상속되게는 해줘야한다. - 부모 클래스에서 addEventListener을 사용할때 Event.COMPLETE와는 다른
Class.CLASSNAME
으로 호출한 자식 클래스이름.이벤트이름으로 지정해줘야한다. - const로 된 상수는 전부 대문자이며 단어 구분은 언더바(_)로 사용해주는것이 좋다.