| パッケージ | flash.display |
| クラス | public class Sprite |
| 継承 | Sprite DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
| サブクラス | FLVPlayback, FLVPlaybackCaptioning, MovieClip, UIComponent |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
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
[read-only]
この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。
| DisplayObject | |
![]() | mask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。
| DisplayObject | |
![]() | mouseChildren : Boolean
オブジェクトの子に対してマウスが有効かどうかを調べます。
| DisplayObjectContainer | |
![]() | mouseEnabled : Boolean
このオブジェクトがマウスメッセージを受け取るかどうかを指定します。
| InteractiveObject | |
![]() | mouseX : Number
[read-only]
マウス位置の x 座標を示します (ピクセル単位)。
| DisplayObject | |
![]() | mouseY : Number
[read-only]
マウス位置の y 座標を示します (ピクセル単位)。
| DisplayObject | |
![]() | name : String
DisplayObject のインスタンス名を示します。
| DisplayObject | |
![]() | numChildren : int
[read-only]
このオブジェクトの子の数を返します。
| DisplayObjectContainer | |
![]() | opaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。
| DisplayObject | |
![]() | parent : DisplayObjectContainer
[read-only]
この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。
| DisplayObject | |
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
![]() | root : DisplayObject
[read-only]
ロードされた 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
[read-only]
表示オブジェクトのステージです。
| DisplayObject | |
![]() | tabChildren : Boolean
オブジェクトの子に対してタブが有効かどうかを調べます。
| DisplayObjectContainer | |
![]() | tabEnabled : Boolean
このオブジェクトがタブ順序に含まれるかどうかを指定します。
| InteractiveObject | |
![]() | tabIndex : int
SWF ファイル内のオブジェクトのタブ順序を指定します。
| InteractiveObject | |
![]() | textSnapshot : TextSnapshot
[read-only]
この 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 | ||
![]() |
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
| DisplayObjectContainer | |
![]() |
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
| DisplayObjectContainer | |
![]() |
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
| EventDispatcher | |
![]() |
特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。
| DisplayObjectContainer | |
![]() |
指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。
| DisplayObjectContainer | |
![]() |
イベントをイベントフローに送出します。
| EventDispatcher | |
![]() |
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。
| DisplayObject | |
![]() |
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。
| DisplayObjectContainer | |
![]() |
指定された名前に一致する子表示オブジェクトを返します。
| DisplayObjectContainer | |
![]() |
子 DisplayObject インスタンスのインデックス位置を返します。
| DisplayObjectContainer | |
![]() |
指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子または孫などであるオブジェクトの配列を返します。
| DisplayObjectContainer | |
![]() |
シェイプ上の線を除き、targetCoordinateSpace パラメータによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。
| DisplayObject | |
![]() |
point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。
| DisplayObject | |
![]() |
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
| EventDispatcher | |
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
![]() |
表示オブジェクトを評価して、obj 表示オブジェクトと重複または交差するかどうかを調べます。
| DisplayObject | |
![]() |
表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。
| DisplayObject | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() |
point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。
| DisplayObject | |
![]() |
指定されたプロパティが存在し列挙できるかどうかを示します。
| Object | |
![]() |
DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。
| DisplayObjectContainer | |
![]() |
DisplayObjectContainer の子リストの指定されたインデックス位置から子 DisplayObject を削除します。
| DisplayObjectContainer | |
![]() |
EventDispatcher オブジェクトからリスナーを削除します。
| EventDispatcher | |
![]() |
表示オブジェクトコンテナの既存の子の位置を変更します。
| DisplayObjectContainer | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
|
指定されたスプライトをユーザーがドラッグできるようにします。
| Sprite | ||
|
startDrag() メソッドを終了します。
| Sprite | ||
![]() |
指定された 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
| DisplayObjectContainer | |
![]() |
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
| DisplayObjectContainer | |
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| EventDispatcher | |
| 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
関連項目
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]
| 言語バージョン : | 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 です。useHandCursor を true に設定すると、マウスがボタンスプライト上に移動したときに、指差し状態のハンドカーソルが表示されます。useHandCursor を false に設定すると、代わりに矢印のポインタが使用されます。
useHandCursor プロパティはいつでも変更できます。このプロパティを変更したスプライトには、新しいカーソル外観が直ちに反映されます。
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 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);
}size プロパティ (100 x 100 ピクセル) と背景色 (オレンジ色) を宣言します。child Sprite オブジェクトを作成して使用し、2 つのイベントリスナーとその関連メソッドを追加します。mouseDownHandler() および mouseUpHandler() の 2 つのエディションがあります。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();
}
}
}
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/display/Sprite.html