마우스 입력 캡처Flash Player 9 이상, Adobe AIR 1.0 이상 마우스를 클릭하면 대화형 기능을 트리거하는 데 사용할 수 있는 마우스 이벤트가 만들어집니다. 이벤트 리스너를 스테이지에 추가하면 SWF 내에서 발생하는 마우스 이벤트를 수신할 수 있습니다. 또한 InteractiveObject로부터 상속되는 스테이지의 객체에(예: Sprite 또는 MovieClip) 이벤트 리스너를 추가할 수 있습니다. 이러한 리스너는 객체를 클릭하면 트리거됩니다. 키보드 이벤트와 마찬가지로 마우스 이벤트도 버블링됩니다. 다음 예제에서 square는 Stage의 자식이므로 정사각형을 클릭하면 Sprite square와 Stage 객체 둘 다에서 이벤트가 전달됩니다. var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0,0,100,100); square.graphics.endFill(); square.addEventListener(MouseEvent.CLICK, reportClick); square.x = square.y = 50; addChild(square); stage.addEventListener(MouseEvent.CLICK, reportClick); function reportClick(event:MouseEvent):void { trace(event.currentTarget.toString() + " dispatches MouseEvent. Local coords [" + event.localX + "," + event.localY + "] Stage coords [" + event.stageX + "," + event.stageY + "]"); } 위 예제의 마우스 이벤트에는 클릭 위치 정보가 포함되어 있습니다. localX 및 localY 속성에는 표시 체인의 최하위 자식에 대한 마우스 클릭 위치가 포함되어 있습니다. 예를 들어, square의 왼쪽 위 모서리를 클릭하면 square의 등록 포인트인 로컬 좌표 [0,0]이 보고됩니다. 또는 stageX 및 stageY 속성이 스테이지 클릭의 전역 좌표를 참조합니다. 이 좌표의 경우 같은 클릭으로 [50,50]이 보고됩니다. square가 해당 좌표로 이동되었기 때문입니다. 이러한 두 좌표 쌍은 사용자 상호 작용에 대한 응답 방식에 따라 유용할 수 있습니다. MouseEvent 객체에는 altKey, ctrlKey 및 shiftKey라는 부울 속성도 포함되어 있습니다. 이러한 속성을 사용하여 마우스 클릭 시 Alt, Ctrl 또는 Shift 키를 함께 눌렀는지 여부를 확인할 수 있습니다. 스테이지 주위에서 Sprite 드래그Sprite 클래스의 startDrag() 메서드를 사용하여 사용자가 스테이지 주위에서 Sprite 객체를 드래그하도록 할 수 있습니다. 아래의 코드는 여기에 해당하는 예제입니다. import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); } 자세한 내용은 위치 변경에서 마우스 드래그 상호 작용 만들기에 있는 단원을 참조하십시오. AIR에서 드래그 앤 드롭Adobe AIR에서는 사용자가 데이터를 응용 프로그램 안팎으로 드래그할 수 있도록 드래그 앤 드롭 지원을 설정할 수 있습니다. 자세한 내용은 AIR의 드래그 앤 드롭을 참조하십시오. 마우스 커서 사용자 정의스테이지의 표시 객체에 대해 마우스 커서(마우스 포인터)를 숨기거나 교체할 수 있습니다. 마우스 커서를 숨기려면 Mouse.hide() 메서드를 호출합니다. Mouse.hide()를 호출하고 해당 스테이지에서 MouseEvent.MOUSE_MOVE 이벤트를 수신하는 한편 표시 객체(사용자 정의 커서)의 좌표를 해당 이벤트의 stageX 및 stageY 속성으로 설정함으로써 커서를 사용자 정의할 수 있습니다. 다음 예제에서는 이 작업을 실행하는 방법을 보여 줍니다. var cursor:Sprite = new Sprite(); cursor.graphics.beginFill(0x000000); cursor.graphics.drawCircle(0,0,20); cursor.graphics.endFill(); addChild(cursor); stage.addEventListener(MouseEvent.MOUSE_MOVE,redrawCursor); Mouse.hide(); function redrawCursor(event:MouseEvent):void { cursor.x = event.stageX; cursor.y = event.stageY; } |
|