パッケージflash.display
public class Sprite
継承Sprite Inheritance DisplayObjectContainer Inheritance InteractiveObject Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object
SubclassesDownloadProgressBar, FlexSprite, MovieClip, Preloader

Sprite クラスは、表示リストの基本的要素です。つまり、グラフィックを表示でき、子を持つこともできる表示リストノードです。

Sprite オブジェクトはムービークリップと似ていますが、タイムラインを持ちません。Sprite は、タイムラインを必要としないオブジェクトに適した基本クラスです。たとえば、Sprite は、通常はタイムラインを使用しないユーザーインターフェイス (UI) コンポーネントの論理基本クラスになります。

Sprite クラスは、ActionScript 3.0 での新しいクラスです。これは MovieClip クラスの代替機能を提供します。また、以前のリリースの ActionScript のすべての機能を維持しているので後方互換性があります。

例の表示

関連項目

表示アーキテクチャについて


パブリックプロパティ
 プロパティ定義
 InheritedaccessibilityProperties : AccessibilityProperties
この表示オブジェクトの現在のアクセシビリティオプションです。
DisplayObject
 Inheritedalpha : Number
指定されたオブジェクトのアルファ透明度値を示します。
DisplayObject
 InheritedblendMode : String
使用するブレンドモードを指定する BlendMode クラスの値です。
DisplayObject
  buttonMode : Boolean
このスプライトのボタンモードを指定します。
Sprite
 InheritedcacheAsBitmap : Boolean
true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash Player にキャッシュされます。
DisplayObject
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 InheritedcontextMenu : ContextMenu
このオブジェクトに関連付けられたコンテキストメニューを指定します。
InteractiveObject
 InheriteddoubleClickEnabled : Boolean
オブジェクトが doubleClick イベントを受け取るかどうかを指定します。
InteractiveObject
  dropTarget : DisplayObject
[read-only] スプライトのドラッグ先またはスプライトがドロップされた先の表示オブジェクトを指定します。
Sprite
 Inheritedfilters : Array
表示オブジェクトに現在関連付けられている各フィルタオブジェクトが格納されているインデックス付きの配列です。
DisplayObject
 InheritedfocusRect : Object
このオブジェクトがフォーカス矩形を表示するかどうかを指定します。
InteractiveObject
  graphics : Graphics
[read-only] ベクターの描画コマンドが発生する、このスプライトに属する Graphics オブジェクトを指定します。
Sprite
 Inheritedheight : Number
表示オブジェクトの高さを示します (ピクセル単位)。
DisplayObject
  hitArea : Sprite
スプライトのヒット領域となる別のスプライトを指定します。
Sprite
 InheritedloaderInfo : LoaderInfo
この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。
DisplayObject
 Inheritedmask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。
DisplayObject
 InheritedmouseChildren : Boolean
オブジェクトの子に対してマウスが有効かどうかを調べます。
DisplayObjectContainer
 InheritedmouseEnabled : Boolean
このオブジェクトがマウスメッセージを受け取るかどうかを指定します。
InteractiveObject
 InheritedmouseX : Number
マウス位置の x 座標を示します (ピクセル単位)。
DisplayObject
 InheritedmouseY : Number
マウス位置の y 座標を示します (ピクセル単位)。
DisplayObject
 Inheritedname : String
DisplayObject のインスタンス名を示します。
DisplayObject
 InheritednumChildren : int
このオブジェクトの子の数を返します。
DisplayObjectContainer
 InheritedopaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。
DisplayObject
 Inheritedparent : DisplayObjectContainer
この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。
DisplayObject
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
 Inheritedroot : DisplayObject
ロードされた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。
DisplayObject
 Inheritedrotation : Number
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。
DisplayObject
 Inheritedscale9Grid : Rectangle
現在有効な拡大 / 縮小グリッドです。
DisplayObject
 InheritedscaleX : Number
基準点から適用されるオブジェクトの水平スケール (percentage) を示します。
DisplayObject
 InheritedscaleY : Number
オブジェクトの基準点から適用されるオブジェクトの垂直スケール (percentage) を示します。
DisplayObject
 InheritedscrollRect : Rectangle
表示オブジェクトのスクロール矩形の境界。
DisplayObject
  soundTransform : SoundTransform
このスプライト内のサウンドを制御します。
Sprite
 Inheritedstage : Stage
表示オブジェクトのステージ。
DisplayObject
 InheritedtabChildren : Boolean
オブジェクトの子に対してタブが有効かどうかを調べます。
DisplayObjectContainer
 InheritedtabEnabled : Boolean
このオブジェクトがタブ順序に含まれるかどうかを指定します。
InteractiveObject
 InheritedtabIndex : int
SWF ファイル内のオブジェクトのタブ順を指定します。
InteractiveObject
 InheritedtextSnapshot : TextSnapshot
この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。
DisplayObjectContainer
 Inheritedtransform : Transform
表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。
DisplayObject
  useHandCursor : Boolean
buttonMode プロパティが true に設定されたスプライト上にマウスが移動したときに、指差しハンドポインタ (ハンドカーソル) を表示するかどうかを示すブール値です。
Sprite
 Inheritedvisible : Boolean
表示オブジェクトが可視かどうかを示します。
DisplayObject
 Inheritedwidth : Number
表示オブジェクトの幅を示します (ピクセル単位)。
DisplayObject
 Inheritedx : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。
DisplayObject
 Inheritedy : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。
DisplayObject
パブリックメソッド
 メソッド定義
  Sprite()
新しい Sprite インスタンスを作成します。
Sprite
 InheritedaddChild(child:DisplayObject):DisplayObject
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
DisplayObjectContainer
 InheritedaddChildAt(child:DisplayObject, index:int):DisplayObject
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
DisplayObjectContainer
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 InheritedareInaccessibleObjectsUnderPoint(point:Point):Boolean
特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。
DisplayObjectContainer
 Inheritedcontains(child:DisplayObject):Boolean
指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。
DisplayObjectContainer
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
 InheritedgetBounds(targetCoordinateSpace:DisplayObject):Rectangle
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。
DisplayObject
 InheritedgetChildAt(index:int):DisplayObject
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。
DisplayObjectContainer
 InheritedgetChildByName(name:String):DisplayObject
指定された名前に一致する子表示オブジェクトを返します。
DisplayObjectContainer
 InheritedgetChildIndex(child:DisplayObject):int
child DisplayObject インスタンスのインデックス位置を返します。
DisplayObjectContainer
 InheritedgetObjectsUnderPoint(point:Point):Array
指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子または孫などであるオブジェクトの配列を返します。
DisplayObjectContainer
 InheritedgetRect(targetCoordinateSpace:DisplayObject):Rectangle
シェイプ上の線を除き、targetCoordinateSpace パラメータによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。
DisplayObject
 InheritedglobalToLocal(point:Point):Point
point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。
DisplayObject
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedhitTestObject(obj:DisplayObject):Boolean
表示オブジェクトを評価して、obj 表示オブジェクトと重複または交差するかどうかを調べます。
DisplayObject
 InheritedhitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。
DisplayObject
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedlocalToGlobal(point:Point):Point
point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。
DisplayObject
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedremoveChild(child:DisplayObject):DisplayObject
DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。
DisplayObjectContainer
 InheritedremoveChildAt(index:int):DisplayObject
DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。
DisplayObjectContainer
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 InheritedsetChildIndex(child:DisplayObject, index:int):void
表示オブジェクトコンテナの既存の子の位置を変更します。
DisplayObjectContainer
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
指定されたスプライトをユーザーがドラッグできるようにします。
Sprite
  stopDrag():void
startDrag() メソッドを終了します。
Sprite
 InheritedswapChildren(child1:DisplayObject, child2:DisplayObject):void
指定された 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
DisplayObjectContainer
 InheritedswapChildrenAt(index1:int, index2:int):void
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
DisplayObjectContainer
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント一覧定義
 Inheritedactivate Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。DisplayObject
 Inheritedadded 表示オブジェクトが表示リストに追加されたときに送出されます。DisplayObject
 Inheritedclick ユーザーが同じ InteractiveObject 上でポインティングデバイスのメインボタンを押して離すと送出されます。InteractiveObject
 Inheriteddeactivate Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。DisplayObject
 InheriteddoubleClick オブジェクトの doubleClickEnabled フラグが true に設定されている場合には、ユーザーが同じ InteractiveObject 上でポインティングデバイスのメインボタンを 2 回続けてすばやく押して離すと送出されます。InteractiveObject
 InheritedenterFrame 再生ヘッドが新しいフレームに入るときに送出されます。DisplayObject
 InheritedfocusIn 表示オブジェクトがフォーカスを取得した後に送出されます。InteractiveObject
 InheritedfocusOut 表示オブジェクトがフォーカスを失った後に送出されます。InteractiveObject
 InheritedkeyDown ユーザーがキーを押したときに送出されます。InteractiveObject
 InheritedkeyFocusChange ユーザーがキーボード操作によってフォーカスを変更しようとすると送出されます。InteractiveObject
 InheritedkeyUp ユーザーがキーを離したときに送出されます。InteractiveObject
 InheritedmouseDown Flash Player ウィンドウの InteractiveObject インスタンスの上で、ユーザーがポインティングデバイスのボタンを押したときに送出されます。InteractiveObject
 InheritedmouseFocusChange ユーザーがポインティングデバイスでフォーカスを変更しようとすると送出されます。InteractiveObject
 InheritedmouseMove InteractiveObject の上で、ユーザーがポインティングデバイスを動かしたときに送出されます。InteractiveObject
 InheritedmouseOut ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。InteractiveObject
 InheritedmouseOver ユーザーが Flash Player ウィンドウの InteractiveObject インスタンスに、ポインティングデバイスを合わせたときに送出されます。InteractiveObject
 InheritedmouseUp ユーザーが Flash Player ウィンドウの InteractiveObject インスタンスの上でポインティングデバイスのボタンを離したときに送出されます。InteractiveObject
 InheritedmouseWheel Flash Player ウィンドウの InteractiveObject インスタンスの上で、マウスホイールを回転させたときに送出されます。InteractiveObject
 Inheritedremoved 表示オブジェクトが表示リストから削除されようとしているときに送出されます。DisplayObject
 Inheritedrender 表示リストが更新およびレンダリングされようとしているときに送出されます。DisplayObject
 InheritedrollOut ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。InteractiveObject
 InheritedrollOver ユーザーが InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。InteractiveObject
 InheritedtabChildrenChange オブジェクトの tabChildren フラグの値が変更されたときに送出されます。InteractiveObject
 InheritedtabEnabledChange オブジェクトの tabEnabled フラグが変更されたときに送出されます。InteractiveObject
 InheritedtabIndexChange オブジェクトの tabIndex プロパティの値が変更されたときに送出されます。InteractiveObject
プロパティの詳細
buttonModeプロパティ
buttonMode:Boolean  [read-write]

このスプライトのボタンモードを指定します。true の場合、このスプライトはボタンとして動作します。この場合、このスプライトは、マウスがこのスプライト上を通るとハンドカーソルの表示をトリガし、このスプライトにフォーカスがあるときに Enter キーまたは Space キーが押されると click イベントを受け取ることができます。useHandCursor プロパティを false に設定することにより、ハンドカーソルの表示を抑制することができます。この場合はポインタが表示されます。

SimpleButton クラスを使用してボタンを作成する方が望ましい実装ですが、buttonMode プロパティを使用することにより、スプライトにボタンに似た機能を持たせることができます。タブ順序にスプライトを組み込むには、tabEnabled プロパティ (InteractiveObject クラスから継承されデフォルトは false) を true に設定します。さらに、スプライトの子をマウス対応にするかどうかも検討してください。イベントフローが混乱するため、ほとんどのボタンではその子オブジェクトに対するマウス操作を有効にしません。すべての子オブジェクトに対するマウス操作を無効にするには、mouseChildren プロパティ (DisplayObjectContainer クラスから継承) を false に設定します。

MovieClip クラス (Sprite クラスのサブクラス) で buttonMode プロパティを使用すると、ボタンにいくつかの機能を追加することができます。_up、_over、および _down のラベルが付いたフレームを組み込むと、自動状態変化になります (以前のバージョンの ActionScript で提供されていた、ボタンとして使用されるムービークリップ用の機能と似た機能)。こうした自動状態変化は、スプライトでは使用できません。スプライトはタイムラインを持たず、そのためラベルを付けるフレームがないためです。

実装
    public function get buttonMode():Boolean
    public function set buttonMode(value:Boolean):void

関連項目



次の例では、2 つのスプライトを作成し、buttonMode プロパティを、一方は 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);

dropTargetプロパティ 
dropTarget:DisplayObject  [read-only]

スプライトのドラッグ先またはスプライトがドロップされた先の表示オブジェクトを指定します。

実装
    public function get dropTarget():DisplayObject

関連項目



次の例では、circle スプライトと 2 つの target スプライトを作成します。ユーザーがカーソルの位置を circle スプライトに合わせてマウスボタンを押すと、このスプライトに対して startDrag() メソッドが呼び出され、 ユーザーがマウスボタンを離すと、stopDrag() メソッドが 呼び出されます。これによって、ユーザーはスプライトをドラッグできるようになります。マウスボタンを離したときに mouseRelease() メソッドが呼び出され、このメソッドが dropTarget オブジェクトの name をトレースします。このオブジェクトは、ユーザーが circle スプライトをドラッグしてドロップしたオブジェクトです。
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  [read-only]

ベクターの描画コマンドが発生する、このスプライトに属する Graphics オブジェクトを指定します。

実装
    public function get graphics():Graphics

関連項目



次の例では、circle スプライトを作成し、その 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  [read-write]

スプライトのヒット領域となる別のスプライトを指定します。hitArea プロパティが存在しないか、このプロパティの値が null または undefined の場合は、スプライト自体がヒット領域として使用されます。hitArea プロパティの値は、Sprite オブジェクトへの参照である場合があります。

hitArea プロパティはいつでも変更できます。このプロパティを変更したスプライトには新しいヒット領域の動作が直ちに反映されます。ヒット領域として指定したスプライトは可視状態である必要はありません。不可視状態であっても、そのグラフィカルシェイプをヒット領域として検出できます。

メモ: ヒット領域として指定したスプライトの mouseEnabled プロパティは false に設定する必要があります。そうしないと、ヒット領域として指定したスプライトがスプライトボタンではなくマウスイベントを受け取るので、スプライトボタンが機能しない可能性があります。

実装
    public function get hitArea():Sprite
    public function set hitArea(value:Sprite):void


次の例では、circle スプライトと square スプライトを作成します。square スプライトは circle スプライトの hitArea です。 したがって、ユーザーが square スプライトをクリックすると、circle スプライトは 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:SoundTransform  [read-write]

このスプライト内のサウンドを制御します。

実装
    public function get soundTransform():SoundTransform
    public function set soundTransform(value:SoundTransform):void

関連項目



次の例では、container という名前のスプライトを作成し、 その子リストに Loader オブジェクトを追加します。Loader オブジェクトは SWF ファイルをロードします。 ユーザーが tf テキストフィールド内のリンク true をクリックすると、 mute() メソッドは、container スプライトの 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  [read-write]

buttonMode プロパティが true に設定されたスプライト上にマウスが移動したときに、指差しハンドポインタ (ハンドカーソル) を表示するかどうかを示すブール値です。useHandCursor プロパティのデフォルト値は true です。useHandCursortrue に設定すると、マウスがボタンスプライト上に移動したときに、指差し状態のハンドカーソルが表示されます。useHandCursorfalse に設定すると、代わりに矢印のポインタが使用されます。

useHandCursor プロパティはいつでも変更できます。このプロパティを変更したスプライトには、新しいカーソル外観が直ちに反映されます。

メモ: 子を持つスプライトの場合は、mouseChildren プロパティを false に設定します。たとえば、Flex <mx:Label> コントロール上にハンドカーソルを表示させるには、useHandCursor および buttonMode プロパティを true に設定し、mouseChildren プロパティを false に設定します。

実装
    public function get useHandCursor():Boolean
    public function set useHandCursor(value:Boolean):void

関連項目



次の例では、2 つのスプライトを作成し、buttonMode プロパティを両方とも true に設定しますが、useHandCursor プロパティを、一方は 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);

コンストラクタの詳細
Sprite()コンストラクタ
public 関数 Sprite()

新しい Sprite インスタンスを作成します。Sprite インスタンスの作成後、DisplayObjectContainer.addChild() または DisplayObjectContainer.addChildAt() メソッドを呼び出して、親 DisplayObjectContainer に Sprite を追加できます。

メソッドの詳細
startDrag()メソッド
public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void

指定されたスプライトをユーザーがドラッグできるようにします。Sprite.stopDrag() メソッドを呼び出して明示的に停止するか、他のスプライトをドラッグ可能にするまでの間、スプライトはドラッグ可能なままになります。一度に 1 つのスプライトのみドラッグ可能です。

パラメータ
lockCenter:Boolean (default = false) — ドラッグ可能なスプライトが、マウス位置の中心にロックされるか (true)、ユーザーがスプライト上で最初にクリックした点にロックされるか (false) を指定します。
 
bounds:Rectangle (default = null) — Sprite の制限矩形を指定する Sprite の親の座標を基準にした相対値です。

関連項目



次の例では、circle スプライトと 2 つの target スプライトを作成します。ユーザーがカーソルの位置を circle スプライトに合わせてマウスボタンを押すと、このスプライトに対して startDrag() メソッドが呼び出され、 ユーザーがマウスボタンを離すと、stopDrag() メソッドが 呼び出されます。これによって、ユーザーはスプライトをドラッグできるようになります。マウスボタンを離したときに mouseRelease() メソッドが呼び出され、このメソッドが dropTarget オブジェクトの name をトレースします。このオブジェクトは、ユーザーが circle スプライトをドラッグしてドロップしたオブジェクトです。
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()メソッド 
public function stopDrag():void

startDrag() メソッドを終了します。startDrag() メソッドによってドラッグ可能になったスプライトは、stopDrag() メソッドを実行するか、他のスプライトがドラッグ可能になるまで、ドラッグ可能のままです。一度に 1 つのスプライトのみドラッグ可能です。

関連項目



次の例では、circle スプライトと 2 つの target スプライトを作成します。ユーザーがカーソルの位置を circle スプライトに合わせてマウスボタンを押すと、このスプライトに対して startDrag() メソッドが呼び出され、 ユーザーがマウスボタンを離すと、stopDrag() メソッドが 呼び出されます。これによって、ユーザーはスプライトをドラッグできるようになります。マウスボタンを離したときに mouseRelease() メソッドが呼び出され、このメソッドが dropTarget オブジェクトの name をトレースします。このオブジェクトは、ユーザーが circle スプライトをドラッグしてドロップしたオブジェクトです。
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);
}


次の例では、SpriteExample クラスを使用して、 ステージにオレンジ色の四角形を描画し、ユーザーがその四角形をクリックまたはドラッグするたびに イベントを送出します。これを行うには、以下の手順を実行します。
  1. 後で四角形の描画に使用する size プロパティ (100 × 100 ピクセル) と 背景色 (オレンジ色) を宣言します。
  2. 次にコンストラクタが新しい child Sprite オブジェクトを作成し、それを使用して 2 つのイベントリスナーとそれに関連する次のメソッドを追加します。mouseDownHandler() および mouseUpHandler().
  3. 次に child Sprite オブジェクトが draw() メソッドに渡されて、オレンジ色の四角形が描画されます。
  4. 次に、addChild() メソッドの呼び出しによって、表示リストに メソッドを呼び出します。
  5. イベントリスナーは、以下のように動作します。
    • mouseDownHandler(): ユーザーが Sprite オブジェクトをクリックすると、 このメソッドは mouseMove イベントリスナーの mouseMoveHandler() メソッドを追加します。 これによって、マウスの移動が処理されます。次に startDrag() メソッドが呼び出されます。これによって、 Sprite オブジェクトのドラッグが可能になります。
    • 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();
        }
    }
}