[AS3.0]EventManager
ACTIONSCRIPT 2008/04/02 08:34 |이벤트에 인자를 전달해 주기 위해서 CustomEvent를 만드는 것도 일입니다.
그래서 이벤트 관리자를 저 처럼 만들어 사용 하시는 분들도 많이 계실텐데 혹시라도 고생을 하시는 분들이 있다면 필요한 분들이 계실꺼란 생각에 공유해봅니다.
var AH:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest();
req.url = url;
arg1:String = "test";
arg2:String = "test2";
EventManager.addEvent(AH, Event.COMPLETE, onLoadHandler, arg1 ,arg2);
AH.load(req);
private function onLoadHandler(evt:Event,arg1,arg2){
trace(arg1) // output "test"
trace(arg2) // output "test2"
}
이벤트의 삭제는 이벤트 대상자와 이벤트 타입을 넘겨 주면 됩니다.
EventManager.removeEvent(AH, Event.COMPLETE);
/**
* @version 0.1
* @author lovedev
*/
package net.asjs{
/**
* 사용방법
* EventManager.addEvent
* "이벤트가 할당될 객체","이벤트 타입","리스너","전달할 인자값...N"
*/
import flash.events.Event;
import flash.events.IEventDispatcher;
import flash.utils.Dictionary;
public class EventManager {
private static var eventList:Dictionary = new Dictionary();
/**
* 오브젝트에 이벤트 추가하기
* @param target
* @param eventType
* @param listener
* @param ...rest
*/
public static function addEvent (
targetIED:IEventDispatcher,
eventType:String,
listener:Function,
...rest ) : void {
if (!eventList[targetIED]) eventList[targetIED] = new Object();
eventList[targetIED][eventType] = new Object();
eventList[targetIED][eventType].listener = listener;
eventList[targetIED][eventType].args = rest;
targetIED.addEventListener(eventType, onDispatchEvent);
}
/**
* 이벤트 할당자
* @param evt
*/
private static function onDispatchEvent(evt:Event):void {
var targetIED:IEventDispatcher = evt.currentTarget as IEventDispatcher;
var eventType:String = evt.type;
var listener:Function = eventList[targetIED][eventType].listener;
var args:Array = eventList[targetIED][eventType].args;
if(!(args[0] is Event))args.unshift(evt);
listener.apply(targetIED, args);
}
/**
* 이벤트 삭제
* @param target
* @param eventType
*/
public static function removeEvent (
targetIED:IEventDispatcher, eventType:String ) : void {
eventList[targetIED][eventType] = null;
targetIED.removeEventListener(eventType, onDispatchEvent);
}
}
}
'ACTIONSCRIPT' 카테고리의 다른 글
| AS3 lib (0) | 2008/07/15 |
|---|---|
| Flashdevelop Ctrl+Shift+1의 기능 (5) | 2008/05/28 |
| [AS3.0] TweenMax (0) | 2008/04/10 |
| [AS3.0]EventManager (2) | 2008/04/02 |
| TextFieldUtil Class (0) | 2008/03/25 |
| imageuploader v0.1 (0) | 2008/03/25 |
| ActionScript4.0? (0) | 2008/03/12 |
| PV3D intractive cube (0) | 2008/02/13 |
net.zip
이올린에 북마크하기
댓글을 달아 주세요
좋은 정보 감사합니다.
좋은 정보가 되었다니 기분이 좋네요

PS)
검쉰님께서 공유해주시는 정보도 너무 좋은 정보가 많은거 같습니다. ^^ 저도 자주 눈팅으로 들리곤 합니다