패키지 | flash.ui |
클래스 | public final class Mouse |
상속 | Mouse Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
관련 API 요소
공용 속성
속성 | 정의 주체 | ||
---|---|---|---|
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
cursor : String [정적]
기본 커서의 이름입니다. | Mouse | ||
supportsCursor : Boolean [정적] [읽기 전용]
컴퓨터 또는 장치가 영구 커서를 표시하는지 여부를 나타냅니다. | Mouse | ||
supportsNativeCursor : Boolean [정적] [읽기 전용]
현재 구성이 기본 커서를 지원하는지 여부를 나타냅니다. | Mouse |
공용 메서드
메서드 | 정의 주체 | ||
---|---|---|---|
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
[정적]
포인터를 숨깁니다. | Mouse | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
[정적]
지정된 이름과 지정된 데이터를 사용하여 기본 커서를 등록합니다. | Mouse | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
[정적]
포인터를 표시합니다. | Mouse | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
[정적]
지정된 이름의 기본 커서를 등록 해제합니다. | Mouse | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object |
속성 세부 정보
cursor | 속성 |
supportsCursor | 속성 |
supportsCursor:Boolean
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10.1, AIR 2 |
컴퓨터 또는 장치가 영구 커서를 표시하는지 여부를 나타냅니다.
supportsCursor
속성은 대부분의 데스크톱 컴퓨터에서 true
이지만, 대부분의 휴대 장치에서는 false
입니다.
참고: 마우스 이벤트는 이 속성의 true
여부에 관계없이 전달할 수 있습니다. 그러나 포인팅 장치의 물리적 특성에 따라 마우스 이벤트가 다르게 작동할 수도 있습니다.
구현
public static function get supportsCursor():Boolean
관련 API 요소
예제 ( 예제 사용 방법 )
다음 예는 영구적 커서에 대한 현재 지원 여부를 나타내는 간단한 테스트입니다. 이 예를 테스트할 때 텍스트 필드를 클릭하여 속성 값을 확인하십시오.
import flash.events.*; import flash.display.*; import flash.ui.Mouse; import flash.text.TextField; var supportsCursorTxt:TextField = new TextField(); supportsCursorTxt.width = 200; supportsCursorTxt.border = true; addChild(supportsCursorTxt); addEventListener (MouseEvent.CLICK, getScreenKeyboardType); function getScreenKeyboardType(e:MouseEvent):void{ supportsCursorTxt.text= "Supports Cursor is : " + String(flash.ui.Mouse.supportsCursor); }
다음 예제에서는 여러 가지 사용자 입력 환경을 테스트하고 각 환경에 응답합니다. 이 예제는 프로그램이 커서를 사용하는 게임 코드의 일부라고 가정합니다. 먼저, 이 예제에서는 해당 환경이 커서를 지원하는지 여부를 확인하는 테스트를 수행합니다. 커서를 지원하지 않는 경우 스타일러스와의 상호 작용을 지원하는지 확인하는 테스트를 수행합니다. 스타일러스와의 상호 작용을 지원하는 경우 코드를 삽입하여 스타일러스를 사용하도록 게임을 사용자 정의할 수 있습니다. 해당 환경에서 손가락 상호 작용을 지원하는 경우 코드를 삽입하여 손가락 터치의 특정 요구 사항에 맞게 프로그램을 사용자 정의할 수 있습니다. 포인팅 장치가 전혀 지원되지 않는 경우 개발자는 대체 커서 또는 키 누르기 등의 상호 작용 수단을 만들어야 합니다.
if(Mouse.supportsCursor) { //Game acts as before } else { if(Capabilities.touchscreenType == TouchscreenType.STYLUS ){ //The Game has to change so that the character is chasing the location of the stylus as //it's dragged around. Some of the animations will have to change }else if(Capabilities.touchscreenType = TouchscreenType.FINGER){ //Same as above, except that the hit-area is larger for a finger. }else{ //There's no pointing device at all. The developer designs some sort of custom cursor to //be controlled with key presses or similar input } }
supportsNativeCursor | 속성 |
메서드 세부 정보
hide | () | 메서드 |
public static function hide():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
포인터를 숨깁니다. 포인터는 기본적으로 표시됩니다.
참고: 이전의 Mouse.show()
호출 횟수와 상관 없이 Mouse.hide()
는 한 번만 호출해야 합니다.
관련 API 요소
registerCursor | () | 메서드 |
public static function registerCursor(name:String, cursor:MouseCursorData):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10.2, AIR 1.5 |
지정된 이름과 지정된 데이터를 사용하여 기본 커서를 등록합니다.
매개 변수
name:String | |
cursor:MouseCursorData |
show | () | 메서드 |
public static function show():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
포인터를 표시합니다. 포인터는 기본적으로 표시됩니다.
참고: 이전의 Mouse.hide()
호출 횟수와 상관 없이 Mouse.show()
는 한 번만 호출해야 합니다.
관련 API 요소
unregisterCursor | () | 메서드 |
예제 예제 사용 방법
MouseExample.as
다음 예제에서는 MouseExample, SimpleButton, ButtonDisplayState 및 CustomCursor 클래스를 사용하여 스테이지에 간단한 버튼을 배치합니다. 버튼에는 사용자 정의 포인터가 있고 클릭 시 버튼이 바뀝니다. 이는 다음 단계로 이루어집니다.
- CustomCursor 유형의
cursor
, CustomButton 유형의child
및 uint 유형의gutter
인스턴스 속성을 선언합니다. child
를 새 CustomButton 인스턴스에 할당하고 x 및 y 좌표를 각각 10픽셀로 설정한 다음 이 인스턴스를 표시 목록에 추가합니다. CustomButton 클래스는 SimpleButton의downState
,upState
,overState
및hitTestState
속성을 재정의합니다. 이러한 각 속성은child
인스턴스의 상태에 따라 다른 사각형을 그리는 ButtonDisplayState 객체를 인스턴스화합니다.child
인스턴스를 사용하여MOUSE_OVER
이벤트 리스너 및mouseOverHandler()
리스너 메서드를MOUSE_OUT
이벤트 리스너 및 연관된mouseOutHandler()
메서드와 함께 추가합니다.- 이벤트 리스너는 다음과 같이 작동합니다.
mouseOverHandler
: "일반" 포인터를 숨기고MOUSE_MOVE
리스너를 추가합니다. 이 리스너는 아래에서 설명하는mouseMoveHandler()
를 사용하여 마우스 이동을 처리합니다.mouseOutHandler
: 마우스가 사용자 정의 버튼을 벗어나면 "일반" 포인터가 표시되고MOUSE_MOVE
이벤트 리스너가 제거되며 사용자 정의 커서의 표시 여부가false
로 설정됩니다.mouseMoveHandler
: 포인터가 이동될 때마다 사용자 정의 커서가 이동되고 사용자 정의 커서의 표시 여부가true
로 설정됩니다.
- 다시
MouseExample
생성자에서 커서 속성을 새 CustomCursor 객체에 할당한 다음addChild()
를 사용하여 표시 목록에 추가합니다. 마우스를child
위에 놓을 때마다 CustomCursor 클래스를 통해 "일반적인" 포인터 대신 검은색에 가까운 작은 사각형이 그려집니다. MOUSE_LEAVE
유형의 네 번째 이벤트 리스너가 관련mouseLeaveHandler()
메서드와 함께 추가됩니다. 마우스가 Stage를 벗어날 때 호출되는 이 메서드에서는mouseOutHandler()
를 새mouseMove
리스너 객체에 전달하여 포인터를 Stage에서 제거합니다.
package { import flash.display.Sprite; import flash.display.DisplayObject; import flash.ui.Mouse; import flash.events.*; public class MouseExample extends Sprite { private var cursor:CustomCursor; private var child:CustomButton; private var gutter:uint = 10; public function MouseExample() { child = new CustomButton(); child.x = gutter; child.y = gutter; addChild(child); child.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); child.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); cursor = new CustomCursor(); addChild(cursor); stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler); } private function mouseOverHandler(event:MouseEvent):void { trace("mouseOverHandler"); Mouse.hide(); child.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); } private function mouseOutHandler(event:MouseEvent):void { trace("mouseOutHandler"); Mouse.show(); child.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); cursor.visible = false; } private function mouseMoveHandler(event:MouseEvent):void { trace("mouseMoveHandler"); cursor.x = event.localX; cursor.y = event.localY; event.updateAfterEvent(); cursor.visible = true; } private function mouseLeaveHandler(event:Event):void { trace("mouseLeaveHandler"); mouseOutHandler(new MouseEvent(MouseEvent.MOUSE_MOVE)); } } } import flash.display.Shape; import flash.display.SimpleButton; class CustomButton extends SimpleButton { var upColor:uint = 0xFFCC00; var overColor:uint = 0xCCFF00; var downColor:uint = 0x00CCFF; var size:uint = 80; public function CustomButton() { downState = new ButtonDisplayState(downColor, size+10); overState = new ButtonDisplayState(overColor, size); upState = new ButtonDisplayState(upColor, size); hitTestState = new ButtonDisplayState(upColor, size); } } class ButtonDisplayState extends Shape { var bgColor:uint; var size:uint; public function ButtonDisplayState(bgColor:uint, size:uint) { this.bgColor = bgColor; this.size = size; draw(); } private function draw():void { graphics.clear(); graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } } class CustomCursor extends Shape { var bgColor:uint = 0x333333; var size:uint = 10; public function CustomCursor() { visible = false; draw(); } private function draw():void { graphics.clear(); graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } }
Tue Jun 12 2018, 03:17 PM Z