| パッケージ | flash.display |
| public class Sprite | |
| 継承 | Sprite DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
| Subclasses | DownloadProgressBar, FlexSprite, MovieClip, Preloader |
Sprite オブジェクトはムービークリップと似ていますが、タイムラインを持ちません。Sprite は、タイムラインを必要としないオブジェクトに適した基本クラスです。たとえば、Sprite は、通常はタイムラインを使用しないユーザーインターフェイス (UI) コンポーネントの論理基本クラスになります。
Sprite クラスは、ActionScript 3.0 での新しいクラスです。これは MovieClip クラスの代替機能を提供します。また、以前のリリースの ActionScript のすべての機能を維持しているので後方互換性があります。
関連項目
| プロパティ | 定義 | ||
|---|---|---|---|
![]() | accessibilityProperties : AccessibilityProperties
この表示オブジェクトの現在のアクセシビリティオプションです。
| DisplayObject | |
![]() | alpha : Number
指定されたオブジェクトのアルファ透明度値を示します。
| DisplayObject | |
![]() | blendMode : String
使用するブレンドモードを指定する BlendMode クラスの値です。
| DisplayObject | |
| buttonMode : Boolean
このスプライトのボタンモードを指定します。
| Sprite | ||
![]() | cacheAsBitmap : Boolean
true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash Player にキャッシュされます。 | DisplayObject | |
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
![]() | contextMenu : ContextMenu
このオブジェクトに関連付けられたコンテキストメニューを指定します。
| InteractiveObject | |
![]() | doubleClickEnabled : Boolean
オブジェクトが
doubleClick イベントを受け取るかどうかを指定します。 | InteractiveObject | |
| dropTarget : DisplayObject
[read-only]
スプライトのドラッグ先またはスプライトがドロップされた先の表示オブジェクトを指定します。
| Sprite | ||
![]() | filters : Array
表示オブジェクトに現在関連付けられている各フィルタオブジェクトが格納されているインデックス付きの配列です。
| DisplayObject | |
![]() | focusRect : Object
このオブジェクトがフォーカス矩形を表示するかどうかを指定します。
| InteractiveObject | |
| graphics : Graphics
[read-only]
ベクターの描画コマンドが発生する、このスプライトに属する Graphics オブジェクトを指定します。
| Sprite | ||
![]() | height : Number
表示オブジェクトの高さを示します (ピクセル単位)。
| DisplayObject | |
| hitArea : Sprite
スプライトのヒット領域となる別のスプライトを指定します。
| Sprite | ||
![]() | loaderInfo : LoaderInfo
この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。
| DisplayObject | |
![]() | mask : DisplayObject
呼び出し元の表示オブジェクトは、指定された
mask オブジェクトによってマスクされます。 | DisplayObject | |
![]() | mouseChildren : Boolean
オブジェクトの子に対してマウスが有効かどうかを調べます。
| DisplayObjectContainer | |
![]() | mouseEnabled : Boolean
このオブジェクトがマウスメッセージを受け取るかどうかを指定します。
| InteractiveObject | |
![]() | mouseX : Number
マウス位置の x 座標を示します (ピクセル単位)。
| DisplayObject | |
![]() | mouseY : Number
マウス位置の y 座標を示します (ピクセル単位)。
| DisplayObject | |
![]() | name : String
DisplayObject のインスタンス名を示します。
| DisplayObject | |
![]() | numChildren : int
このオブジェクトの子の数を返します。
| DisplayObjectContainer | |
![]() | opaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。
| DisplayObject | |
![]() | parent : DisplayObjectContainer
この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。
| DisplayObject | |
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
![]() | root : DisplayObject
ロードされた SWF ファイル内の表示オブジェクトの場合、
root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。 | DisplayObject | |
![]() | rotation : Number
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。
| DisplayObject | |
![]() | scale9Grid : Rectangle
現在有効な拡大 / 縮小グリッドです。
| DisplayObject | |
![]() | scaleX : Number
基準点から適用されるオブジェクトの水平スケール (
percentage) を示します。 | DisplayObject | |
![]() | scaleY : Number
オブジェクトの基準点から適用されるオブジェクトの垂直スケール (
percentage) を示します。 | DisplayObject | |
![]() | scrollRect : Rectangle
表示オブジェクトのスクロール矩形の境界。
| DisplayObject | |
| soundTransform : SoundTransform
このスプライト内のサウンドを制御します。
| Sprite | ||
![]() | stage : Stage
表示オブジェクトのステージ。
| DisplayObject | |
![]() | tabChildren : Boolean
オブジェクトの子に対してタブが有効かどうかを調べます。
| DisplayObjectContainer | |
![]() | tabEnabled : Boolean
このオブジェクトがタブ順序に含まれるかどうかを指定します。
| InteractiveObject | |
![]() | tabIndex : int
SWF ファイル内のオブジェクトのタブ順を指定します。
| InteractiveObject | |
![]() | textSnapshot : TextSnapshot
この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。
| DisplayObjectContainer | |
![]() | transform : 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 | |
| メソッド | 定義 | ||
|---|---|---|---|
| Sprite()
新しい Sprite インスタンスを作成します。
| Sprite | ||
![]() | addChild(child:DisplayObject):DisplayObject
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
| DisplayObjectContainer | |
![]() | addChildAt(child:DisplayObject, index:int):DisplayObject
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
| DisplayObjectContainer | |
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
| EventDispatcher | |
![]() | areInaccessibleObjectsUnderPoint(point:Point):Boolean
特定の
point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。 | DisplayObjectContainer | |
![]() | contains(child:DisplayObject):Boolean
指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。
| DisplayObjectContainer | |
![]() | dispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
| EventDispatcher | |
![]() | getBounds(targetCoordinateSpace:DisplayObject):Rectangle
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。 | DisplayObject | |
![]() | getChildAt(index:int):DisplayObject
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。
| DisplayObjectContainer | |
![]() | getChildByName(name:String):DisplayObject
指定された名前に一致する子表示オブジェクトを返します。
| DisplayObjectContainer | |
![]() | getChildIndex(child:DisplayObject):int
child DisplayObject インスタンスのインデックス位置を返します。 | DisplayObjectContainer | |
![]() | getObjectsUnderPoint(point:Point):Array
指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子または孫などであるオブジェクトの配列を返します。
| DisplayObjectContainer | |
![]() | getRect(targetCoordinateSpace:DisplayObject):Rectangle
シェイプ上の線を除き、
targetCoordinateSpace パラメータによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。 | DisplayObject | |
![]() | globalToLocal(point:Point):Point
point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。 | DisplayObject | |
![]() | hasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
| EventDispatcher | |
![]() | hasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
![]() | hitTestObject(obj:DisplayObject):Boolean
表示オブジェクトを評価して、
obj 表示オブジェクトと重複または交差するかどうかを調べます。 | DisplayObject | |
![]() | hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
表示オブジェクトを評価して、
x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。 | DisplayObject | |
![]() | isPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() | localToGlobal(point:Point):Point
point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。 | DisplayObject | |
![]() | propertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
| Object | |
![]() | removeChild(child:DisplayObject):DisplayObject
DisplayObjectContainer インスタンスの子リストから指定の
child DisplayObject インスタンスを削除します。 | DisplayObjectContainer | |
![]() | removeChildAt(index:int):DisplayObject
DisplayObjectContainer の子リストの指定された
index 位置から子 DisplayObject を削除します。 | DisplayObjectContainer | |
![]() | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
| EventDispatcher | |
![]() | setChildIndex(child:DisplayObject, index:int):void
表示オブジェクトコンテナの既存の子の位置を変更します。
| DisplayObjectContainer | |
![]() | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
| startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
指定されたスプライトをユーザーがドラッグできるようにします。
| Sprite | ||
stopDrag():void
startDrag() メソッドを終了します。 | Sprite | ||
![]() | swapChildren(child1:DisplayObject, child2:DisplayObject):void
指定された 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
| DisplayObjectContainer | |
![]() | swapChildrenAt(index1:int, index2:int):void
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
| DisplayObjectContainer | |
![]() | toString():String
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() | valueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
| Object | |
![]() | willTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| EventDispatcher | |
| 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
関連項目
buttonMode
プロパティを、一方は true に、もう一方は false に設定します。アプリケーションをコンパイルして
実行すると、両方のスプライトともマウスイベントに応答しますが、
buttonMode が true に設定された方のみがハンドカーソルを使用し、
タブ順序に組み込まれます。
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 です。useHandCursor を true に設定すると、マウスがボタンスプライト上に移動したときに、指差し状態のハンドカーソルが表示されます。useHandCursor を false に設定すると、代わりに矢印のポインタが使用されます。
useHandCursor プロパティはいつでも変更できます。このプロパティを変更したスプライトには、新しいカーソル外観が直ちに反映されます。
メモ: 子を持つスプライトの場合は、mouseChildren プロパティを false に設定します。たとえば、Flex <mx:Label> コントロール上にハンドカーソルを表示させるには、useHandCursor および buttonMode プロパティを true に設定し、mouseChildren プロパティを false に設定します。
public function get useHandCursor():Boolean
public function set useHandCursor(value:Boolean):void
関連項目
buttonMode
プロパティを両方とも true に設定しますが、useHandCursor
プロパティを、一方は true に、もう一方は false に設定します。アプリケーションをコンパイルして
実行すると、両方のスプライトともボタンとして応答しますが (タブ順序にも組み込まれる)、
useHandCursor が true に設定されたスプライトのみがハンドカーソルを使用します。
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);
}
size プロパティ (100 × 100 ピクセル) と
背景色 (オレンジ色) を宣言します。child Sprite オブジェクトを作成し、それを使用して
2 つのイベントリスナーとそれに関連する次のメソッドを追加します。mouseDownHandler() および
mouseUpHandler().child Sprite オブジェクトが
draw() メソッドに渡されて、オレンジ色の四角形が描画されます。addChild() メソッドの呼び出しによって、表示リストに
メソッドを呼び出します。 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();
}
}
}