본문 바로가기

Queue에 의한 함수 실행 관리 이글은 hika님의 글 Message Queueing 서비스 를 읽다가 비슷한 작업을 하는 클래스가 있어 남겨봅니다. 기본적인 의도는 hika님이 설명하신바와 같습니다만 이 클래스의 사용처는 다음과 같습니다. 예를 들어 포토샾과 같은 프로그램들은 화면으로부터 끊임없이 사용자 입력(마우스 클릭과 같은) 이벤트를 받게 됩니다. 때문에 이런 이벤트들에 의한 코드 호출이 바로 hika님이 말한 "비순차적인 실행" 을 발생시킵니다. 포토샾에서 이미지에 어떤 효과를 적용하는 프로세스가 진행되는 도중에 사용자가 파일메뉴의 저장하기 명령을 다시 실행하게 된다면 저장되는 데이터는 예상과는 다른 데이터가 저장될 수도 있는 것이죠. 이런 문제들 때문에 저는 다음 두가지 완충장치를 두게 되었습니다. 실행되는 Command를 .. 더보기
실전 Event Bubble B 컴포넌트를 가지고있는 A컴포넌트가 있을 때 마우스 동작에 의한 이벤트가 B에서 발생했다고 가정하고, A에서 이 이벤트를 등록하여 사용하고 싶을 때 보통 다음과 같은 구문을 A 클래스 내에 생성하게 됩니다 A 클래스 내부 : B.addEventListener(eventType, onListener); function onListener(event:Event):void { dispatchEvent(event); } 클라이언트 : A.addEventListener(eventType, onListener); function onListener(event:Event):void { trace("call", event.eventPhase); } 결과적으로 보면 위 구문은 "call"을 두번 출력하게 됩니다. 이유.. 더보기
CustomEvent에서 event.preventDefault() 기능 구현하기 preventDefault() 메서드는 발생한 이벤트에 대하여 기본적으로 수행하게 되는 작업을 중지시키는 기능을 합니다. 예를 들면 TextBox에서는 키버튼 이벤트를 받아 텍스트를 보여주는 것이 키이벤트에 대한 TextBox의 Default 기능입니다. 자세한 내용은 도움말을 참조합시다. 이벤트 객체 도움말 보통 이벤트 리스너에서 다음과 같이 사용합니다. private function onTabClose(event:TabCloseEvent):void { trace(this, "onTabClose"); event.preventDefault(); //event.stopImmediatePropagation(); } preventDefault() 메서드가 이벤트 흐름을 제어할 수 있는 메서드라고 착각하기 쉬운.. 더보기