ActionScript 3.0에서 onReleaseOutside를 대체할 만한 이벤트가 없습니다.
그래서 MOUSE_DOWN 이벤트가 발생할 때, stage에 MOUSE_UP 이벤트를 추가했다가,
MOUSE_UP 이벤트 핸들러에서 다시 MOUSE_UP를 제거시키는 방법을 사용해야 하네요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public function Test(){ // Add MOUSE_DOWN event to mc mc.addEventListener(MouseEvent.MOUSE_DOWN, rotateDragStart); } private function rotateDragStart(evt:MouseEvent):void{ // Start drag // Add ENTER_FRAME event to mc mc.addEventListener(Event.ENTER_FRAME, rotateDragging); // Add MOUSE_UP event to stage stage.addEventListener(MouseEvent.MOUSE_UP, rotateDragStop); } private function rotateDragStop(evt:MouseEvent):void{ // Stop drag // Remove ENTER_FRAME event from mc mc.removeEventListener(Event.ENTER_FRAME, rotateDragging); // Remove MOUSE_UP event from stage stage.removeEventListener(MouseEvent.MOUSE_UP, rotateDragStop); } private function rotateDragging(evt:Event):void{ // Excute while dragging } |
thanks to derision, kidari70 and plandas from flash8coders.com