패키지 | flash.display |
클래스 | public class Sprite |
상속 | Sprite DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
하위 클래스 | DownloadProgressBar, FlexSprite, FLVPlayback, FLVPlaybackCaptioning, FTETextField, HTMLLoader, LayoutTargetSprite, MediaPlayerSprite, MovieClip, Preloader, ProLoader, SparkDownloadProgressBar, SplashScreen, TLFTextField, UIComponent |
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Sprite 객체는 동영상 클립과 유사하지만, 타임라인이 없기 때문에 타임라인이 필요 없는 객체에 적합한 기본 클래스입니다. 예를 들어 Sprite는 일반적으로 타임라인을 사용하지 않는 사용자 인터페이스(UI) 구성 요소에 대한 논리 기본 클래스가 됩니다.
Sprite 클래스는 ActionScript 3.0에 새롭게 추가되었습니다. MovieClip 클래스의 기능을 대체하며 이전 ActionScript 릴리스의 모든 기능을 보유하고 있어 역호환성을 제공합니다.
기타 예제
속성 | 정의 주체 | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
이 InteractiveObject 인스턴스에 대한 현재 액세스 가능성 구현(AccessibilityImplementation)입니다. | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
이 표시 객체의 현재 액세스 가능성 옵션입니다. | DisplayObject | ||
alpha : Number
지정된 객체의 알파 투명도 값을 나타냅니다. | DisplayObject | ||
blendMode : String
사용할 블렌드 모드를 지정하는 BlendMode 클래스 값입니다. | DisplayObject | ||
blendShader : Shader [쓰기 전용]
전경 및 배경을 블렌딩하는 데 사용되는 셰이더를 설정합니다. | DisplayObject | ||
buttonMode : Boolean
이 Sprite의 버튼 모드를 지정합니다. | Sprite | ||
cacheAsBitmap : Boolean
true로 설정된 경우 Flash 런타임은 표시 객체의 내부 비트맵 표현을 캐시합니다. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
null이 아닌 경우 이 Matrix 객체는 cacheAsBitmap이 true로 설정될 때 표시 객체가 렌더링되는 방법을 정의합니다. | DisplayObject | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
contextMenu : NativeMenu
이 객체에 연결된 컨텍스트 메뉴를 지정합니다. | InteractiveObject | ||
doubleClickEnabled : Boolean
이 객체에서 doubleClick 이벤트를 받을지 여부를 지정합니다. | InteractiveObject | ||
dropTarget : DisplayObject [읽기 전용]
드래그하는 Sprite 아래의 표시 객체 또는 Sprite를 드래그해 놓은 표시 객체를 지정합니다. | Sprite | ||
filters : Array
현재 표시 객체와 연관된 각 필터 객체가 들어 있는 인덱싱된 배열입니다. | DisplayObject | ||
focusRect : Object
이 객체에서 포커스 사각형을 표시할지 여부를 지정합니다. | InteractiveObject | ||
graphics : Graphics [읽기 전용]
벡터 드로잉 명령을 내릴 수 있는 이 Sprite에 속한 Graphics 객체를 지정합니다. | Sprite | ||
height : Number
표시 객체의 높이를 픽셀 단위로 나타냅니다. | DisplayObject | ||
hitArea : Sprite
Sprite의 히트 영역으로 사용할 다른 Sprite를 지정합니다. | Sprite | ||
loaderInfo : LoaderInfo [읽기 전용]
이 표시 객체가 속한 파일의 로딩 정보가 포함된 LoaderInfo 객체를 반환합니다. | DisplayObject | ||
mask : DisplayObject
호출하는 표시 객체는 지정된 mask 객체에 의해 마스크 처리됩니다. | DisplayObject | ||
metaData : Object
PlaceObject4 태그를 통해 SWF 파일에 해당 DisplayObject의 인스턴스와 함께 메타데이터가 저장된 경우 DisplayObject 인스턴스의 메타데이터 객체를 가져옵니다. | DisplayObject | ||
mouseChildren : Boolean
해당 객체의 자식에서 마우스 또는 사용자 입력 장치가 사용하도록 설정되어 있는지 여부를 결정합니다. | DisplayObjectContainer | ||
mouseEnabled : Boolean
이 객체가 마우스 또는 기타 사용자 입력, 메시지를 수신할지 여부를 지정합니다. | InteractiveObject | ||
mouseX : Number [읽기 전용]
마우스 또는 사용자 입력 장치 위치의 x 좌표를 픽셀로 나타냅니다. | DisplayObject | ||
mouseY : Number [읽기 전용]
마우스 또는 사용자 입력 장치 위치의 y 좌표를 픽셀로 나타냅니다. | DisplayObject | ||
name : String
DisplayObject의 인스턴스 이름을 나타냅니다. | DisplayObject | ||
needsSoftKeyboard : Boolean
이 InteractiveObject 인스턴스가 포커스를 받을 때 가상 키보드(화면의 소프트웨어 키보드)를 표시할지 여부를 지정합니다. | InteractiveObject | ||
numChildren : int [읽기 전용]
이 객체의 자식 수를 반환합니다. | DisplayObjectContainer | ||
opaqueBackground : Object
표시 객체를 특정 배경색으로 불투명하게 처리할지 여부를 지정합니다. | DisplayObject | ||
parent : DisplayObjectContainer [읽기 전용]
이 표시 객체가 포함된 DisplayObjectContainer 객체를 나타냅니다. | DisplayObject | ||
root : DisplayObject [읽기 전용]
로드된 SWF 파일에 있는 표시 객체의 경우, 해당 SWF 파일이 나타내는 표시 목록의 트리 구조 부분에서 맨 위에 위치하는 표시 객체가 루트 속성이 됩니다. | DisplayObject | ||
rotation : Number
DisplayObject 인스턴스가 원점으로부터 회전한 각도입니다. | DisplayObject | ||
rotationX : Number
DisplayObject 인스턴스가 3D parent 컨테이너를 기준으로 원점으로부터 x축 회전한 각도를 나타냅니다. | DisplayObject | ||
rotationY : Number
DisplayObject 인스턴스가 3D parent 컨테이너를 기준으로 원점으로부터 y축 회전한 각도를 나타냅니다. | DisplayObject | ||
rotationZ : Number
DisplayObject 인스턴스가 3D parent 컨테이너를 기준으로 원점으로부터 z축 회전한 각도를 나타냅니다. | DisplayObject | ||
scale9Grid : Rectangle
현재 적용 중인 크기 조절 격자입니다. | DisplayObject | ||
scaleX : Number
등록 포인트에서 적용된 객체의 가로 크기(백분율)를 나타냅니다. | DisplayObject | ||
scaleY : Number
객체의 등록 포인트에서 적용된 객체의 세로 크기(백분율)를 나타냅니다. | DisplayObject | ||
scaleZ : Number
객체의 등록 포인트에서 적용된 객체의 깊이 크기(백분율)를 나타냅니다. | DisplayObject | ||
scrollRect : Rectangle
표시 객체의 스크롤 사각형 경계입니다. | DisplayObject | ||
softKeyboard : String
소프트 키보드의 모양을 제어합니다. | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
소프트 키보드가 표시될 때 화면에서 그대로 유지되는 영역을 정의합니다(iOS에서는 사용할 수 없음). | InteractiveObject | ||
soundTransform : flash.media:SoundTransform
이 Sprite 내에서 사운드를 제어합니다. | Sprite | ||
stage : Stage [읽기 전용]
표시 객체의 Stage입니다. | DisplayObject | ||
tabChildren : Boolean
객체의 자식에서 탭 기능을 사용할 수 있는지 여부를 결정합니다. | DisplayObjectContainer | ||
tabEnabled : Boolean
이 객체가 탭 순서에 있는지 여부를 지정합니다. | InteractiveObject | ||
tabIndex : int
SWF 파일에서 객체의 탭 순서를 지정합니다. | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [읽기 전용]
이 DisplayObjectContainer 인스턴스에 대한 TextSnapshot 객체를 반환합니다. | DisplayObjectContainer | ||
transform : flash.geom:Transform
표시 객체의 행렬, 색상 변환 및 픽셀 경계와 관련된 속성을 가진 객체입니다. | DisplayObject | ||
useHandCursor : Boolean
buttonMode 속성이 true로 설정된 스프라이트 위로 포인터를 움직일 때 손 모양(손 모양 커서)을 표시할지 여부를 나타내는 부울 값입니다. | Sprite | ||
visible : Boolean
표시 객체가 표시되는지 여부를 나타냅니다. | DisplayObject | ||
width : Number
표시 객체의 폭을 픽셀 단위로 나타냅니다. | DisplayObject | ||
x : Number
부모 DisplayObjectContainer의 로컬 좌표를 기준으로 DisplayObject 인스턴스의 x 좌표를 나타냅니다. | DisplayObject | ||
y : Number
부모 DisplayObjectContainer의 로컬 좌표를 기준으로 DisplayObject 인스턴스의 y 좌표를 나타냅니다. | DisplayObject | ||
z : Number
3D parent 컨테이너를 기준으로 DisplayObject 인스턴스의 z축에 있는 z 좌표 위치를 나타냅니다. | DisplayObject |
메서드 | 정의 주체 | ||
---|---|---|---|
Sprite()
새 Sprite 인스턴스를 만듭니다. | Sprite | ||
이 DisplayObjectContainer 인스턴스에 자식 DisplayObject 인스턴스를 추가합니다. | DisplayObjectContainer | ||
이 DisplayObjectContainer 인스턴스에 자식 DisplayObject 인스턴스를 추가합니다. | DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | EventDispatcher | ||
지정된 point 점으로 DisplayObjectContainer.getObjectsUnderPoint() 메서드를 호출하여 반환된 목록에서 임의의 표시 객체가 보안 제한 사항으로 인해 생략되는지 여부를 나타냅니다. | DisplayObjectContainer | ||
지정된 표시 객체가 DisplayObjectContainer 인스턴스의 자식인지 아니면 인스턴스 자체인지를 확인합니다. | DisplayObjectContainer | ||
이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | ||
targetCoordinateSpace 객체의 좌표계를 기준으로 표시 객체의 영역을 정의하는 사각형을 반환합니다. | DisplayObject | ||
지정된 인덱스에 존재하는 자식 표시 객체 인스턴스를 반환합니다. | DisplayObjectContainer | ||
지정된 이름을 가진 자식 표시 객체를 반환합니다. | DisplayObjectContainer | ||
자식 DisplayObject 인스턴스의 인덱스 위치를 반환합니다. | DisplayObjectContainer | ||
이 DisplayObjectContainer 인스턴스의 자식(또는 손자 등)으로서 지정된 점 아래에 있는 객체의 배열을 반환합니다. | DisplayObjectContainer | ||
대상 좌표 공간 매개 변수에 의해 정의되는 좌표계를 기준으로 모양의 획을 제외하고 표시 객체의 경계를 정의하는 사각형을 반환합니다. | DisplayObject | ||
Point 객체를 Stage 전역 좌표에서 표시 객체의 로컬 좌표로 변환합니다. | DisplayObject | ||
Stage(전역) 좌표의 2차원 점을 3차원 표시 객체(로컬) 좌표로 변환합니다. | DisplayObject | ||
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
표시 객체의 경계 상자를 평가하여 obj 표시 객체의 경계 상자와 겹치거나 교차하는지 확인합니다. | DisplayObject | ||
표시 객체를 평가하여 x 및 y 매개 변수에 의해 지정된 점과 겹치거나 교차하는지 확인합니다. | DisplayObject | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
3차원 표시 객체의 로컬 좌표에 있는 3차원 점을 Stage 전역 좌표의 2차원 점으로 변환합니다. | DisplayObject | ||
Point 객체를 표시 객체의 로컬 좌표에서 Stage 전역 좌표로 변환합니다. | DisplayObject | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
지정된 자식 DisplayObject 인스턴스를 DisplayObjectContainer 인스턴스의 자식 목록에서 제거합니다. | DisplayObjectContainer | ||
DisplayObjectContainer 자식 목록에서 지정된 인덱스 위치에 있는 자식 DisplayObject를 제거합니다. | DisplayObjectContainer | ||
모든 자식 DisplayObject 인스턴스를 DisplayObjectContainer 인스턴스의 자식 목록에서 제거합니다. | DisplayObjectContainer | ||
EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | ||
가상 키보드를 표시합니다. | InteractiveObject | ||
표시 객체 컨테이너에서 기존 자식의 위치를 변경합니다. | DisplayObjectContainer | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
지정된 Sprite를 드래그할 수 있도록 합니다. | Sprite | ||
터치 지원 장치에서 지정된 스프라이트를 드래그할 수 있도록 합니다. | Sprite | ||
이 객체가 루트로 지정된 모든 MovieClip의 타임라인 실행을 재귀적으로 중지합니다. | DisplayObjectContainer | ||
startDrag() 메서드를 종료합니다. | Sprite | ||
startTouchDrag() 메서드를 종료합니다. 터치 지원 장치에서 사용합니다. | Sprite | ||
지정된 두 개의 자식 객체의 z 순서(전후 순서)를 맞바꿉니다. | DisplayObjectContainer | ||
자식 목록에서 지정된 두 곳의 인덱스 위치에 있는 자식 객체의 z 순서(전후 순서)를 맞바꿉니다. | DisplayObjectContainer | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
buttonMode | 속성 |
buttonMode:Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0, Flash Lite 4 |
이 Sprite의 버튼 모드를 지정합니다. true
이면 이 스프라이트가 버튼처럼 동작합니다. 즉, 포인터가 스프라이트 위를 지나갈 때 손 모양 커서가 표시되고, 스프라이트에 포커스가 있을 때 Enter 또는 스페이스 키를 누르면 click
이벤트를 수신할 수 있습니다. useHandCursor
속성을 false
로 설정하면 손 모양 커서가 표시되지 않고 포인터가 표시됩니다.
SimpleButton 클래스를 사용하여 버튼을 만드는 것이 더 낫지만, buttonMode
속성을 사용하여 Sprite에 버튼과 유사한 기능을 부여할 수 있습니다. 탭 순서에 Sprite를 포함시키려면 tabEnabled
속성(InteractiveObject 클래스에서 상속된 속성으로, 기본값은 false
)을 true
로 설정합니다. 또한 스프라이트의 자식에서 사용자 입력을 사용하도록 설정할지 여부를 고려합니다. 이벤트 흐름에 혼동을 유발하기 때문에 대부분의 버튼에서는 자식 객체에 대해 사용자 입력 상호 작용을 사용하도록 설정하지 않습니다. 모든 2자식 객체에 대해 사용자 입력 상호 작용을 사용하지 않도록 설정하려면 mouseChildren
속성(DisplayObjectContainer 클래스에서 상속됨)을 false
로 설정해야 합니다.
buttonMode
속성을 MovieClip 클래스(Sprite 클래스의 하위 클래스)와 함께 사용할 경우, 버튼에 몇 가지 기능이 추가될 수 있습니다. _up, _over 및 _down으로 명명된 프레임을 추가할 경우, Flash Player는 자동 상태 변경(이전 버전의 ActionScript에서 동영상 클립을 버튼으로 사용할 수 있도록 제공된 것과 비슷한 기능)을 제공합니다. 이 자동 상태 변경은 Sprite에서 사용할 수 없습니다. 타임라인이 없으므로 명명할 프레임도 없기 때문입니다.
구현
public function get buttonMode():Boolean
public function set buttonMode(value:Boolean):void
관련 API 요소
예제 ( 예제 사용 방법 )
buttonMode
속성을 true
로 설정하고 다른 Sprite에는 이 속성을 false
로 설정합니다. 응용 프로그램을 컴파일하여 실행하면 두 Sprite 모두 마우스 이벤트에 응답하지만 buttonMode
가 true
로 설정된 Sprite만 손 모양 커서를 사용하고 탭 순서에 포함됩니다.
import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.buttonMode = true; circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0xFFCC00); circle2.graphics.drawCircle(120, 40, 40); circle2.buttonMode = false; circle2.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace ("Click!"); } addChild(circle1); addChild(circle2);
dropTarget | 속성 |
dropTarget:DisplayObject
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0, Flash Lite 4 |
드래그하는 Sprite 아래의 표시 객체 또는 Sprite를 드래그해 놓은 표시 객체를 지정합니다.
구현
public function get dropTarget():DisplayObject
관련 API 요소
예제 ( 예제 사용 방법 )
circle
Sprite 한 개와 target
Sprite 두 개를 만듭니다. startDrag()
메서드는 circle
Sprite 위에 커서를 놓고 마우스 버튼을 누를 때 호출되고, stopDrag()
메서드는 마우스 버튼을 놓을 때 호출됩니다. 이렇게 하면 Sprite를 드래그할 수 있게 됩니다. 마우스 버튼을 놓으면 mouseRelease()
메서드가 호출되고, 이 메서드는 dropTarget
객체, 즉 사용자가 circle
스프라이트를 드래그한 대상 객체의 name
을 추적합니다.
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); }
graphics | 속성 |
graphics:Graphics
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0, Flash Lite 4 |
벡터 드로잉 명령을 내릴 수 있는 이 Sprite에 속한 Graphics 객체를 지정합니다.
구현
public function get graphics():Graphics
예제 ( 예제 사용 방법 )
circle
Sprite를 만들고 그 graphics
속성을 사용하여 노란색(0xFFCC00)으로 채운 원을 그립니다.
import flash.display.Sprite; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(40, 40, 40); addChild(circle);
hitArea | 속성 |
hitArea:Sprite
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Sprite의 히트 영역으로 사용할 다른 Sprite를 지정합니다. hitArea
속성이 존재하지 않거나 값이 null
또는 undefined
이면 Sprite 자체가 히트 영역으로 사용됩니다. hitArea
속성 값은 Sprite 객체에 대한 참조가 될 수 있습니다.
hitArea
속성은 언제라도 변경할 수 있으며 수정된 Sprite는 즉시 새 히트 영역 비헤이비어를 사용합니다. 히트 영역으로 지정된 Sprite는 표시될 필요가 없으며, 표시는 되지 않더라도 그래픽 모양은 여전히 히트 영역으로 감지됩니다.
참고: 히트 영역으로 지정된 Sprite의 mouseEnabled
속성을 false
로 설정해야 합니다. 그렇지 않으면 히트 영역으로 지정된 스프라이트가 스프라이트 버튼 대신에 사용자 입력 이벤트를 수신하므로 스프라이트 버튼이 작동하지 않을 수 있습니다.
구현
public function get hitArea():Sprite
public function set hitArea(value:Sprite):void
예제 ( 예제 사용 방법 )
circle
Sprite 한 개와 square
Sprite 한 개를 만듭니다. square
Sprite는 circle
Sprite를 위한 hitArea
입니다. 따라서 사용자가 square
Sprite를 클릭하면 circle
Sprite는 click
이벤트를 전달합니다.
import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var square:Sprite = new Sprite(); square.graphics.beginFill(0xCCFF00); square.graphics.drawRect(200, 0, 100, 100); circle.hitArea = square; square.mouseEnabled = false; circle.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void{ trace(event.target == circle); // true trace(event.target == square); // false } addChild(circle); addChild(square);
soundTransform | 속성 |
soundTransform:flash.media:SoundTransform
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0, Flash Lite 4 |
이 Sprite 내에서 사운드를 제어합니다.
참고: Adobe AIR에서 이 속성은 HTMLControl 객체의 HTML 내용에 영향을 주지 않습니다.
구현
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
관련 API 요소
예제 ( 예제 사용 방법 )
container
라는 이름의 Sprite를 만들고 Loader 객체를 그 자식 목록에 추가합니다. Loader 객체는 SWF 파일을 로드합니다. 사용자가 tf
텍스트 필드 true
의 링크를 클릭하면 mute()
메서드가 container
Sprite의 soundTransform
속성에 있는 volume
속성을 설정합니다.
import flash.display.Sprite; import flash.display.Loader; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.net.URLRequest; import flash.text.TextField; import flash.media.SoundTransform; var container:Sprite = new Sprite(); addChild(container); var ldr:Loader = new Loader; var urlReq:URLRequest = new URLRequest("SoundPlayer.swf"); ldr.load(urlReq); container.addChild(ldr); ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound); var tf:TextField = new TextField(); tf.htmlText = "<a href = 'event:Mute'>Mute / Unmute</a>"; addChild(tf); var mySoundTransform:SoundTransform = new SoundTransform(); mySoundTransform.volume = 1; tf.addEventListener(MouseEvent.CLICK, mute); function mute(event:MouseEvent):void { if (mySoundTransform.volume == 0) { mySoundTransform.volume = 1; } else { mySoundTransform.volume = 0; } container.soundTransform = mySoundTransform; } function urlNotFound(event:IOErrorEvent):void { trace("The URL was not found."); }
useHandCursor | 속성 |
useHandCursor:Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0 |
buttonMode
속성이 true
로 설정된 스프라이트 위로 포인터를 움직일 때 손 모양(손 모양 커서)을 표시할지 여부를 나타내는 부울 값입니다. useHandCursor
속성의 기본값은 true
입니다. useHandCursor
가 true
로 설정된 경우 포인터를 버튼 스프라이트 위로 움직이면 버튼에 사용된 손 모양이 나타납니다. useHandCursor
가 false
인 경우 대신 화살표 모양 커서가 사용됩니다.
useHandCursor
속성은 언제든지 변경이 가능하며 변경된 Sprite에는 즉시 새 커서 모양이 적용됩니다.
참고: Flex 또는 Flash Builder에서 sprite에 자식 sprite가 있을 경우 mouseChildren
속성을 false
로 설정할 수 있습니다. 예를 들어 Flex <mx:Label> 컨트롤 위에 손 모양 커서를 표시하려면 useHandCursor
및 buttonMode
속성을 true
로 설정하고 mouseChildren
속성을 false
로 설정합니다.
구현
public function get useHandCursor():Boolean
public function set useHandCursor(value:Boolean):void
관련 API 요소
예제 ( 예제 사용 방법 )
buttonMode
속성은 두 Sprite 모두 true
로 설정하지만 useHandCursor
속성은 한 Sprite만 true
로 설정하고 다른 Sprite는 false
로 설정합니다. 응용 프로그램을 컴파일하여 실행하면 두 Sprite 모두 버튼으로 응답하고 탭 순서에도 포함되지만 useHandCursor
가 true
로 설정된 Sprite만 손 모양 커서를 사용합니다.
import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.buttonMode = true; circle1.useHandCursor = true; circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0xFFCC00); circle2.graphics.drawCircle(120, 40, 40); circle2.buttonMode = true; circle2.useHandCursor = false; circle2.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace ("Click!"); } addChild(circle1); addChild(circle2);
Sprite | () | 생성자 |
public function Sprite()
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0, Flash Lite 4 |
새 Sprite 인스턴스를 만듭니다. Sprite 인스턴스를 만든 다음 DisplayObjectContainer.addChild()
또는 DisplayObjectContainer.addChildAt()
메서드를 호출하여 Sprite를 부모 DisplayObjectContainer에 추가합니다.
startDrag | () | 메서드 |
public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0, Flash Lite 4 |
지정된 Sprite를 드래그할 수 있도록 합니다. Sprite.stopDrag()
메서드 호출을 통해 명확하게 드래그 작업이 중지되거나 다른 Sprite를 드래그할 수 있게 될 때까지 Sprite는 드래그할 수 있는 상태로 있게 됩니다. 한 번에 하나의 Sprite만 드래그할 수 있습니다.
3차원 표시 객체가 포인터를 따라 이동하고 Sprite.startDrag()
는 표시 객체에서 정의한 3차원 평면 내에서 객체를 움직입니다. 또는, 표시 객체가 2차원 객체이고 3차원 객체의 자식인 경우 2차원 객체는 3차원 부모 객체에서 정의한 3차원 평면 내에서 이동합니다.
매개 변수
lockCenter:Boolean (default = false ) — 드래그 가능한 스프라이트가 포인터 위치의 가운데에 잠기는지(true ) 아니면 사용자가 스프라이트를 처음으로 클릭한 위치에 잠기는지(false )를 지정합니다.
| |
bounds:Rectangle (default = null ) — Sprite의 제한 영역을 지정하는 Sprite의 부모의 좌표와 관련된 값입니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
circle
Sprite 한 개와 target
Sprite 두 개를 만듭니다. startDrag()
메서드는 circle
Sprite 위에 커서를 놓고 마우스 버튼을 누를 때 호출되고, stopDrag()
메서드는 마우스 버튼을 놓을 때 호출됩니다. 이렇게 하면 Sprite를 드래그할 수 있게 됩니다. 마우스 버튼을 놓으면 mouseRelease()
메서드가 호출되고, 이 메서드는 dropTarget
객체, 즉 사용자가 circle
스프라이트를 드래그한 대상 객체의 name
을 추적합니다.
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); }
startTouchDrag | () | 메서드 |
public function startTouchDrag(touchPointID:int, lockCenter:Boolean = false, bounds:Rectangle = null):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10.1, AIR 2, Flash Lite 4 |
터치 지원 장치에서 지정된 스프라이트를 드래그할 수 있도록 합니다. Sprite.stopTouchDrag()
메서드 호출을 통해 명확하게 드래그 작업이 중지되거나 다른 Sprite를 드래그할 수 있게 될 때까지 Sprite는 드래그할 수 있는 상태로 있게 됩니다. 한 번에 하나의 Sprite만 드래그할 수 있습니다.
3차원 표시 객체가 포인터를 따라 이동하고 Sprite.startTouchDrag()
는 표시 객체에서 정의한 3차원 평면 내에서 객체를 움직입니다. 또는, 표시 객체가 2차원 객체이고 3차원 객체의 자식인 경우 2차원 객체는 3차원 부모 객체에서 정의한 3차원 평면 내에서 이동합니다.
매개 변수
touchPointID:int — 터치 지점에 지정되는 정수입니다.
| |
lockCenter:Boolean (default = false ) — 드래그 가능한 스프라이트가 포인터 위치의 가운데에 잠기는지(true ) 아니면 사용자가 스프라이트를 처음으로 클릭한 위치에 잠기는지(false )를 지정합니다.
| |
bounds:Rectangle (default = null ) — Sprite의 제한 영역을 지정하는 Sprite의 부모의 좌표와 관련된 값입니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); }
stopDrag | () | 메서드 |
public function stopDrag():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 9, AIR 1.0, Flash Lite 4 |
startDrag()
메서드를 종료합니다. startDrag()
메서드로 드래그할 수 있게 된 Sprite는 stopDrag()
메서드가 추가되거나 다른 Sprite를 드래그할 수 있게 될 때까지 드래그할 수 있는 상태로 있게 됩니다. 한 번에 하나의 Sprite만 드래그할 수 있습니다.
관련 API 요소
예제 ( 예제 사용 방법 )
circle
Sprite 한 개와 target
Sprite 두 개를 만듭니다. startDrag()
메서드는 circle
Sprite 위에 커서를 놓고 마우스 버튼을 누를 때 호출되고, stopDrag()
메서드는 마우스 버튼을 놓을 때 호출됩니다. 이렇게 하면 Sprite를 드래그할 수 있게 됩니다. 마우스 버튼을 놓으면 mouseRelease()
메서드가 호출되고, 이 메서드는 dropTarget
객체, 즉 사용자가 circle
스프라이트를 드래그한 대상 객체의 name
을 추적합니다.
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); }
stopTouchDrag | () | 메서드 |
public function stopTouchDrag(touchPointID:int):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10.1, AIR 2, Flash Lite 4 |
startTouchDrag()
메서드를 종료합니다. 터치 지원 장치에서 사용합니다. startTouchDrag()
메서드로 드래그할 수 있게 된 Sprite는 stopTouchDrag()
메서드가 추가되거나 다른 Sprite를 드래그할 수 있게 될 때까지 드래그할 수 있는 상태로 있게 됩니다. 한 번에 하나의 Sprite만 드래그할 수 있습니다.
매개 변수
touchPointID:int — startTouchDrag 메서드에서 접점에 지정되는 정수입니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); }
- 나중에 사각형을 그릴 때 사용하기 위해
size
속성(100 x 100픽셀) 및 배경색(주황색)을 선언합니다. - 그런 다음 생성자가 새
child
Sprite 객체를 만들고 이를 사용하여 두 개의 이벤트 리스너와 이와 연관된 메서드인mouseDownHandler()
및mouseUpHandler()
를 추가합니다. child
Sprite 객체가draw()
메서드로 전달되며, 이 메서드가 주황색 사각형을 그립니다.- 그런 다음
addChild()
메서드 호출을 통해 자식이 표시 목록에 배치됩니다. - 이벤트 리스너는 다음과 같이 작동합니다.
mouseDownHandler()
: 사용자가 Sprite 객체를 클릭하면, 이 메서드는 마우스 이동을 처리하는 mouseMove 이벤트 리스너mouseMoveHandler()
메서드를 추가합니다. 그런 다음 Sprite 객체를 드래그할 수 있도록startDrag()
메서드가 호출됩니다.mouseUpHandler()
: 마우스 버튼을 놓으면 mouseMove 이벤트 리스너가 제거되고stopDrag()
메서드가 호출되면서 주황색 사각형이 제자리에 고정됩니다.mouseMoveHandler
: 마우스 왼쪽 버튼을 계속 누르고 있으면 이 메서드는 플레이어가 주황색 사각형을 계속 다시 그리도록 지시합니다.
참고:각각의 이벤트 리스너 메서드는 로컬 sprite
변수를 선언합니다. 이 변수는 이벤트의 target
속성에 할당됩니다.
package { import flash.display.Sprite; import flash.events.*; public class SpriteExample extends Sprite { private var size:uint = 100; private var bgColor:uint = 0xFFCC00; public function SpriteExample() { var child:Sprite = new Sprite(); child.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); child.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); draw(child); addChild(child); } private function mouseDownHandler(event:MouseEvent):void { trace("mouseDownHandler"); var sprite:Sprite = Sprite(event.target); sprite.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.startDrag(); } private function mouseUpHandler(event:MouseEvent):void { trace("mouseUpHandler"); var sprite:Sprite = Sprite(event.target); sprite.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.stopDrag(); } private function mouseMoveHandler(event:MouseEvent):void { trace("mouseMoveHandler"); event.updateAfterEvent(); } private function draw(sprite:Sprite):void { sprite.graphics.beginFill(bgColor); sprite.graphics.drawRect(0, 0, size, size); sprite.graphics.endFill(); } } }
Tue Jun 12 2018, 03:17 PM Z