This page was saved using jaction on 2006-09-04 8:34:05.
Address: http://flexdocs.kr/docs/flex2/langref/flash/display/Sprite.html
Title: flash.display.Sprite (Flex™ 2 레퍼런스 가이드)  •  Size: 110754
Packageflash.display
Classpublic class Sprite
InheritanceSprite Inheritance DisplayObjectContainer Inheritance InteractiveObject Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object
SubclassesDownloadProgressBar , FlexSprite , MovieClip , Preloader

Sprite 클래스는, 표시 리스트의 기본적 요소입니다. 즉, 그래픽을 표시할 수 있어 아이를 가질 수도 있는 표시 리스트 노드입니다.

Sprite object는 무비 클립과 닮아 있습니다만, 타임 라인을 가지지 않습니다. Sprite 는, 타임 라인을 필요로 하지 않는 object에 적절한 기본 클래스입니다. 예를 들어, Sprite 는, 통상은 타임 라인을 사용하지 않는 유저 인터페이스 (UI) 컴퍼넌트의 논리 기본 클래스가 됩니다.

Sprite 클래스는, ActionScript 3.0 에서의 새로운 클래스입니다. 이것은 MovieClip 클래스의 대체 기능을 제공합니다. 또, 이전의 릴리스의 ActionScript 의 모든 기능을 유지하고 있으므로 후방 호환성이 있습니다.

View the examples

See also

표시 아키텍쳐에 대해


Public property
 property정의
 InheritedaccessibilityProperties : AccessibilityProperties
이 표시 object의 현재의 accessibility options입니다.
DisplayObject
 Inheritedalpha : Number
지정된 object의 알파 투명도 값을 나타냅니다.
DisplayObject
 InheritedblendMode : String
사용하는 브렌드 모드를 지정하는 BlendMode 클래스의 값입니다.
DisplayObject
  buttonMode : Boolean
이 스프라이트의 버튼 모드를 지정합니다.
Sprite
 InheritedcacheAsBitmap : Boolean
true 로 설정되어 있는 경우, 표시 object의 내부 비트 맵 표현이 Flash Player 에 캐쉬됩니다.
DisplayObject
 Inheritedconstructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor    함수에의 참조입니다.
Object
 InheritedcontextMenu : ContextMenu
이 object에 관련지을 수 있었던 context menu를 지정합니다.
InteractiveObject
 InheriteddoubleClickEnabled : Boolean
object가 doubleClick 이벤트를 받을지 어떨지를 지정합니다.
InteractiveObject
  dropTarget : DisplayObject
[read-only] 스프라이트의 드러그처 또는 스프라이트가 드롭 된 앞 display object를 지정합니다.
Sprite
 Inheritedfilters : Array
표시 object에 현재 관련지을 수 있고 있는 각 필터 object가 포함되고 있는 인덱스 첨부의 배열입니다.
DisplayObject
 InheritedfocusRect : Object
이 object가 포커스 구형을 표시할지 어떨지를 지정합니다.
InteractiveObject
  graphics : Graphics
[read-only] 벡터의 묘화 커멘드가 발생하는, 이 스프라이트에 속하는 Graphics object를 지정합니다.
Sprite
 Inheritedheight : Number
표시 object의 높이를 나타냅니다 (픽셀 단위).
DisplayObject
  hitArea : Sprite
스프라이트의 히트 area가 되는 다른 스프라이트를 지정합니다.
Sprite
 InheritedloaderInfo : LoaderInfo
이 표시 object가 속하는 파일의 로드 정보를 포함한 LoaderInfo object를 돌려줍니다.
DisplayObject
 Inheritedmask : DisplayObject
호출원 display object는, 지정된 mask object에 의해 마스크 됩니다.
DisplayObject
 InheritedmouseChildren : Boolean
object의 아이에 대해서 마우스가 유효한가 어떤가를 조사합니다.
DisplayObjectContainer
 InheritedmouseEnabled : Boolean
이 object가 마우스 메세지를 받아들일지 어떨지를 지정합니다.
InteractiveObject
 InheritedmouseX : Number
마우스 위치의 x 좌표를 나타냅니다 (픽셀 단위).
DisplayObject
 InheritedmouseY : Number
마우스 위치의 y 좌표를 나타냅니다 (픽셀 단위).
DisplayObject
 Inheritedname : String
DisplayObject 의 인스턴스명을 나타냅니다.
DisplayObject
 InheritednumChildren : int
이 object의 아이의 수를 돌려줍니다.
DisplayObjectContainer
 InheritedopaqueBackground : Object
표시 object가 특정의 배경색으로 불투명한지 어떤지를 지정합니다.
DisplayObject
 Inheritedparent : DisplayObjectContainer
이 표시 object를 포함한 DisplayObjectContainer object를 나타냅니다.
DisplayObject
 Inheritedprototype : Object
[static] 클래스 또는 함수 object의 prototype object에의 참조입니다.
Object
 Inheritedroot : DisplayObject
로드 된 SWF 파일내 display object의 경우,root property는 그 SWF 파일이 나타내는 표시 리스트의 트리 구조 부분의 맨 위에 있는 표시 object가 됩니다.
DisplayObject
 Inheritedrotation : Number
DisplayObject 인스턴스의 원래의 위치로부터의 회전각을 번단위로 가리킵니다.
DisplayObject
 Inheritedscale9Grid : Rectangle
현재 유효한 확대 / 축소 격자입니다.
DisplayObject
 InheritedscaleX : Number
기준점으로부터 적용되는 object의 수평 스케일 (percentage)을 나타냅니다.
DisplayObject
 InheritedscaleY : Number
object의 기준점으로부터 적용되는 object의 수직 스케일 (percentage)을 나타냅니다.
DisplayObject
 InheritedscrollRect : Rectangle
표시 object의 스크롤 구형의 경계.
DisplayObject
  soundTransform : SoundTransform
이 스프라이트내의 사운드를 제어합니다.
Sprite
 Inheritedstage : Stage
표시 object의 스테이지.
DisplayObject
 InheritedtabChildren : Boolean
object의 아이에 대해서 탭이 유효한가 어떤가를 조사합니다.
DisplayObjectContainer
 InheritedtabEnabled : Boolean
이 object가 탭 순서에 포함될지 어떨지를 지정합니다.
InteractiveObject
 InheritedtabIndex : int
SWF 파일내의 object의 탭 순서를 지정합니다.
InteractiveObject
 InheritedtextSnapshot : TextSnapshot
이 DisplayObjectContainer 인스턴스의 TextSnapshot object를 돌려줍니다.
DisplayObjectContainer
 Inheritedtransform : Transform
표시 object의 매트릭스, 칼라 변환, 픽셀 경계에 관계하는 property를 가지는 object입니다.
DisplayObject
  useHandCursor : Boolean
buttonMode property가 true 로 설정된 스프라이트상에 마우스가 이동했을 때에, 가리켜 핸드 포인터 (핸드 커서)를 표시할지 어떨지를 나타내는 불리언 값입니다.
Sprite
 Inheritedvisible : Boolean
표시 object가 가시인가 어떤가를 나타냅니다.
DisplayObject
 Inheritedwidth : Number
표시 object의 폭을 나타냅니다 (픽셀 단위).
DisplayObject
 Inheritedx : Number
친 DisplayObjectContainer 의 로컬 좌표를 기준으로 한 DisplayObject 인스턴스의 x 좌표를 나타냅니다.
DisplayObject
 Inheritedy : Number
친 DisplayObjectContainer 의 로컬 좌표를 기준으로 한 DisplayObject 인스턴스의 y 좌표를 나타냅니다.
DisplayObject
Public Methods
 Methods정의
  Sprite ()
새로운 Sprite 인스턴스를 작성합니다.
Sprite
 InheritedaddChild (child:DisplayObject ):DisplayObject
이 DisplayObjectContainer 인스턴스에 child DisplayObject 인스턴스를 추가합니다.
DisplayObjectContainer
 InheritedaddChildAt (child:DisplayObject , index:int ):DisplayObject
이 DisplayObjectContainer 인스턴스에 child DisplayObject 인스턴스를 추가합니다.
DisplayObjectContainer
 InheritedaddEventListener (type:String , listener:Function , useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
event listener objects를 EventDispatcher object에 등록해, listener가 이벤트의 통지를 받도록(듯이) 합니다.
EventDispatcher
 InheritedareInaccessibleObjectsUnderPoint (point:Point ):Boolean
특정의 point 포인트를 지정해 호출한 DisplayObjectContainer.getObjectsUnderPoint() Methods로부터 돌려주어진 리스트에, 시큐러티상의 제약을 위해서(때문에) 생략 되는 표시 object가 있을지 어떨지를 나타냅니다.
DisplayObjectContainer
 Inheritedcontains (child:DisplayObject ):Boolean
지정된 표시 object가, DisplayObjectContainer 인스턴스의 아이인지, 인스턴스 자체인지를 지정합니다.
DisplayObjectContainer
 InheriteddispatchEvent (event:Event ):Boolean
이벤트를 event 플로우(flow)에 dispatch합니다.
EventDispatcher
 InheritedgetBounds (targetCoordinateSpace:DisplayObject ):Rectangle
targetCoordinateSpace object의 좌표계를 기준으로 해, 표시 object의 area를 정의하는 구형을 돌려줍니다.
DisplayObject
 InheritedgetChildAt (index:int ):DisplayObject
지정의 인덱스 위치에 있는 child 표시 object 인스턴스를 돌려줍니다.
DisplayObjectContainer
 InheritedgetChildByName (name:String ):DisplayObject
지정된 이름에 일치하는 child 표시 object를 돌려줍니다.
DisplayObjectContainer
 InheritedgetChildIndex (child:DisplayObject ):int
child DisplayObject 인스턴스의 인덱스 위치를 돌려줍니다.
DisplayObjectContainer
 InheritedgetObjectsUnderPoint (point:Point ):Array
지정된 포인트아래에 있어, 이 DisplayObjectContainer 인스턴스의 child 또는 손자등인 object의 배열을 돌려줍니다.
DisplayObjectContainer
 InheritedgetRect (targetCoordinateSpace:DisplayObject ):Rectangle
셰이프상의 선을 제외해,targetCoordinateSpace Parameters에 의해 정의된 좌표계에 근거해, 표시 object의 경계를 정의하는 구형을 돌려줍니다.
DisplayObject
 InheritedglobalToLocal (point:Point ):Point
point object를 스테이지 (글로벌) 좌표로부터 표시 object의 (로컬) 좌표로 변환합니다.
DisplayObject
 InheritedhasEventListener (type:String ):Boolean
EventDispatcher object에, 특정의 event 타입에 대해서 등록된 listener가 있을지 어떨지를 확인합니다.
EventDispatcher
 InheritedhasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
Object
 InheritedhitTestObject (obj:DisplayObject ):Boolean
표시 object를 평가해,obj 표시 object와 중복 또는 교차할지 어떨지를 조사합니다.
DisplayObject
 InheritedhitTestPoint (x:Number , y:Number , shapeFlag:Boolean = false):Boolean
표시 object를 평가해,xy Parameters로 지정된 포인트와 중복 또는 교차할지 어떨지를 조사합니다.
DisplayObject
 InheritedisPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
Object
 InheritedlocalToGlobal (point:Point ):Point
point object를 표시 object의 (로컬) 좌표로부터 스테이지 (글로벌) 좌표로 변환합니다.
DisplayObject
 InheritedpropertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
Object
 InheritedremoveChild (child:DisplayObject ):DisplayObject
DisplayObjectContainer 인스턴스의 child 리스트로부터 지정의 child DisplayObject 인스턴스를 삭제합니다.
DisplayObjectContainer
 InheritedremoveChildAt (index:int ):DisplayObject
DisplayObjectContainer 의 child 리스트의 지정된 index 위치로부터 child DisplayObject 를 삭제합니다.
DisplayObjectContainer
 InheritedremoveEventListener (type:String , listener:Function , useCapture:Boolean = false):void
EventDispatcher object로부터 listener를 삭제합니다.
EventDispatcher
 InheritedsetChildIndex (child:DisplayObject , index:int ):void
표시 object 컨테이너의 기존의 아이의 위치를 변경합니다.
DisplayObjectContainer
 InheritedsetPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
Object
  startDrag (lockCenter:Boolean = false, bounds:Rectangle = null):void
지정된 스프라이트를 유저가 드러그 할 수 있도록(듯이) 합니다.
Sprite
  stopDrag ():void
startDrag() Methods를 종료합니다.
Sprite
 InheritedswapChildren (child1:DisplayObject , child2:DisplayObject ):void
지정된 2 살의 child object의 z 순서 (겹침순서)를 바꿔 넣습니다.
DisplayObjectContainer
 InheritedswapChildrenAt (index1:int , index2:int ):void
아이 리스트내의 지정된 인덱스 위치에 해당하는 2 살의 child object의 z 순서 (겹침순서)를 바꿔 넣습니다.
DisplayObjectContainer
 InheritedtoString ():String
지정된 object의 string 표현을 돌려줍니다.
Object
 InheritedvalueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
Object
 InheritedwillTrigger (type:String ):Boolean
지정된 event 타입에 대해, 이 EventDispatcher object 또는 그 조상에게 event listener가 등록되어 있는지 어떤지를 확인합니다.
EventDispatcher
이벤트
 이벤트일람정의
 Inheritedactivate Flash Player 가 operating system의 포커스를 취득해, 액티브하게 되었을 때에 dispatch됩니다. DisplayObject
 Inheritedadded 표시 object가 표시 리스트에 추가되었을 때에 dispatch됩니다. DisplayObject
 Inheritedclick 유저가 같은 InteractiveObject 상에서 pointing device의 메인 버튼을 눌러 떼어 놓으면 dispatch됩니다. InteractiveObject
 Inheriteddeactivate Flash Player 가 operating system의 포커스를 잃어, 비액티브하게 되었을 때에 dispatch됩니다. DisplayObject
 InheriteddoubleClick object의 doubleClickEnabled 플래그가 true 로 설정되어 있는 경우에는, 유저가 같은 InteractiveObject 상에서 pointing device의 메인 버튼을 2 회 계속해 재빠르게 눌러 떼어 놓으면 dispatch됩니다. InteractiveObject
 InheritedenterFrame 재생 헤드가 새로운 프레임에 들어갈 때 dispatch됩니다. DisplayObject
 InheritedfocusIn 표시 object가 포커스를 취득한 후에dispatch됩니다. InteractiveObject
 InheritedfocusOut 표시 object가 포커스를 잃은 후에dispatch됩니다. InteractiveObject
 InheritedkeyDown 유저가 키를 눌렀을 때에 dispatch됩니다. InteractiveObject
 InheritedkeyFocusChange 유저가 키보드 조작에 의해 포커스를 변경하려고 하면 dispatch됩니다. InteractiveObject
 InheritedkeyUp 유저가 키를 떼어 놓았을 때에 dispatch됩니다. InteractiveObject
 InheritedmouseDown Flash Player 윈도우의 InteractiveObject 인스턴스 위에서, 유저가 pointing device의 버튼을 눌렀을 때에 dispatch됩니다. InteractiveObject
 InheritedmouseFocusChange 유저가 pointing device로 포커스를 변경하려고 하면 dispatch됩니다. InteractiveObject
 InheritedmouseMove InteractiveObject 위에서, 유저가 pointing device를 움직였을 때에 dispatch됩니다. InteractiveObject
 InheritedmouseOut 유저가 InteractiveObject 인스턴스로부터 pointing device를 떼어 놓았을 때에 dispatch됩니다. InteractiveObject
 InheritedmouseOver 유저가 Flash Player 윈도우의 InteractiveObject 인스턴스에, pointing device를 맞추었을 때에 dispatch됩니다. InteractiveObject
 InheritedmouseUp 유저가 Flash Player 윈도우의 InteractiveObject 인스턴스 위에서 pointing device의 버튼을 떼어 놓았을 때에 dispatch됩니다. InteractiveObject
 InheritedmouseWheel Flash Player 윈도우의 InteractiveObject 인스턴스 위에서, 마우스 휠을 회전시켰을 때에 dispatch됩니다. InteractiveObject
 Inheritedremoved 표시 object가 표시 리스트로부터 삭제 되려고 하고 있을 때 dispatch됩니다. DisplayObject
 Inheritedrender 표시 리스트가 갱신 및 렌더링 되려고 하고 있을 때 dispatch됩니다. DisplayObject
 InheritedrollOut 유저가 InteractiveObject 인스턴스로부터 pointing device를 떼어 놓았을 때에 dispatch됩니다. InteractiveObject
 InheritedrollOver 유저가 InteractiveObject 인스턴스에 pointing device를 맞추었을 때에 dispatch됩니다. InteractiveObject
 InheritedtabChildrenChange object의 tabChildren 플래그의 값이 변경되었을 때에 dispatch됩니다. InteractiveObject
 InheritedtabEnabledChange object의 tabEnabled 플래그가 변경되었을 때에 dispatch됩니다. InteractiveObject
 InheritedtabIndexChange object의 tabIndex property의 값이 변경되었을 때에 dispatch됩니다. InteractiveObject
property의 상세
buttonModeproperty
buttonMode:Boolean   [read-write]

이 스프라이트의 버튼 모드를 지정합니다. true 의 경우, 이 스프라이트는 버튼으로서 동작합니다. 이 경우, 이 스프라이트는, 마우스가 이 스프라이트상을 지나면 핸드 커서의 표시를 방아쇠 해, 이 스프라이트에 포커스가 있을 때 Enter 키 또는 Space 키가 밀리면 click 이벤트를 받을 수가 있습니다. useHandCursor property를 false 로 설정하는 것으로써, 핸드 커서의 표시를 억제할 수가 있습니다. 이 경우는 포인터가 표시됩니다.

SimpleButton 클래스를 사용해 버튼을 작성하는 (분)편이 바람직한 Implements입니다만,buttonMode property를 사용하는 것으로써, 스프라이트에 버튼을 닮은 기능을 갖게할 수가 있습니다. 탭 순서에 스프라이트를 짜넣으려면 ,tabEnabled property (InteractiveObject 클래스로부터 Inheritance되고 디폴트는 false)를 true 로 설정합니다. 게다가 스프라이트의 아이를 마우스 대응으로 할지 어떨지도 검토해 주세요. event 플로우(flow)가 혼란하기 위해(때문에), 대부분의 버튼에서는 그 child object에 대한 마우스 조작을 유효하게 하지 않습니다. 모든 child object에 대한 마우스 조작을 무효로 하려면 ,mouseChildren property (DisplayObjectContainer 클래스로부터 Inheritance)를 false 로 설정합니다.

MovieClip 클래스 (Sprite 클래스의 서브 클래스)에서 buttonMode property를 사용하면, 버튼에 몇개의 기능을 추가할 수가 있습니다. _up, _over, 및 _down 의 label가 붙은 프레임을 짜넣으면, 자동 상태 변화가 됩니다 (이전의 버젼의 ActionScript 로 제공되고 있던, 버튼으로서 사용되는 무비 클립용의 기능과 닮은 기능). 이러한 자동 상태 변화는, 스프라이트에서는 사용할 수 없습니다. 스프라이트는 타임 라인을 가지지 않고, 그 때문에 label를 붙이는 프레임이 없기 때문입니다.

Implements
    public function get buttonMode():Boolean
    public function set buttonMode(value:Boolean ):void

See also


Example
다음의 예에서는, 2 개의 스프라이트를 작성해,buttonMode property를, 한편은 true 에, 이제(벌써) 한편은 false 로 설정합니다. 어플리케이션을 컴파일 해 실행하면, 양쪽 모두의 스프라이트와도 마우스 이벤트에 응답합니다만, buttonModetrue 로 설정된 (분)편만이 핸드 커서를 사용해, 탭 순서에 짜넣어집니다.
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);

dropTargetproperty 
dropTarget:DisplayObject   [read-only]

스프라이트의 드러그처 또는 스프라이트가 드롭 된 앞 display object를 지정합니다.

Implements
    public function get dropTarget():DisplayObject

See also


Example
다음의 예에서는,circle 스프라이트와 2 개의 target 스프라이트를 작성합니다. 유저가 커서의 위치를 circle 스프라이트에 맞추어 mouse button를 누르면, 이 스프라이트에 대해서 startDrag() Methods가 불려 가 유저가 mouse button를 떼어 놓으면,stopDrag() Methods가 불려 갑니다. 이것에 의해, 유저는 스프라이트를 드러그 할 수 있게 됩니다. mouse button를 떼어 놓았을 때에 mouseRelease() Methods가 불려 가 이 Methods가 dropTarget object의 name 를 트레이스 합니다. 이 object는, 유저가 circle 스프라이트를 드러그 해 드롭 한 object입니다.
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);
}

graphicsproperty 
graphics:Graphics   [read-only]

벡터의 묘화 커멘드가 발생하는, 이 스프라이트에 속하는 Graphics object를 지정합니다.

Implements
    public function get graphics():Graphics

See also


Example
다음의 예에서는,circle 스프라이트를 작성해, 그 graphics property를 사용해 황색 (0xFFCC00)으로 전부 칠한 엔을 묘화 합니다.
import flash.display.Sprite;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(40, 40, 40);
addChild(circle);

hitAreaproperty 
hitArea:Sprite   [read-write]

스프라이트의 히트 area가 되는 다른 스프라이트를 지정합니다. hitArea property가 존재하지 않는지, 이 property의 값이 null 또는 undefined 의 경우는, 스프라이트 자체가 히트 area로서 사용됩니다. hitArea property의 값은, Sprite object에의 참조인 경우가 있습니다.

hitArea property는 언제라도 변경할 수 있습니다. 이 property를 변경한 스프라이트에는 새로운 히트 area의 동작이 즉시 반영됩니다. 히트 area로서 지정한 스프라이트는 가시 상태일 필요는 없습니다. 불가시 상태여도, 그 그래피컬 셰이프를 히트 area로서 검출할 수 있습니다.

메모: 히트 area로서 지정한 스프라이트의 mouseEnabled property는 false 로 설정할 필요가 있습니다. 그렇게 하지 않으면 히트 area로서 지정한 스프라이트가 스프라이트 버튼은 아니고 마우스 이벤트를 받으므로, 스프라이트 버튼이 기능하지 않을 가능성이 있습니다.

Implements
    public function get hitArea():Sprite
    public function set hitArea(value:Sprite ):void

Example
다음의 예에서는,circle 스프라이트와 square 스프라이트를 작성합니다. square 스프라이트는 circle 스프라이트의 hitArea 입니다. 따라서, 유저가 square 스프라이트를 클릭하면,circle 스프라이트는 click 이벤트를 dispatch합니다.
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);

soundTransformproperty 
soundTransform:SoundTransform   [read-write]

이 스프라이트내의 사운드를 제어합니다.

Implements
    public function get soundTransform():SoundTransform
    public function set soundTransform(value:SoundTransform ):void

See also


Example
다음의 예에서는,container 라는 이름의 스프라이트를 작성해, 그 child 리스트에 Loader object를 추가합니다. Loader object는 SWF 파일을 로드합니다. 유저가 tf 텍스트 필드내의 링크 true 를 클릭하면, mute() Methods는,container 스프라이트의 soundTransform property의 volume property를 설정합니다.
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. "); 
}

useHandCursorproperty 
useHandCursor:Boolean   [read-write]

buttonMode property가 true 로 설정된 스프라이트상에 마우스가 이동했을 때에, 가리켜 핸드 포인터 (핸드 커서)를 표시할지 어떨지를 나타내는 불리언 값입니다. useHandCursor property의 디폴트치는 true 입니다. useHandCursortrue 로 설정하면, 마우스가 버튼 스프라이트상으로 이동했을 때에, 가리켜 상태의 핸드 커서가 표시됩니다. useHandCursorfalse 로 설정하면, 대신에 화살표의 포인터가 사용됩니다.

useHandCursor property는 언제라도 변경할 수 있습니다. 이 property를 변경한 스프라이트에는, 새로운 커서 외관이 즉시 반영됩니다.

메모: 자를 가지는 스프라이트의 경우는,mouseChildren property를 false 로 설정합니다. 예를 들어, Flex <mx:Label> 컨트롤상에 핸드 커서를 표시시키려면 ,useHandCursorbuttonMode property를 true 로 설정해,mouseChildren property를 false 로 설정합니다.

Implements
    public function get useHandCursor():Boolean
    public function set useHandCursor(value:Boolean ):void

See also


Example
다음의 예에서는, 2 개의 스프라이트를 작성해,buttonMode property를 양쪽 모두 true 로 설정합니다만,useHandCursor property를, 한편은 true 에, 이제(벌써) 한편은 false 로 설정합니다. 어플리케이션을 컴파일 해 실행하면, 양쪽 모두의 스프라이트와도 버튼으로서 응답합니다만 (탭 순서에도 짜넣어진다), useHandCursortrue 로 설정된 스프라이트만이 핸드 커서를 사용합니다.
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);

constructor    의 상세
Sprite()constructor   
public 함수 Sprite()

새로운 Sprite 인스턴스를 작성합니다. Sprite 인스턴스의 작성 후,DisplayObjectContainer.addChild() 또는 DisplayObjectContainer.addChildAt() Methods를 호출해, 친 DisplayObjectContainer 에 Sprite 를 추가할 수 있습니다.

Methods의 상세
startDrag()Methods
public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void

지정된 스프라이트를 유저가 드러그 할 수 있도록(듯이) 합니다. Sprite.stopDrag() Methods를 호출해 명시적으로 정지하는지, 다른 스프라이트를 드러그 가능하게 할 때까지 , 스프라이트는 드러그 가능한 그대로가 됩니다. 한 번에 1 개의 스프라이트만 드러그 가능합니다.

Parameters
lockCenter:Boolean (default = false) — 드러그 가능한 스프라이트가, 마우스 위치의 중심으로 락 되는지 (true), 유저가 스프라이트상에서 최초로 클릭한 점에 락 되는지 (false)를 지정합니다.
 
bounds:Rectangle (default = null) — Sprite 의 제한 구형을 지정하는 Sprite 의 부모의 좌표를 기준으로 한 상대치입니다.

See also


Example
다음의 예에서는,circle 스프라이트와 2 개의 target 스프라이트를 작성합니다. 유저가 커서의 위치를 circle 스프라이트에 맞추어 mouse button를 누르면, 이 스프라이트에 대해서 startDrag() Methods가 불려 가 유저가 mouse button를 떼어 놓으면,stopDrag() Methods가 불려 갑니다. 이것에 의해, 유저는 스프라이트를 드러그 할 수 있게 됩니다. mouse button를 떼어 놓았을 때에 mouseRelease() Methods가 불려 가 이 Methods가 dropTarget object의 name 를 트레이스 합니다. 이 object는, 유저가 circle 스프라이트를 드러그 해 드롭 한 object입니다.
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);
}

stopDrag()Methods 
public function stopDrag():void

startDrag() Methods를 종료합니다. startDrag() Methods에 의해 드러그 가능하게 된 스프라이트는,stopDrag() Methods를 실행하는지, 다른 스프라이트가 드러그 가능하게 될 때까지, 드러그 가능인 채입니다. 한 번에 1 개의 스프라이트만 드러그 가능합니다.

See also


Example
다음의 예에서는,circle 스프라이트와 2 개의 target 스프라이트를 작성합니다. 유저가 커서의 위치를 circle 스프라이트에 맞추어 mouse button를 누르면, 이 스프라이트에 대해서 startDrag() Methods가 불려 가 유저가 mouse button를 떼어 놓으면,stopDrag() Methods가 불려 갑니다. 이것에 의해, 유저는 스프라이트를 드러그 할 수 있게 됩니다. mouse button를 떼어 놓았을 때에 mouseRelease() Methods가 불려 가 이 Methods가 dropTarget object의 name 를 트레이스 합니다. 이 object는, 유저가 circle 스프라이트를 드러그 해 드롭 한 object입니다.
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);
}

Examples

다음의 예에서는, SpriteExample 클래스를 사용해, 스테이지에 오렌지색의 사각형을 묘화 해, 유저가 그 사각형을 클릭 또는 드러그 할 때마다 이벤트를 dispatch합니다. 이것을 실시하려면 , 이하의 순서를 실행합니다.
  1. 다음에 사각형의 묘화에 사용하는 size property (100 × 100 픽셀)와 배경색 (오렌지색)을 선언합니다.
  2. 다음에 constructor    이 새로운 child Sprite object를 작성해, 그것을 사용해 2 개의 event listener와 거기에 관련하는 다음의 Methods를 추가합니다. mouseDownHandler()mouseUpHandler().
  3. 다음에 child Sprite object가 draw() Methods에게 건네져, 오렌지색의 사각형이 묘화 됩니다.
  4. 다음에,addChild() Methods의 호출에 의해, 표시 리스트에 Methods를 호출합니다.
  5. event listener는, 이하와 같이 동작합니다.
    • mouseDownHandler(): 유저가 Sprite object를 클릭하면, 이 Methods는 mouseMove event listener의 mouseMoveHandler() Methods를 추가합니다. 이것에 의해, 마우스의 이동이 처리됩니다. 다음에 startDrag() Methods가 불려 갑니다. 이것에 의해, Sprite object의 드러그가 가능하게 됩니다.
    • mouseUpHandler(): mouse button를 떼어 놓으면, mouseMove event listener가 삭제되어stopDrag() Methods가 불려 갑니다. 이것에 의해, 오렌지색의 사각형의 이동이 그 자리소에서 멈춥니다.
    • mouseMoveHandler: 왼쪽 mouse button가 밀리고 있는 동안, 이 Methods는 플레이어에 대해서 계속해 오렌지색의 사각형을 재묘화 하도록 지시합니다.

메모 :event listener의 Methods 각각이, 로컬 변수 sprite (을)를 선언합니다. 이 로컬 변수에 이벤트의 target property를 할당할 수 있습니다.


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();
        }
    }
}






 

코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트

현재의 페이지: http://flexdocs.kr/docs/flex2/langref/flash/display/Sprite.html