'Flex/AIR/AS3/Event'에 해당되는 글 2건

  1. 2010.03.04 ActionScript 3.0 - Event 전파 차단하기
  2. 2009.08.26 [Event] Event에 매개변수 전달하기
Flex/AIR/AS3/Event2010.03.04 13:07

[출처] Default behaviors 란? 그리고 preventDefault()|작성자 딴동네


preventDefault, stopPropagation, stopimmedatePropagation



preventDefault

preventDefault는 이벤트의 발생 자체를 차단함 (특정한 이벤트는 차단하지 못한다. TextField에서 더블클릭시 구문강조 이벤트)

ex) TextField에 a키 입력시 이벤트 전파를 차단한다.

this.txt_Input.addEventListener(flash.events.TextEvent.TEXT_INPUT, this.onTextInput);

function onTextInput(objEvent:TextEvent)
{
    trace("event ", objEvent);

    if(objEvent.text=="a")
        objEvent.preventDefault();
}




stopPropagation


stopPropagation는  capture단계에 등록되어있는 모든 요소들들을 실행시킨후에 멈춤.

ex) stopPropagation()메소드가 실행되더라도 onClickTest1(), onClickTest2()가 실행된 후 이벤트 전파 차단

btn_2.addEventListener(MouseEvent.CLICK, this.onBtn2Click);
btn_2.addEventListener(MouseEvent.CLICK, this.onClickTest1);
btn_2.addEventListener(MouseEvent.CLICK, this.onClickTest2);

function onBtn2Click(objEvent:MouseEvent)
{
    objEvent.stopPropagation();        
}



stopimmedatePropagation

stopImmediatePropagation는 capture단계에 등록되어있는 요소라도 바로 멈춤.

ex) stopImmediatePropagation()메소드가 실행되는 시점부터 즉시 이벤트 전파 차단.

btn_3.addEventListener(MouseEvent.CLICK, this.onBtn3Click);
btn_3.addEventListener(MouseEvent.CLICK, this.onClickTest1);
btn_3.addEventListener(MouseEvent.CLICK, this.onClickTest2);

function onBtn3Click(objEvent:MouseEvent)
{
    objEvent.stopImmediatePropagation();
}

 

저작자 표시 비영리
신고

'Flex/AIR/AS3 > Event' 카테고리의 다른 글

ActionScript 3.0 - Event 전파 차단하기  (0) 2010.03.04
[Event] Event에 매개변수 전달하기  (0) 2009.08.26
Posted by 코멧'★
TAG event
Flex/AIR/AS3/Event2009.08.26 23:43

이벤트리스너를 등록할때 매개변수를 전달하기 위해서는
addEventListener 의 argument로 Function 타입의 값을 넘겨 주면 된다.

private function test():void
{
	var bt:Button = new Button();

	// Event 매개 변수로 리턴값이 Function인 eventFunc을 넘겨준다.
	bt.addEventListener(MouseEvent.CLICK, eventFunc(mouseEvt,"test");
}

// ...arg : argument를 여러개 등록할 수 있음
private function eventFunc(func:Function, ...arg):Function
{
	return function(...innerArgs):void { 
		func.apply(this, innerArgs.concat(arg)); 
	}
} 

private function mouseEvt(e:MouseEvent, s:String):void
{
	trace(s);
} 
저작자 표시 비영리 변경 금지
신고

'Flex/AIR/AS3 > Event' 카테고리의 다른 글

ActionScript 3.0 - Event 전파 차단하기  (0) 2010.03.04
[Event] Event에 매개변수 전달하기  (0) 2009.08.26
Posted by 코멧'★

티스토리 툴바