パッケージ | flash.display |
クラス | public class Sprite |
継承 | Sprite DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
サブクラス | DownloadProgressBar, FlexSprite, FLVPlayback, FLVPlaybackCaptioning, FTETextField, HTMLLoader, LayoutTargetSprite, MediaPlayerSprite, MovieClip, Preloader, ProLoader, SparkDownloadProgressBar, SplashScreen, TLFTextField, UIComponent |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Sprite オブジェクトはムービークリップと似ていますが、タイムラインを持ちません。Sprite は、タイムラインを必要としないオブジェクトに適した基本クラスです。例えば、Sprite は、通常はタイムラインを使用しないユーザーインターフェイス(UI)コンポーネントの論理基本クラスになります。
Sprite クラスは、ActionScript 3.0 での新しいクラスです。これは MovieClip クラスの代替機能を提供します。また、以前のリリースの ActionScript のすべての機能を維持しているので後方互換性があります。
さらに例を参照
プロパティ | 定義元 | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
この InteractiveObject インスタンスの現在のアクセシビリティの実装(AccessibilityImplementation)です。 | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
この表示オブジェクトの現在のアクセシビリティオプションです。 | DisplayObject | ||
alpha : Number
指定されたオブジェクトのアルファ透明度値を示します。 | DisplayObject | ||
blendMode : String
使用するブレンドモードを指定する BlendMode クラスの値です。 | DisplayObject | ||
blendShader : Shader [書き込み専用]
前景と背景のブレンドに使用するシェーダーを設定します。 | DisplayObject | ||
buttonMode : Boolean
このスプライトのボタンモードを指定します。 | Sprite | ||
cacheAsBitmap : Boolean
true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash ランタイムにキャッシュされます。 | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
null 以外の場合、この Matrix オブジェクトは、cacheAsBitmap を true に設定したときの表示オブジェクトのレンダリング方法を定義します。 | DisplayObject | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
contextMenu : NativeMenu
このオブジェクトに関連付けられたコンテキストメニューを指定します。 | InteractiveObject | ||
doubleClickEnabled : Boolean
オブジェクトが doubleClick イベントを受け取るかどうかを指定します。 | InteractiveObject | ||
dropTarget : DisplayObject [読み取り専用]
スプライトのドラッグ先またはスプライトがドロップされた先の表示オブジェクトを指定します。 | Sprite | ||
filters : Array
表示オブジェクトに現在関連付けられている各フィルターオブジェクトが格納されているインデックス付きの配列です。 | DisplayObject | ||
focusRect : Object
このオブジェクトがフォーカス矩形を表示するかどうかを指定します。 | InteractiveObject | ||
graphics : Graphics [読み取り専用]
ベクターの描画コマンドが発生するこのスプライトに属する Graphics オブジェクトを指定します。 | Sprite | ||
height : Number
表示オブジェクトの高さを示します(ピクセル単位)。 | DisplayObject | ||
hitArea : Sprite
スプライトのヒット領域となる別のスプライトを指定します。 | Sprite | ||
loaderInfo : LoaderInfo [読み取り専用]
この表示オブジェクトが属するファイルの読み込み情報を含む LoaderInfo オブジェクトを返します。 | DisplayObject | ||
mask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。 | DisplayObject | ||
metaData : Object
メタデータが PlaceObject4 タグによってこの DisplayObject のインスタンスと一緒に SWF ファイル内に保存されている場合に、DisplayObject インスタンスのメタデータオブジェクトを取得します。 | DisplayObject | ||
mouseChildren : Boolean
オブジェクトの子がマウスまたはユーザー入力デバイスに対応しているかどうかを判断します。 | DisplayObjectContainer | ||
mouseEnabled : Boolean
このオブジェクトでマウスまたはその他のユーザー入力メッセージを受け取るかどうかを指定します。 | InteractiveObject | ||
mouseX : Number [読み取り専用]
マウスまたはユーザー入力デバイスの x 軸の位置をピクセルで示します。 | DisplayObject | ||
mouseY : Number [読み取り専用]
マウスまたはユーザー入力デバイスの y 軸の位置をピクセルで示します。 | DisplayObject | ||
name : String
DisplayObject のインスタンス名を示します。 | DisplayObject | ||
needsSoftKeyboard : Boolean
この InteractiveObject インスタンスがフォーカスを受け取ったときに、仮想キーボード(画面上のソフトキーボード)を表示するかどうかを指定します。 | InteractiveObject | ||
numChildren : int [読み取り専用]
このオブジェクトの子の数を返します。 | DisplayObjectContainer | ||
opaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。 | DisplayObject | ||
parent : DisplayObjectContainer [読み取り専用]
この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。 | DisplayObject | ||
root : DisplayObject [読み取り専用]
読み込まれた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。 | DisplayObject | ||
rotation : Number
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。 | DisplayObject | ||
rotationX : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの x 軸の回転角を度単位で示します。 | DisplayObject | ||
rotationY : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの y 軸の回転角を度単位で示します。 | DisplayObject | ||
rotationZ : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの z 軸の回転角を度単位で示します。 | DisplayObject | ||
scale9Grid : Rectangle
現在有効な拡大 / 縮小グリッドです。 | DisplayObject | ||
scaleX : Number
基準点から適用されるオブジェクトの水平スケール(パーセンテージ)を示します。 | DisplayObject | ||
scaleY : Number
オブジェクトの基準点から適用されるオブジェクトの垂直スケール(パーセンテージ)を示します。 | DisplayObject | ||
scaleZ : Number
オブジェクトの基準点から適用されるオブジェクトの奥行きスケール(パーセンテージ)を示します。 | DisplayObject | ||
scrollRect : Rectangle
表示オブジェクトのスクロール矩形の境界です。 | DisplayObject | ||
softKeyboard : String
ソフトキーボードの外観を制御します。 | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
ソフトキーボードが表示されたときに画面に表示したままにする領域を定義します(iOS では使用不可)。 | InteractiveObject | ||
soundTransform : flash.media:SoundTransform
このスプライト内のサウンドを制御します。 | Sprite | ||
stage : Stage [読み取り専用]
表示オブジェクトのステージです。 | DisplayObject | ||
tabChildren : Boolean
オブジェクトの子に対してタブが有効かどうかを調べます。 | DisplayObjectContainer | ||
tabEnabled : Boolean
このオブジェクトがタブ順序に含まれるかどうかを指定します。 | InteractiveObject | ||
tabIndex : int
SWF ファイル内のオブジェクトのタブ順序を指定します。 | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [読み取り専用]
この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。 | DisplayObjectContainer | ||
transform : flash.geom: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 | ||
z : Number
3D 親コンテナを基準にした、DisplayObject インスタンスの z 軸に沿った z 座標位置を示します。 | 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 | ||
ステージ(グローバル)座標の 2 次元のポイントを 3 次元の表示オブジェクトの(ローカル)座標に変換します。 | DisplayObject | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
表示オブジェクトの境界ボックスを評価して、obj 表示オブジェクトの境界ボックスと重複または交差するかどうかを調べます。 | DisplayObject | ||
表示オブジェクトを評価して、x および y パラメーターで指定されたポイントと重複または交差するかどうかを調べます。 | DisplayObject | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
3 次元の表示オブジェクトの(ローカル)座標の 3 次元のポイントをステージ(グローバル)座標の 2 次元のポイントに変換します。 | DisplayObject | ||
point オブジェクトを表示オブジェクトの(ローカル)座標からステージ(グローバル)座標に変換します。 | DisplayObject | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。 | DisplayObjectContainer | ||
DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。 | DisplayObjectContainer | ||
DisplayObjectContainer インスタンスの子リストから、すべての child DisplayObject インスタンスを削除します。 | DisplayObjectContainer | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
仮想キーボードを前面に表示します。 | InteractiveObject | ||
表示オブジェクトコンテナの既存の子の位置を変更します。 | DisplayObjectContainer | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
指定されたスプライトをユーザーがドラッグできるようにします。 | Sprite | ||
指定されたスプライトを、ユーザーがタッチ対応デバイス上でドラッグできるようにします。 | Sprite | ||
このオブジェクトでルート指定されているすべての MovieClip のタイムラインでの実行を再帰的に停止します。 | DisplayObjectContainer | ||
startDrag() メソッドを終了します。 | Sprite | ||
タッチ対応デバイスで使用する startTouchDrag() メソッドを終了します。 | Sprite | ||
指定された 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。 | DisplayObjectContainer | ||
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。 | DisplayObjectContainer | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
buttonMode | プロパティ |
buttonMode:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0, Flash Lite 4 |
このスプライトのボタンモードを指定します。true
の場合、このスプライトはボタンとして動作します。この場合、このスプライトは、ポインターがこのスプライト上を通るとハンドカーソルの表示をトリガーし、このスプライトにフォーカスがあるときに Enter キーまたはスペースキーが押されると 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
関連する API エレメント
例 ( この例の使用方法 )
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
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0, Flash Lite 4 |
スプライトのドラッグ先またはスプライトがドロップされた先の表示オブジェクトを指定します。
実装
public function get dropTarget():DisplayObject
関連する API エレメント
例 ( この例の使用方法 )
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
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0, Flash Lite 4 |
ベクターの描画コマンドが発生するこのスプライトに属する 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
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0, Flash Lite 4 |
スプライトのヒット領域となる別のスプライトを指定します。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:flash.media:SoundTransform
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0, Flash Lite 4 |
このスプライト内のサウンドを制御します。
注意:Adobe AIR では、このプロパティが HTMLControl オブジェクト内の HTML コンテンツに影響を及ぼすことはありません。
実装
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
関連する API エレメント
例 ( この例の使用方法 )
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
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0 |
buttonMode
プロパティが true
に設定されたスプライト上にポインターが移動したときに、指差しハンドポインター(ハンドカーソル)を表示するかどうかを示すブール値です。useHandCursor
プロパティのデフォルト値は true
です。useHandCursor
を true
に設定すると、ポインターがボタンスプライト上に移動したときに、指差しハンドカーソルが表示されます。useHandCursor
を false
に設定すると、代わりに矢印のポインターが使用されます。
useHandCursor
プロパティはいつでも変更できます。このプロパティを変更したスプライトには、新しいカーソル外観が直ちに反映されます。
注意:Flex または Flash Builder では、子を持つスプライトの場合は、mouseChildren
プロパティを false
に設定します。例えば、Flex <mx:Label> コントロール上にハンドカーソルを表示させるには、useHandCursor
および buttonMode
プロパティを true
に設定し、mouseChildren
プロパティを false
に設定します。
実装
public function get useHandCursor():Boolean
public function set useHandCursor(value:Boolean):void
関連する API エレメント
例 ( この例の使用方法 )
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 |
ランタイムバージョン: | Flash Player 9, AIR 1.0, Flash Lite 4 |
新しい Sprite インスタンスを作成します。Sprite インスタンスの作成後、DisplayObjectContainer.addChild()
または DisplayObjectContainer.addChildAt()
メソッドを呼び出して、親 DisplayObjectContainer に Sprite を追加できます。
startDrag | () | メソッド |
public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0, Flash Lite 4 |
指定されたスプライトをユーザーがドラッグできるようにします。Sprite.stopDrag()
メソッドを呼び出して明示的に停止するか、他のスプライトをドラッグ可能にするまでの間、スプライトはドラッグ可能なままになります。一度に 1 つのスプライトのみドラッグ可能です。
3 次元表示オブジェクトがポインターを追いかけ、Sprite.startDrag()
が、表示オブジェクトによって定義された 3 次元平面の中でオブジェクトを移動します。または、表示オブジェクトが 2 次元オブジェクトであり、3 次元オブジェクトの子である場合は、親である 3 次元オブジェクトによって定義された 3 次元平面の中を 2 次元オブジェクトが移動します。
パラメーター
lockCenter:Boolean (default = false ) — ドラッグ可能なスプライトが、ポインター位置の中心にロックされるか(true )、ユーザーがスプライト上で最初にクリックした位置にロックされるか(false )を指定します。
| |
bounds:Rectangle (default = null ) — Sprite の制限矩形を指定する Sprite の親の座標を基準にした相対値です。
|
関連する API エレメント
例 ( この例の使用方法 )
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); }
startTouchDrag | () | メソッド |
public function startTouchDrag(touchPointID:int, lockCenter:Boolean = false, bounds:Rectangle = null):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2, Flash Lite 4 |
指定されたスプライトを、ユーザーがタッチ対応デバイス上でドラッグできるようにします。Sprite.stopTouchDrag()
メソッドを呼び出して明示的に停止するか、他のスプライトをドラッグ可能にするまでの間、スプライトはドラッグ可能なままになります。一度に 1 つのスプライトのみドラッグ可能です。
3 次元表示オブジェクトがポインターを追いかけ、Sprite.startTouchDrag()
が、表示オブジェクトによって定義された 3 次元平面の中でオブジェクトを移動します。または、表示オブジェクトが 2 次元オブジェクトであり、3 次元オブジェクトの子である場合は、親である 3 次元オブジェクトによって定義された 3 次元平面の中を 2 次元オブジェクトが移動します。
パラメーター
touchPointID:int — タッチポイントに割り当てる整数です。
| |
lockCenter:Boolean (default = false ) — ドラッグ可能なスプライトが、ポインター位置の中心にロックされるか(true )、ユーザーがスプライト上で最初にクリックした位置にロックされるか(false )を指定します。
| |
bounds:Rectangle (default = null ) — Sprite の制限矩形を指定する Sprite の親の座標を基準にした相対値です。
|
関連する API エレメント
例 ( この例の使用方法 )
MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); }
stopDrag | () | メソッド |
public function stopDrag():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 9, AIR 1.0, Flash Lite 4 |
startDrag()
メソッドを終了します。startDrag()
メソッドによってドラッグ可能になったスプライトは、stopDrag()
メソッドを追加するか、他のスプライトがドラッグ可能になるまで、ドラッグ可能のままです。一度に 1 つのスプライトのみドラッグ可能です。
関連する API エレメント
例 ( この例の使用方法 )
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); }
stopTouchDrag | () | メソッド |
public function stopTouchDrag(touchPointID:int):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2, Flash Lite 4 |
タッチ対応デバイスで使用する startTouchDrag()
メソッドを終了します。startTouchDrag()
メソッドによってドラッグ可能になったスプライトは、stopTouchDrag()
メソッドを追加するか、他のスプライトがドラッグ可能になるまで、ドラッグ可能のままです。一度に 1 つのスプライトのみドラッグ可能です。
パラメーター
touchPointID:int — startTouchDrag メソッドでタッチポイントに割り当てられる整数です。
|
関連する API エレメント
例 ( この例の使用方法 )
MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); }
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(); } } }
Tue Jun 12 2018, 10:34 AM Z