パッケージflash.display
クラスpublic class Sprite
継承Sprite Inheritance DisplayObjectContainer Inheritance InteractiveObject Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object
サブクラス FLVPlayback, FLVPlaybackCaptioning, MovieClip, UIComponent

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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
[read-only] この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。
DisplayObject
 Inheritedmask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。
DisplayObject
 InheritedmouseChildren : Boolean
オブジェクトの子に対してマウスが有効かどうかを調べます。
DisplayObjectContainer
 InheritedmouseEnabled : Boolean
このオブジェクトがマウスメッセージを受け取るかどうかを指定します。
InteractiveObject
 InheritedmouseX : Number
[read-only] マウス位置の x 座標を示します (ピクセル単位)。
DisplayObject
 InheritedmouseY : Number
[read-only] マウス位置の y 座標を示します (ピクセル単位)。
DisplayObject
 Inheritedname : String
DisplayObject のインスタンス名を示します。
DisplayObject
 InheritednumChildren : int
[read-only] このオブジェクトの子の数を返します。
DisplayObjectContainer
 InheritedopaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。
DisplayObject
 Inheritedparent : DisplayObjectContainer
[read-only] この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。
DisplayObject
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
 Inheritedroot : DisplayObject
[read-only] ロードされた 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
[read-only] 表示オブジェクトのステージです。
DisplayObject
 InheritedtabChildren : Boolean
オブジェクトの子に対してタブが有効かどうかを調べます。
DisplayObjectContainer
 InheritedtabEnabled : Boolean
このオブジェクトがタブ順序に含まれるかどうかを指定します。
InteractiveObject
 InheritedtabIndex : int
SWF ファイル内のオブジェクトのタブ順序を指定します。
InteractiveObject
 InheritedtextSnapshot : TextSnapshot
[read-only] この 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
 Inherited
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
DisplayObjectContainer
 Inherited
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
DisplayObjectContainer
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 Inherited
特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。
DisplayObjectContainer
 Inherited
指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。
DisplayObjectContainer
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
 Inherited
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。
DisplayObject
 Inherited
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。
DisplayObjectContainer
 Inherited
指定された名前に一致する子表示オブジェクトを返します。
DisplayObjectContainer
 Inherited
子 DisplayObject インスタンスのインデックス位置を返します。
DisplayObjectContainer
 Inherited
指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子または孫などであるオブジェクトの配列を返します。
DisplayObjectContainer
 Inherited
getRect(targetCoordinateSpace:DisplayObject):Rectangle
シェイプ上の線を除き、targetCoordinateSpace パラメータによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。
DisplayObject
 Inherited
point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。
DisplayObject
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
表示オブジェクトを評価して、obj 表示オブジェクトと重複または交差するかどうかを調べます。
DisplayObject
 Inherited
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。
DisplayObject
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。
DisplayObject
 Inherited
指定されたプロパティが存在し列挙できるかどうかを示します。
Object
 Inherited
DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。
DisplayObjectContainer
 Inherited
DisplayObjectContainer の子リストの指定されたインデックス位置から子 DisplayObject を削除します。
DisplayObjectContainer
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 Inherited
表示オブジェクトコンテナの既存の子の位置を変更します。
DisplayObjectContainer
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
指定されたスプライトをユーザーがドラッグできるようにします。
Sprite
  
startDrag() メソッドを終了します。
Sprite
 Inherited
指定された 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
DisplayObjectContainer
 Inherited
swapChildrenAt(index1:int, index2:int):void
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
DisplayObjectContainer
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
 Inherited 表示オブジェクトが表示リストに追加されたときに送出されます。DisplayObject
 Inherited 表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの追加により、ステージ上の表示リストに追加されたときに送出されます。DisplayObject
 Inherited ユーザーが InteractiveObject をポインティングデバイスのメインボタンでクリックしたときに送出されます。InteractiveObject
 Inherited Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
 Inherited オブジェクトの doubleClickEnabled フラグが true に設定されている場合にユーザーが InteractiveObject をポインティングデバイスのメインボタンで 2 回続けてすばやくクリックすると送出されます。InteractiveObject
 Inherited 再生ヘッドが新しいフレームに入るときに送出されます。DisplayObject
 Inherited 表示オブジェクトがフォーカスを取得したときに送出されます。InteractiveObject
 Inherited 表示オブジェクトがフォーカスを失ったときに送出されます。InteractiveObject
 Inherited ユーザーがキーを押したときに送出されます。InteractiveObject
 Inherited ユーザーがキーボード操作によってフォーカスを変更しようとすると送出されます。InteractiveObject
 Inherited ユーザーがキーを離したときに送出されます。InteractiveObject
 Inherited Flash Player ウィンドウの InteractiveObject インスタンスの上でユーザーがポインティングデバイスのボタンを押すと送出されます。InteractiveObject
 Inherited ユーザーがポインティングデバイスでフォーカスを変更しようとすると送出されます。InteractiveObject
 Inherited ユーザーが InteractiveObject の上でポインティングデバイスを移動させたときに送出されます。InteractiveObject
 Inherited ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。InteractiveObject
 Inherited ユーザーが Flash Player ウィンドウの InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。InteractiveObject
 Inherited ユーザーが Flash Player ウィンドウの InteractiveObject インスタンスの上でポインティングデバイスのボタンを解放したときに送出されます。InteractiveObject
 Inherited Flash Player ウィンドウの InteractiveObject インスタンスの上でマウスホイールを回転させたときに送出されます。InteractiveObject
 Inherited 表示オブジェクトが表示リストから削除されようとしているときに送出されます。DisplayObject
 Inherited 表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの削除により、表示リストから削除されようとしているときに送出されます。DisplayObject
 Inherited 表示リストが更新およびレンダリングされようとしているときに送出されます。DisplayObject
 Inherited ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。InteractiveObject
 Inherited ユーザーが InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。InteractiveObject
 Inherited オブジェクトの tabChildren フラグの値が変更されたときに送出されます。InteractiveObject
 Inherited オブジェクトの tabEnabled フラグが変更されたときに送出されます。InteractiveObject
 Inherited オブジェクトの tabIndex プロパティの値が変更されたときに送出されます。InteractiveObject
プロパティの詳細
buttonModeプロパティ
buttonMode:Boolean  [read-write]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

このスプライトのボタンモードを指定します。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]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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


実装
    public function get dropTarget():DisplayObject

関連項目




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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

ベクターの描画コマンドが発生する、このスプライトに属する 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]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

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


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



次の例では、circle スプライトおよび square スプライトを作成します。square スプライトは hitArea (circle スプライトのもの) です。したがって、ユーザーが 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]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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


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

関連項目




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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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


実装
    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 function Sprite()

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

パラメータ

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

関連項目




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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

関連項目




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

次の例では、SpriteExample クラスを使用して、ステージにオレンジ色の四角形を描画し、ユーザーがその四角形をクリックまたはドラッグするたびにイベントを送出します。これを行うには、以下の手順を実行します。
  1. size プロパティ (100 x 100 ピクセル) と背景色 (オレンジ色) を宣言します。
  2. 次にコンストラクタは、新しい child Sprite オブジェクトを作成して使用し、2 つのイベントリスナーとその関連メソッドを追加します。mouseDownHandler() および mouseUpHandler() の 2 つのエディションがあります。
  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();
        }
    }
}




 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/display/Sprite.html