flash.displayFrameLabel FrameLabel オブジェクトには、フレーム番号および対応するラベル名を指定するプロパティがあります。Object FrameLabel オブジェクトには、フレーム番号および対応するラベル名を指定するプロパティがあります。Scene クラスには、labels プロパティがあります。これは、シーンの FrameLabel オブジェクトの配列です。 Scene.labelsMovieClip.currentLabelMovieClip.currentSceneMovieClip.scenesMovieClip.gotoAndPlay()MovieClip.gotoAndStop()frame ラベルを含むフレームの番号。int ラベルを含むフレームの番号。 name ラベルの名前。String ラベルの名前。 InteractiveObject InteractiveObject クラスは、マウス、キーボードまたは他のユーザー入力デバイスを使用してユーザーが操作できるすべての表示オブジェクトの抽象基本クラスです。flash.display:DisplayObject InteractiveObject クラスは、マウス、キーボードまたは他のユーザー入力デバイスを使用してユーザーが操作できるすべての表示オブジェクトの抽象基本クラスです。

InteractiveObject クラスを直接インスタンス化することはできません。new InteractiveObject() コンストラクターを呼び出すと、ArgumentError 例外がスローされます。

InteractiveObject クラス自体は、コンテンツを画面上に描画する API を含みません。InteractiveObject クラスのカスタムサブクラスを作成するには、Sprite、SimpleButton、TextField、MovieClip クラスなど、画面上にコンテンツを描画する API を持つサブクラスの 1 つを拡張する必要があります。

次の例では、InteractiveObjectExample クラスを使用します。このクラスは、ChildSprite クラスを使用して矩形を描画し、その矩形を様々なマウスイベントに基づいて操作します。これを行うには、以下の手順を実行します。
  1. InteractiveObjectExample コンストラクターで、呼び出されたタイプ Sprite の新しい ChildSprite オブジェクト child が作成されます。これは、ChildSprite コンストラクターメソッドを呼び出してシェイプを描画し、そのシェイプにマウスイベントを追加します(以下の手順で説明)。child オブジェクトは、座標 x = 0、y = 0 の表示リストの最上部に追加されます。
  2. ChildSprite クラスで、size プロパティおよび overSize プロパティを宣言します。これらのプロパティは、後で draw() メソッドおよび MouseEvent メソッドで使用されます。
  3. 背景色をオレンジ色、マウスポインターが上に置かれたときの色を暗い黄色、マウスポインターの下の色を明るい青色に設定するプロパティを宣言します。
  4. ChildSprite コンストラクターで、Graphic クラスのメソッドと draw() メソッドを使用して、オレンジ色の四角形が描画されます。
  5. コンストラクターは以下に示す 4 つの MouseEvent イベントリスナーメソッドを追加します。
    • mouseOverHandler:暗い黄色で 60 x 60 ピクセルに大きくした四角形を元の座標に再描画します。
    • mouseOutHandler:四角形のサイズとカラーを元に戻します。
    • mouseDownHandler:明るい青色で 60 x 60 ピクセルに大きくした四角形を元の座標に再描画します。
    • mouseUpHandlermouseOverHandler と同様です。
package { import flash.display.Sprite; public class InteractiveObjectExample extends Sprite { public function InteractiveObjectExample() { var child:Sprite = new ChildSprite(); addChild(child); } } } import flash.display.Sprite; import flash.events.MouseEvent; class ChildSprite extends Sprite { private var size:uint = 50; private var overSize:uint = 60; private var backgroundColor:uint = 0xFFCC00; private var overColor:uint = 0xCCFF00; private var downColor:uint = 0x00CCFF; public function ChildSprite() { buttonMode = true; draw(size, size, backgroundColor); addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } private function draw(w:uint, h:uint, bgColor:uint):void { graphics.clear(); graphics.beginFill(bgColor); graphics.drawRect(0, 0, w, h); graphics.endFill(); } public function mouseOverHandler(event:MouseEvent):void { trace("mouseOverHandler"); draw(overSize, overSize, overColor); } public function mouseOutHandler(event:MouseEvent):void { trace("mouseOutHandler"); draw(size, size, backgroundColor); } public function mouseDownHandler(event:MouseEvent):void { trace("mouseDownHandler"); draw(overSize, overSize, downColor); } public function mouseUpHandler(event:MouseEvent):void { trace("mouseUpHandler"); draw(overSize, overSize, overColor); } }
softKeyboardDeactivate ソフトキーボードが背後に移動して非表示になった直後に送出されます。flash.events.SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATEflash.events.SoftKeyboardEventソフトキーボードが背後に移動して非表示になった直後に送出されます。 ソフトキーボードが背後に移動して非表示になった直後に送出されます。 flash.events.SoftKeyboardEventsoftKeyboardActivate ソフトキーボードが前面に表示された直後に送出されます。flash.events.SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATEflash.events.SoftKeyboardEventソフトキーボードが前面に表示された直後に送出されます。 ソフトキーボードが前面に表示された直後に送出されます。 flash.events.SoftKeyboardEventsoftKeyboardActivating ソフトキーボードが前面に表示される直前に送出されます。flash.events.SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATINGflash.events.SoftKeyboardEventソフトキーボードが前面に表示される直前に送出されます。 ソフトキーボードが前面に表示される直前に送出されます。 flash.events.SoftKeyboardEventtextInput テキストの文字を入力すると送出されます。flash.events.TextEvent.TEXT_INPUTflash.events.TextEvent テキストの文字を入力すると送出されます。標準キーボード、IME(入力メソッドエディター)、音声認識システム、書式やスタイルの情報を持たないプレーンテキストのペースト操作など、様々なテキスト入力メソッドによって、このイベントが生成されます。 imeStartComposition このイベントは、IME でインライン入力をサポートしているすべてのクライアントアプリケーションに送出されます。 flash.events.IMEEvent このイベントは、IME でインライン入力をサポートしているすべてのクライアントアプリケーションに送出されます。 contextMenu AIR アプリケーションでこのインタラクティブオブジェクトに関連付けられているコンテキストメニューをユーザージェスチャがトリガーすると送出されます。flash.events.MouseEvent.CONTEXT_MENUflash.events.MouseEvent AIR アプリケーションでこのインタラクティブオブジェクトに関連付けられているコンテキストメニューをユーザージェスチャがトリガーすると送出されます。 contextMenunativeDragComplete ユーザーがドラッグジェスチャを止めると、ドラッグイニシエータ InteractiveObject から送出されます。flash.events.NativeDragEvent.NATIVE_DRAG_COMPLETEflash.events.NativeDragEvent ユーザーがドラッグジェスチャを止めると、ドラッグイニシエータ InteractiveObject から送出されます。

イベントの dropAction プロパティは、ドラッグのターゲットオブジェクトによって設定されたアクションを示します。値 "none"(DragActions.NONE)は、ドロップ操作がキャンセルされたか、受け入れられなかったことを示します。

nativeDragComplete イベントハンドラーは、開始表示オブジェクトの状態を更新する場合に便利です。例えば、リストからアイテムを削除する場合(move のドラッグアクション)や、ビジュアルプロパティを変更する場合が該当します。

nativeDragUpdate ドラッグ操作が行われている間に、DragManager.doDrag() 呼び出しのドラッグイニシエータとして指定されている InteractiveObject から送出されます。flash.events.NativeDragEvent.NATIVE_DRAG_UPDATEflash.events.NativeDragEvent ドラッグ操作が行われている間に、DragManager.doDrag() 呼び出しのドラッグイニシエータとして指定されている InteractiveObject から送出されます。

Linux の場合、nativeDragUpdate イベントは送出されません。

nativeDragStart ドラッグ操作の開始時に、DragManager.doDrag() 呼び出しのドラッグイニシエータとして指定されている InteractiveObject から送出されます。flash.events.NativeDragEvent.NATIVE_DRAG_STARTflash.events.NativeDragEvent ドラッグ操作の開始時に、DragManager.doDrag() 呼び出しのドラッグイニシエータとして指定されている InteractiveObject から送出されます。 nativeDragExit ドラッグジェスチャが境界を出ると、InteractiveObject から送出されます。flash.events.NativeDragEvent.NATIVE_DRAG_EXITflash.events.NativeDragEvent ドラッグジェスチャが境界を出ると、InteractiveObject から送出されます。 nativeDragDrop ドラッグされたオブジェクトがターゲットにドロップされ、そのドロップ操作が DragManager.acceptDragDrop() の呼び出しで受け入れられた場合に、ターゲットの InteractiveObject から送出されます。flash.events.NativeDragEvent.NATIVE_DRAG_DROPflash.events.NativeDragEvent ドラッグされたオブジェクトがターゲットにドロップされ、そのドロップ操作が DragManager.acceptDragDrop() の呼び出しで受け入れられた場合に、ターゲットの InteractiveObject から送出されます。

イベントオブジェクトの clipboard プロパティを使用して、ドロップされたデータにアクセスします。

このイベントのハンドラーでは、DragManager.dropAction プロパティを設定し、受け入れられたドラッグアクションについて、イニシエータオブジェクトにフィードバックを提供する必要があります。 値が設定されていない場合、DragManager は、許可されているアクションのリストからデフォルト値を選択します。

nativeDragOver ドラッグジェスチャが境界の範囲内で行われている間、InteractiveObject から継続的に送出されます。flash.events.NativeDragEvent.NATIVE_DRAG_OVERflash.events.NativeDragEvent ドラッグジェスチャが境界の範囲内で行われている間、InteractiveObject から継続的に送出されます。

マウスが移動するたびに、nativeDragOver イベントは送出されます。Windows および Mac の場合、マウスが移動していなくても短いタイマー間隔で送出されます。

nativeDragOver イベントまたは nativeDragEnter イベントのいずれかを処理して、表示オブジェクトがドロップターゲットになれるようにします。

送出している表示オブジェクトがドロップを受け入れられるかどうか特定するには、イベントオブジェクトの clipboard プロパティでデータの適合性をチェックし、許容されているドラッグアクションを allowedActions プロパティでチェックします。

nativeDragEnter ドラッグジェスチャが境界に入ると、InteractiveObject から送出されます。flash.events.NativeDragEvent.NATIVE_DRAG_ENTERflash.events.NativeDragEvent ドラッグジェスチャが境界に入ると、InteractiveObject から送出されます。

nativeDragEnter イベントまたは nativeDragOver イベントのいずれかを処理して、表示オブジェクトがドロップターゲットになれるようにします。

送出している表示オブジェクトがドロップを受け入れられるかどうか特定するには、イベントオブジェクトの clipboard プロパティでデータの適合性をチェックし、許容されているドラッグアクションを allowedActions プロパティでチェックします。

tabIndexChange オブジェクトの tabIndex プロパティの値が変更されたときに送出されます。flash.events.Event.TAB_INDEX_CHANGEflash.events.Event オブジェクトの tabIndex プロパティの値が変更されたときに送出されます。 tabEnabledChange オブジェクトの tabEnabled フラグが変更されたときに送出されます。flash.events.Event.TAB_ENABLED_CHANGEflash.events.Event オブジェクトの tabEnabled フラグが変更されたときに送出されます。 tabChildrenChange オブジェクトの tabChildren フラグの値が変更されたときに送出されます。flash.events.Event.TAB_CHILDREN_CHANGEflash.events.Event オブジェクトの tabChildren フラグの値が変更されたときに送出されます。 keyUp ユーザーがキーを離したときに送出されます。flash.events.KeyboardEvent.KEY_UPflash.events.KeyboardEvent ユーザーがキーを離したときに送出されます。キーと特殊文字の間のマッピングはデバイスやオペレーティングシステムによって異なります。このタイプのイベントは、マッピングが発生してから、IME(入力メソッドエディター)が処理される前に生成されます。IME は、標準的な QWERTY キーボードでは十分に対応できない、中国語の漢字などの文字を入力するために使用されます。このイベントは keyDown イベントの後に発生し、次のような特性があります。 keyDown ユーザーがキーを押したときに送出されます。flash.events.KeyboardEvent.KEY_DOWNflash.events.KeyboardEvent ユーザーがキーを押したときに送出されます。キーと特殊文字の間のマッピングはデバイスやオペレーティングシステムによって異なります。このタイプのイベントは、マッピングが発生してから、IME(入力メソッドエディター)が処理される前に生成されます。IME は、標準的な QWERTY キーボードでは十分に対応できない、中国語の漢字などの文字を入力するために使用されます。このイベントは、keyUp イベントの前に発生します。

AIR の場合、このイベントをキャンセルすると、テキストフィールドに文字が入力されなくなります。

rightMouseUp ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。flash.events.MouseEvent.RIGHT_MOUSE_UPflash.events.MouseEvent ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。 rightMouseDown ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを押したときに送出されます。 flash.events.MouseEvent.RIGHT_MOUSE_DOWNflash.events.MouseEvent ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを押したときに送出されます。 rightClick ユーザーが同じ InteractiveObject 上でポインティングデバイスの右ボタンを押して離すと送出されます。flash.events.MouseEvent.RIGHT_CLICKflash.events.MouseEvent ユーザーが同じ InteractiveObject 上でポインティングデバイスの右ボタンを押して離すと送出されます。 rightClick イベントが発生するためには、rightMouseDown イベントに続いて rightMouseUp イベントが発生するという順序でなければなりません。 ターゲットオブジェクトは、これらのイベントの両方について同じでなければなりません。異なる場合、rightClick イベントは発生しません。 rightMouseDown イベントまたは rightMouseUp イベントの間に他の多数のマウスイベントが発生する場合があり、rightClick イベントは引き続き発生します。 middleMouseUp ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。flash.events.MouseEvent.MIDDLE_MOUSE_UPflash.events.MouseEvent ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。 middleMouseDown ユーザーが InteractiveObject インスタンス上でポインティングデバイスの中央ボタンを押したときに送出されます。 flash.events.MouseEvent.MIDDLE_MOUSE_DOWNflash.events.MouseEvent ユーザーが InteractiveObject インスタンス上でポインティングデバイスの中央ボタンを押したときに送出されます。 middleClick ユーザーが同じ InteractiveObject 上でポインティングデバイスの中央ボタンを押して離すと送出されます。flash.events.MouseEvent.MIDDLE_CLICKflash.events.MouseEvent ユーザーが同じ InteractiveObject 上でポインティングデバイスの中央ボタンを押して離すと送出されます。 middleClick イベントが発生するためには、middleMouseDown イベントに続いて middleMouseUp イベントが発生するという順序でなければなりません。 ターゲットオブジェクトは、これらのイベントの両方について同じでなければなりません。異なる場合、middleClick イベントは発生しません。 middleMouseDown イベントまたは middleMouseUp イベントの間に他の多数のマウスイベントが発生する場合があり、middleClick イベントは引き続き発生します。 gestureSwipe InteractiveObject インスタンスとの接触位置で、ユーザーがスワイプジェスチャを実行したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面に 3 本指で触れてから、表示オブジェクト上でその 3 本の指をそろえて動かした場合など)。flash.events.TransformGestureEvent.GESTURE_SWIPEflash.events.TransformGestureEvent InteractiveObject インスタンスとの接触位置で、ユーザーがスワイプジェスチャを実行したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面に 3 本指で触れてから、表示オブジェクト上でその 3 本の指をそろえて動かした場合など)。指をそろえて動かす動作は共通のスワイプジェスチャですが、スワイプの要件はデバイスやオペレーティングシステムによって異なります。一部のデバイスでは、この接触を複数のマウスイベントの組み合わせとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上に指を置いてから指を動かした際、InteractiveObject インスタンスから gestureSwipe イベントの他に、rollOver イベントおよび rollOut イベントを送出する場合があります。また、現在の環境でサポートされていれば、対象となるすべてのイベントが送出されることもあります。ユーザー操作の処理方法を選択してください。rollOver イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、gestureSwipe イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

イベントオブジェクトのプロパティを処理する際、localX および localY プロパティは初期接触位置に設定されます。offsetX および offsetY プロパティは、スワイプジェスチャの終点となる接触位置までの距離を表します。

注意:Mac OS オペレーティ グシステムを採用しているデバイスの中には 4 本指のスワイプを解釈できるものがありますが、この API でサポートされるのは、3 本指のスワイプのみです。

次の例は、GESTURE_SWIPE イベントのイベント処理を示しています。ユーザーがタッチ対応デバイスでスワイプジェスチャを実行しているときに、myTextField に all という段階が設定されます。スワイプイベントにはこの段階しかありません。 Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onSwipe(evt:TransformGestureEvent):void { if (evt.offsetX == 1 ) { myTextField.text = "right"; } if (evt.offsetY == -1) { myTextField.text = "up"; } myTextField.text = evt.phase; }
rollOver イベントtouchOver イベントflash.ui.Multitouch
gestureZoom InteractiveObject インスタンスとの接触位置で、ユーザーがズームジェスチャを実行したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面に 2 本指で触れてから、表示オブジェクト上でその 2 本の指をすばやく広げた場合など)。flash.events.TransformGestureEvent.GESTURE_ZOOMflash.events.TransformGestureEvent InteractiveObject インスタンスとの接触位置で、ユーザーがズームジェスチャを実行したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面に 2 本指で触れてから、表示オブジェクト上でその 2 本の指をすばやく広げた場合など)。指を広げる動作は共通のズームジェスチャですが、ズームを示す要件は、デバイスやオペレーティングシステムごとに異なります。一部のデバイスでは、この接触を複数のマウスイベントの組み合わせとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上に指を動かしてから 2 本の指を広げた際、InteractiveObject インスタンスから gestureZoom イベントの他に、mouseOver イベントおよび click イベントを送出する場合があります。また、現在の環境でサポートされている場合、対象となるすべてのイベントが送出されることもあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。mouseOver イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、gestureZoom イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

イベントオブジェクトのプロパティを処理する際、localX および localY プロパティは初期接触位置に設定されます。offsetX および offsetY プロパティは、ズームジェスチャの終点となる接触位置への距離です。

注意:環境互換性情報については、Multitouch クラスを参照してください。

次の例は、GESTURE_ZOOM イベントのイベント処理を示しています。ユーザーがタッチ対応デバイスでズームジェスチャを実行しているときに、myTextField に現在の段階が設定されます。 Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_ZOOM , onZoom); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onZoom(evt:TransformGestureEvent):void { evt.target.scaleX++; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
mouseOver イベントtouchOver イベントflash.ui.Multitouch
gestureRotate InteractiveObject インスタンスとの接触位置で、ユーザーが回転ジェスチャを実行したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面に 2 本指で触れ、その指を表示オブジェクト上で回転させる場合など)。flash.events.TransformGestureEvent.GESTURE_ROTATEflash.events.TransformGestureEvent InteractiveObject インスタンスとの接触位置で、ユーザーが回転ジェスチャを実行したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面に 2 本指で触れ、その指を表示オブジェクト上で回転させる場合など)。2 本の指による回転は、共通の回転ジェスチャですが、回転を示す要件は、デバイスやオペレーティングシステムごとに異なります。一部のデバイスでは、この接触を複数のマウスイベントの組み合わせとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上に指を動かすと、InteractiveObject インスタンスから gestureRotate イベントの他に、mouseOver イベントおよび click イベントを送出する場合があります。また、現在の環境でサポートされている場合、対象となるすべてのイベントが送出されることもあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。mouseOver イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、gestureRotate イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

イベントオブジェクトのプロパティを処理する際、localX および localY プロパティは初期接触位置に設定されます。offsetX および offsetY プロパティは、回転ジェスチャの終点となる接触位置への距離です。

注意:環境互換性情報については、Multitouch クラスを参照してください。

次の例は、GESTURE_ROTATE イベントのイベント処理を示しています。ユーザーがタッチ対応デバイスで回転ジェスチャを実行しているときに、mySprite が回転し、myTextField に現在の段階が設定されます。 Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_ROTATE , onRotate ); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onRotate(evt:TransformGestureEvent):void { evt.target.rotation -= 45; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
mouseOver イベントtouchOver イベントflash.ui.Multitouch
gesturePressAndTap タッチ対応デバイス上で、ユーザーが InteractiveObject インスタンスとの接触位置を形成してからタップしたときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面で、表示オブジェクト上に複数の指を置いてメニューを開いてから、1 本の指でタップしてメニューアイテムを選択する場合など)。flash.events.PressAndTapGestureEvent.GESTURE_PRESS_AND_TAPflash.events.PressAndTapGestureEvent タッチ対応デバイス上で、ユーザーが InteractiveObject インスタンスとの接触位置を形成してからタップしたときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面で、表示オブジェクト上に複数の指を置いてメニューを開いてから、1 本の指でタップしてメニューアイテムを選択する場合など)。一部のデバイスでは、この接触を複数のマウスイベントの組み合わせとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上に指を動かしてからもう一度タップした場合、InteractiveObject インスタンスから gesturePressAndTap イベントの他に、mouseOver イベントおよび click イベントを送出する場合があります。また、現在の環境でサポートされている場合、対象となるすべてのイベントが送出されることもあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。mouseOver イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、gesturePressAndTap イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

イベントオブジェクトのプロパティを処理する際、localX および localY プロパティは初期接触位置(「プッシュ」)に設定されます。offsetX および offsetY プロパティは、2 番目の接触位置(「タップ」)への距離です。

mouseOver イベントtouchOver イベントflash.ui.Multitouch
gesturePan タッチ対応デバイスで、ユーザーが InteractiveObject インスタンス上の接触位置でタッチポイントを移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話やタブレットの表示オブジェクト上で、指を左から右に動かす場合など)。flash.events.TransformGestureEvent.GESTURE_PANflash.events.TransformGestureEvent タッチ対応デバイスで、ユーザーが InteractiveObject インスタンス上の接触位置でタッチポイントを移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話やタブレットの表示オブジェクト上で、指を左から右に動かす場合など)。一部のデバイスでは、この接触を mouseOver イベントおよび touchOver イベントとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上に指を動かすと、InteractiveObject インスタンスから mouseOver イベント、touchOver イベント、gesturePan イベントのいずれか、または現在の環境でサポートされている場合はすべてのイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。mouseOver イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、gesturePan イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

次の例は、GESTURE_PAN イベントのイベント処理を示しています。ユーザーがタッチ対応デバイスでパンジェスチャを実行しているときに、myTextField に現在の段階が設定されます。 Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_PAN , onPan); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onPan(evt:TransformGestureEvent):void { evt.target.localX++; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
mouseOver イベントtouchOver イベントflash.ui.Multitouch
gestureTwoFingerTap タッチ対応デバイスで、ユーザーが同じ InteractiveObject インスタンス上の 2 つの接触位置を押したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの表示オブジェクト上を、2 本の指で押したり離したりする場合など)。flash.events.GestureEvent.GESTURE_TWO_FINGER_TAPflash.events.GestureEvent タッチ対応デバイスで、ユーザーが同じ InteractiveObject インスタンス上の 2 つの接触位置を押したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの表示オブジェクト上を、2 本の指で押したり離したりする場合など)。一部のデバイスでは、この接触を doubleClick イベントとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上を 2 本の指でタップすると、InteractiveObject インスタンスから doubleClick イベントまたは gestureTwoFingerTap イベントのいずれか、または現在の環境でサポートされている場合は両方のイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。doubleClick イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、gestureTwoFingerTap イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

doubleClick eventflash.ui.Multitouch
touchTap タッチ対応デバイスで、ユーザーが接触を開始した InteractiveObject インスタンスの同じ位置から指を離したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの表示オブジェクト上の 1 点を、指で押したり離したりする場合など)。flash.events.TouchEvent.TOUCH_TAPflash.events.TouchEvent タッチ対応デバイスで、ユーザーが接触を開始した InteractiveObject インスタンスの同じ位置から指を離したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの表示オブジェクト上の 1 点を、指で押したり離したりする場合など)。一部のデバイスでは、この接触を click イベントとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上を指でタップすると、InteractiveObject インスタンスから click イベントまたは touchTap イベントのいずれか、または現在の環境でサポートされている場合は両方のイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。click イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、touchTap イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

次の例は、タッチスクリーン上で mySprite に描かれた四角形をタップしたときに表示されるメッセージです。 Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT; var mySprite:Sprite = new Sprite(); var myTextField:TextField = new TextField(); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0,0,40,40); addChild(mySprite); mySprite.addEventListener(TouchEvent.TOUCH_TAP, taphandler); function taphandler(e:TouchEvent): void { myTextField.text = "I've been tapped"; myTextField.y = 50; addChild(myTextField); }
click イベントflash.ui.Multitouch
touchRollOver タッチ対応デバイスで、ユーザーが InteractiveObject インスタンス上で接触位置を移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットで、表示オブジェクトの外にある位置から表示オブジェクト上に指をドラッグする場合など)。flash.events.TouchEvent.TOUCH_ROLL_OVERflash.events.TouchEvent タッチ対応デバイスで、ユーザーが InteractiveObject インスタンス上で接触位置を移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットで、表示オブジェクトの外にある位置から表示オブジェクト上に指をドラッグする場合など)。一部のデバイスでは、この接触を rollOver イベントとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上で指を動かすと、InteractiveObject インスタンスから rollOver イベントまたは touchRollOver イベントのいずれか、または現在の環境でサポートされている場合は両方のイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。rollOver イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、touchRollOver イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

rollOver イベントflash.ui.Multitouch
touchRollOut ユーザーがタッチ対応デバイスの InteractiveObject インスタンス外に接触点を動かしたとき(例えば、タッチスクリーンを備えた携帯電話やタブレットで、表示オブジェクトから表示オブジェクト外に指をドラッグしたとき)に送出されます。flash.events.TouchEvent.TOUCH_ROLL_OUTflash.events.TouchEvent ユーザーがタッチ対応デバイスの InteractiveObject インスタンス外に接触点を動かしたとき(例えば、タッチスクリーンを備えた携帯電話やタブレットで、表示オブジェクトから表示オブジェクト外に指をドラッグしたとき)に送出されます。一部のデバイスでは、この接触を rollOut イベントとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上で指を動かすと、InteractiveObject インスタンスから rollOut イベントまたは touchRollOut イベントのいずれか、または現在の環境でサポートされている場合は両方のイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。rollOut イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、touchRollOut イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

rollOut イベントflash.ui.Multitouch
touchOver タッチ対応デバイスで、ユーザーが InteractiveObject インスタンス上で接触位置を移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットで、表示オブジェクトの外にある位置から表示オブジェクト上に指をドラッグする場合など)。flash.events.TouchEvent.TOUCH_OVERflash.events.TouchEvent タッチ対応デバイスで、ユーザーが InteractiveObject インスタンス上で接触位置を移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットで、表示オブジェクトの外にある位置から表示オブジェクト上に指をドラッグする場合など)。一部のデバイスでは、この接触を mouseOver イベントとして解釈する場合もあります。

具体的には、ユーザーが InteractiveObject 上で指を動かすと、InteractiveObject インスタンスから mouseOver イベントまたは touchOver イベントのいずれか、または現在の環境でサポートされている場合は両方のイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。mouseOver イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、touchOver イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

mouseOver イベントflash.ui.Multitouch
touchOut タッチ対応デバイスで、ユーザーが接触位置を InteractiveObject インスタンスの外に移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットで、1 つの表示オブジェクトから別の表示オブジェクトに指をドラッグする場合など)。flash.events.TouchEvent.TOUCH_OUTflash.events.TouchEvent タッチ対応デバイスで、ユーザーが接触位置を InteractiveObject インスタンスの外に移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットで、1 つの表示オブジェクトから別の表示オブジェクトに指をドラッグする場合など)。一部のデバイスでは、この接触を mouseOut イベントとして解釈する場合もあります。

具体的には、ユーザーがタッチスクリーン上で指を動かすと、InteractiveObject インスタンスから mouseOut イベントまたは touchOut イベントのいずれか、または現在の環境でサポートされている場合は両方のイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。mouseOut イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、touchOut イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

mouseOut イベントflash.ui.Multitouch
touchMove タッチ対応デバイスで、ユーザーが接触位置を移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレット上を指でドラッグする場合など)。flash.events.TouchEvent.TOUCH_MOVEflash.events.TouchEvent タッチ対応デバイスで、ユーザーが接触位置を移動したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレット上を指でドラッグする場合など)。一部のデバイスでは、この接触を mouseMove イベントとして解釈する場合もあります。

具体的には、ユーザーがタッチスクリーン上で指を動かすと、InteractiveObject インスタンスから mouseMove イベントまたは touchMove イベントのいずれか、または現在の環境でサポートされている場合は両方のイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。mouseMove イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、touchMove イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

次の例は、TOUCH_BEGIN イベント、TOUCH_MOVE イベントおよび TOUCH_END イベントのイベント処理を示しています。 接触ポイントを画面上で移動しているときに(onTouchMove)、ステージを基準に X 軸がトレースされて表示されます。 onTouchBegin 関数の Sprite.startTouchDrag パラメーターでは、touchPointID の値は、イベントオブジェクトに割り当てられた値になります。bounds パラメーターは矩形を表し、親の表示オブジェクト(bg は MySprite を含む表示オブジェクト)の境界を定義しています。 Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(eBegin:TouchEvent) { eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchMove(eMove:TouchEvent) { trace(eMove.stageX); } function onTouchEnd(eEnd:TouchEvent) { eEnd.target.stopTouchDrag(eEnd.touchPointID); trace("touch end"); }
mouseMove イベントflash.ui.Multitouch
touchEnd タッチ対応デバイスで、ユーザーが接触を解除したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面から指を離す場合など)。flash.events.TouchEvent.TOUCH_ENDflash.events.TouchEvent タッチ対応デバイスで、ユーザーが接触を解除したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面から指を離す場合など)。一部のデバイスでは、この接触を mouseUp イベントとして解釈する場合もあります。

具体的には、ユーザーがタッチスクリーンから指を離すと、InteractiveObject インスタンスから mouseUp イベントまたは touchEnd イベントのいずれか、または現在の環境でサポートされている場合は両方のイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。mouseUp イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、touchEnd イベントを処理するように選択すると、タッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

次の例は、TOUCH_BEGIN イベント、TOUCH_MOVE イベントおよび TOUCH_END イベントのイベント処理を示しています。 接触ポイントを画面上で移動しているときに(onTouchMove)、ステージを基準に X 軸がトレースされて表示されます。 onTouchBegin 関数の Sprite.startTouchDrag パラメーターでは、touchPointID の値は、イベントオブジェクトに割り当てられた値になります。bounds パラメーターは矩形を表し、親の表示オブジェクト(bg は MySprite を含む表示オブジェクト)の境界を定義しています。 Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(eBegin:TouchEvent) { eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchMove(eMove:TouchEvent) { trace(eMove.stageX); } function onTouchEnd(eEnd:TouchEvent) { eEnd.target.stopTouchDrag(eEnd.touchPointID); trace("touch end"); }
mouseUp イベントflash.ui.Multitouch
touchBegin タッチ対応デバイスにユーザーが初めて接触したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面に指で触れる場合など)。flash.events.TouchEvent.TOUCH_BEGINflash.events.TouchEvent タッチ対応デバイスにユーザーが初めて接触したときに送出されます(例えば、タッチスクリーン搭載の携帯電話またはタブレットの画面に指で触れる場合など)。一部のデバイスでは、この接触を mouseDown イベントとして解釈する場合もあります。

具体的には、ユーザーがタッチスクリーンに指で触れると、InteractiveObject インスタンスから mouseDown イベントまたは touchBegin イベントのいずれか、または現在の環境でサポートされている場合は両方のイベントを送出することがあります。ユーザー操作の処理方法を選択してください。タッチイベントの処理を管理するには、flash.ui.Multitouch クラスを使用します。タッチジェスチャのイベント処理や単純なタッチポイントのイベント処理の有効化、タッチイベントを無効化してマウスイベントだけが送出されるようにするなどの処理が可能です。mouseDown イベントを処理するように選択すると、タッチ対応デバイスとマウス対応デバイスの両方で、同じイベントハンドラーが実行されます。ただし、touchBegin イベントを処理するように選択するとタッチ対応環境固有の要件に合わせてイベントハンドラーを設計して、より優れたタッチ操作のユーザーエクスペリエンスを実現できます。両方のイベントを個別に処理することもできます。これにより、タッチイベントとマウスイベントにそれぞれ異なる応答を返すことができます。

注意:環境互換性情報については、Multitouch クラスを参照してください。

次の例は、TOUCH_BEGIN イベント、TOUCH_MOVE イベントおよび TOUCH_END イベントのイベント処理を示しています。 接触ポイントを画面上で移動しているときに(onTouchMove)、ステージを基準に X 軸がトレースされて表示されます。 onTouchBegin 関数の Sprite.startTouchDrag パラメーターでは、touchPointID の値は、イベントオブジェクトに割り当てられた値になります。bounds パラメーターは矩形を表し、親の表示オブジェクト(bg は MySprite を含む表示オブジェクト)の境界を定義しています。 Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(eBegin:TouchEvent) { eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchMove(eMove:TouchEvent) { trace(eMove.stageX); } function onTouchEnd(eEnd:TouchEvent) { eEnd.target.stopTouchDrag(eEnd.touchPointID); trace("touch end"); }
mouseDown イベントflash.ui.Multitouch
rollOver ユーザーが InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。flash.events.MouseEvent.ROLL_OVERflash.events.MouseEvent ユーザーが InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。イベントターゲットは、ポインティングデバイスの下に置かれていたオブジェクトか、そのオブジェクトの親です。relatedObject は、直前にポインティングデバイスの下に置かれていたオブジェクトです。rollOver イベントは、そのオブジェクトの親チェーンを relatedObject のルートでも祖先でもない最高位の親から始めて下方向にたどっていき、そのオブジェクトに至るまで連続して送出されます。

rollOver イベントは、子を持つ表示オブジェクトコンテナのロールアウト動作のコーディングを単純化するためのものです。表示オブジェクトの子ではないオブジェクトから、表示オブジェクトの領域か、その子の領域にマウスが入るとき、表示オブジェクトは rollOver イベントを送出します。これは mouseOver イベントとは異なります。mouseOver イベントは、マウスが表示オブジェクトコンテナの子オブジェクトの領域に入る際には、そのマウスが表示オブジェクトコンテナの別の子オブジェクト上に既に置かれていた場合でも、毎回送出されます。

rollOut ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。flash.events.MouseEvent.ROLL_OUTflash.events.MouseEvent ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。イベントターゲットは、直前にポインティングデバイスの下に置かれていたオブジェクトか、そのオブジェクトの親です。relatedObject はポインティングデバイスの移動先のオブジェクトです。rollOut イベントは、そのオブジェクトの親チェーンをそのオブジェクトから始めて上方向にたどっていき、relatedObject のルートでも祖先でもない最高位の親に至るまで連続して送出されます。

rollOut イベントは、子を持つ表示オブジェクトコンテナのロールオーバー動作のコーディングを単純化するためのものです。マウスが表示オブジェクトの領域かその子の領域から出て、その子の一部ではないオブジェクトに進む場合、表示オブジェクトは rollOut イベントを送出します。これは mouseOut イベントとは異なります。mouseOut イベントは、マウスが表示オブジェクトコンテナの子オブジェクトの領域から出る際には、そのマウスが表示オブジェクトコンテナの別の子オブジェクト上にある場合でも、毎回送出されます。

mouseWheel マウスホイールが InteractiveObject インスタンス上を回転するときに送出されます。flash.events.MouseEvent.MOUSE_WHEELflash.events.MouseEvent マウスホイールが InteractiveObject インスタンス上を回転するときに送出されます。 ターゲットがテキストフィールドである場合、デフォルトの動作ではテキストはスクロールします。Microsoft Windows オペレーティングシステムでのみ使用できます。 mouseUp ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。flash.events.MouseEvent.MOUSE_UPflash.events.MouseEvent ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。 ターゲットが SimpleButton インスタンスである場合、オブジェクトは upState 表示オブジェクトを表示します。ターゲットが選択可能なテキストフィールドである場合、デフォルトの動作ではテキストフィールドの選択が終了します。 mouseOver ユーザーが InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。flash.events.MouseEvent.MOUSE_OVERflash.events.MouseEvent ユーザーが InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。relatedObject は、直前にポインティングデバイスの下に置かれていたオブジェクトです。ターゲットが SimpleButton インスタンスである場合、オブジェクトはデフォルトの動作として、マウスボタンが押されているかどうかに応じて、オブジェクトは overState または upState 表示オブジェクトを表示します。

mouseOver イベントは、表示オブジェクトコンテナの別の子オブジェクト上に既にマウスがあった場合でも、表示オブジェクトコンテナの子オブジェクトの領域にマウスが入るたびに送出されます。これは、rollOver イベントの目的の動作とは異なります。この動作は、子を持つ表示オブジェクトコンテナのロールアウト動作のコーディングを単純化するためのものです。表示オブジェクトの子ではないオブジェクトから、表示オブジェクトの領域か、その子の領域にマウスが入るとき、表示オブジェクトは rollOver イベントを送出します。rollOver イベントは、そのオブジェクトの親チェーンを relatedObject のルートでも祖先でもない最高位の親から始めて下方向にたどっていき、そのオブジェクトに至るまで連続して送出されます。

mouseOut ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。flash.events.MouseEvent.MOUSE_OUTflash.events.MouseEvent ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。イベントターゲットは、直前にポインティングデバイスの下に置かれていたオブジェクトです。relatedObject はポインティングデバイスの移動先のオブジェクトです。ターゲットが SimpleButton インスタンスである場合、デフォルトの動作ではボタンは upState 表示オブジェクトを表示します。

mouseOut イベントは、表示オブジェクトコンテナの別の子オブジェクト上にマウスが残る場合でも、表示オブジェクトコンテナの子オブジェクトの領域からマウスが出るたびに送出されます。これは、rollOut イベントの目的の動作とは異なります。この動作は、子を持つ表示オブジェクトコンテナのロールオーバー動作のコーディングを単純化するためのものです。表示オブジェクトの領域か、その子の領域からマウスが出て、その表示オブジェクトの子ではないオブジェクトに進む場合、表示オブジェクトは rollOut イベントを送出します。rollOut イベントは、そのオブジェクトの親チェーンを上方向にたどり、連続して送出されます。チェーンの開始はそのオブジェクトで、終わりは relatedObject のルートでも祖先でもない最高位の親です。

mouseMove InteractiveObject の上で、ユーザーがポインティングデバイスを移動させたときに送出されます。flash.events.MouseEvent.MOUSE_MOVEflash.events.MouseEvent InteractiveObject の上で、ユーザーがポインティングデバイスを移動させたときに送出されます。ターゲットがユーザーの選択するテキストフィールドである場合、選択はデフォルトの動作で更新されます。 mouseDown ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを押したときに送出されます。 flash.events.MouseEvent.MOUSE_DOWNflash.events.MouseEvent ユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを押したときに送出されます。 ターゲットが SimpleButton インスタンスである場合、デフォルトの動作では SimpleButton インスタンスは downState 表示オブジェクトを表示します。ターゲットが選択可能なテキストフィールドである場合、デフォルトの動作ではテキストフィールドの選択が開始されます。 doubleClick オブジェクトの doubleClickEnabled フラグが true に設定されている場合にユーザーが InteractiveObject をポインティングデバイスのメインボタンで 2 回続けてすばやくクリックすると送出されます。flash.events.MouseEvent.DOUBLE_CLICKflash.events.MouseEvent オブジェクトの doubleClickEnabled フラグが true に設定されている場合には、ユーザーが同じ InteractiveObject 上でポインティングデバイスのメインボタンを 2 回続けてすばやく押して離すと送出されます。doubleClick イベントが発生するためには、mouseDownmouseUpclickmouseDownmouseUp の一連のイベントの直後でなければなりません。これらのすべてのイベントは、doubleClick イベントと同じターゲットを共有している必要があります。2 回目の mouseDown イベントと mouseUp イベントによって表される 2 回目のクリックは、click イベント後の特定の期間内に発生する必要があります。この期間の設定可能な長さは、オペレーティングシステムによって異なり、ほとんどの場合ユーザーが設定できます。ターゲットが選択可能なテキストフィールドである場合、デフォルトの動作ではポインターの下の語が選択されます。ターゲットの InteractiveObject の doubleClickEnabled フラグが true に設定されていない場合、2 つの click イベントを受け取ります。

doubleClickEnabled プロパティのデフォルト値は false です。

TextField オブジェクトのダブルクリックによるテキスト選択の動作は、doubleClick イベントとは無関係です。TextField.doubleClickEnabled を使用して TextField の選択を制御します。

doubleClickEnabled
click ユーザーが同じ InteractiveObject 上でポインティングデバイスのメインボタンを押して離すと送出されます。flash.events.MouseEvent.CLICKflash.events.MouseEvent ユーザーが同じ InteractiveObject 上でポインティングデバイスのメインボタンを押して離すと送出されます。クリックイベントが発生するためには、mouseDown イベントに続いて mouseUp イベントが発生するという順序でなければなりません。ターゲットオブジェクトは、これらのイベントの両方について同じでなければなりません。異なる場合、click イベントは発生しません。mouseDown イベントまたは mouseUp イベントの間に他の多数のマウスイベントが発生する場合があり、click イベントは引き続き発生します。 mouseFocusChange ユーザーがポインティングデバイスでフォーカスを変更しようとすると送出されます。flash.events.FocusEvent.MOUSE_FOCUS_CHANGEflash.events.FocusEvent ユーザーがポインティングデバイスでフォーカスを変更しようとすると送出されます。このイベントのデフォルトの動作では、フォーカスを変更して、対応する focusIn イベントと focusOut イベントを送出します。

このイベントは、現在フォーカスを持っているオブジェクトに送出されます。このイベントの関連オブジェクトは、デフォルトの動作を変更していない場合は、フォーカスを受け取る InteractiveObject インスタンスです。ターゲットオブジェクトに正しく登録されているイベントリスナーで preventDefault() を呼び出すことによって、フォーカスを変更できないようにすることができます。shiftKey プロパティは使用されません。フォーカスが変更され、デフォルトでは focusIn および focusOut イベントが送出されます。

keyFocusChange ユーザーがキーボード操作によってフォーカスを変更しようとすると送出されます。flash.events.FocusEvent.KEY_FOCUS_CHANGEflash.events.FocusEvent ユーザーがキーボード操作によってフォーカスを変更しようとすると送出されます。このイベントのデフォルトの動作では、フォーカスを変更して、対応する focusIn イベントと focusOut イベントを送出します。

このイベントは、現在フォーカスを持っているオブジェクトに送出されます。このイベントの関連オブジェクトは、デフォルトの動作を変更していない場合は、フォーカスを受け取る InteractiveObject インスタンスです。ターゲットオブジェクトに正しく登録されているイベントリスナーで preventDefault() メソッドを呼び出すことによって、フォーカスを変更不可にできます。フォーカスが変更され、デフォルトでは focusIn および focusOut イベントが送出されます。

focusOut 表示オブジェクトがフォーカスを失った後に送出されます。flash.events.FocusEvent.FOCUS_OUTflash.events.FocusEvent 表示オブジェクトがフォーカスを失った後に送出されます。これは、ポインティングデバイスまたはキーボードによる操作で別のオブジェクトをハイライトするときに生じます。フォーカスを失うオブジェクトはこのイベントのターゲットオブジェクトと呼ばれ、フォーカスを受け取る対応する InteractiveObject インスタンスは関連オブジェクトと呼ばれます。関連オブジェクトへの参照は、ターゲットオブジェクトの relatedObject プロパティに格納されます。shiftKey プロパティは使用されません。このイベントは、関連オブジェクトから focusIn イベントが送出される前に発生します。 focusIn 表示オブジェクトがフォーカスを取得した後に送出されます。flash.events.FocusEvent.FOCUS_INflash.events.FocusEvent 表示オブジェクトがフォーカスを取得した後に送出されます。この状況は、ポインティングデバイスまたはキーボードによる操作でオブジェクトをハイライトするときに生じます。そのようなフォーカスの受け取り側はこのイベントのターゲットオブジェクトと呼ばれ、この変更によってフォーカスを失う対応する InteractiveObject インスタンスは関連オブジェクトと呼ばれます。関連オブジェクトへの参照は、受信側オブジェクトの relatedObject プロパティに格納されます。shiftKey プロパティは使用されません。このイベントは、前のオブジェクトの focusOut イベントが送出された後に発生します。 selectAll ユーザーがすべて選択操作のためにプラットフォーム固有のアクセラレーターキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「すべて選択」を選択した場合に送出されます。flash.events.Event.SELECT_ALLflash.events.Event ユーザーがすべて選択操作のためにプラットフォーム固有のアクセラレーターキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「すべて選択」を選択した場合に送出されます。このイベントは、現在フォーカスを持っているオブジェクトに送出されます。現在フォーカスを持っているオブジェクトが TextField である場合、このイベントのデフォルトの動作では、テキストフィールドのすべてのコンテンツが選択されます。 paste ユーザーがペースト操作のためにプラットフォーム固有のアクセラレーターキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「ペースト」を選択した場合に送出されます。flash.events.Event.PASTEflash.events.Event ユーザーがペースト操作のためにプラットフォーム固有のアクセラレーターキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「ペースト」を選択した場合に送出されます。このイベントは、現在フォーカスを持っているオブジェクトに送出されます。現在フォーカスを持っているオブジェクトが TextField である場合、このイベントのデフォルトの動作では、クリップボードのコンテンツが現在の挿入ポイントのテキストフィールドにペーストされ、そのテキストフィールドで現在選択されているテキストが置き換えられます。 cut ユーザーがカット操作のためにプラットフォーム固有のアクセラレーターキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「カット」を選択した場合に送出されます。flash.events.Event.CUTflash.events.Event ユーザーがカット操作のためにプラットフォーム固有のアクセラレーターキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「カット」を選択した場合に送出されます。このイベントは、現在フォーカスを持っているオブジェクトに送出されます。現在フォーカスを持っているオブジェクトが TextField である場合、このイベントのデフォルトの動作では、そのテキストフィールド内で現在選択されているテキストがクリップボードにカットされます。 copy ユーザーがコピー操作のためにプラットフォーム固有のアクセラレーターキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「コピー」を選択した場合に送出されます。flash.events.Event.COPYflash.events.Event ユーザーがコピー操作のためにプラットフォーム固有のアクセラレーターキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「コピー」を選択した場合に送出されます。このイベントは、現在フォーカスを持っているオブジェクトに送出されます。現在フォーカスを持っているオブジェクトが TextField である場合、このイベントのデフォルトの動作では、そのテキストフィールド内で現在選択されているテキストがクリップボードにコピーされます。 clear ユーザーがコンテキストメニューから「削除」を選択した場合に送信されます。flash.events.Event.CLEARflash.events.Event ユーザーがコンテキストメニューから「削除」を選択した場合に送信されます。このイベントは、現在フォーカスを持っているオブジェクトに送出されます。現在フォーカスを持っているオブジェクトが TextField である場合、このイベントのデフォルトの動作では、そのテキストフィールド内で現在選択されているテキストが削除されます。 InteractiveObject 新しい InteractiveObject() コンストラクターを呼び出すと、ArgumentError 例外がスローされます。 new InteractiveObject() コンストラクターを呼び出すと、ArgumentError 例外がスローされます。しかし、InteractiveObject の以下に示すサブクラスのコンストラクターを呼び出すことができます。
  • new SimpleButton()
  • new TextField()
  • new Loader()
  • new Sprite()
  • new MovieClip()
requestSoftKeyboard 仮想キーボードを前面に表示します。true はソフトキーボードの要求が許可されたことを、値 false はソフトキーボードが前面に表示されなかったことを、それぞれ意味します。 Boolean現在のコンテンツでサポートされている場合に、キーボードを表示します。 仮想キーボードを前面に表示します。

このメソッドを呼び出すと、InteractiveObject インスタンスがフォーカスされ、必要に応じて、ソフトキーボードが前面に表示されます。needsSoftKeyboardtrue であることも必要です。ハードウェアキーボードが使用できる場合、またはクライアントシステムが仮想キーボードをサポートしていない場合は、キーボードが前面に表示されることはありません。

注意:このメソッドは、iOS 上の AIR アプリケーションではサポートされていません。

needsSoftKeyboard
accessibilityImplementation この InteractiveObject インスタンスの現在のアクセシビリティの実装(AccessibilityImplementation)です。flash.accessibility:AccessibilityImplementation この InteractiveObject インスタンスの現在のアクセシビリティの実装(AccessibilityImplementation)です。 flash.accessibility.AccessibilityImplementationcontextMenu このオブジェクトに関連付けられたコンテキストメニューを指定します。flash.display:NativeMenuこのオブジェクトに関連付けられたコンテキストメニュー このオブジェクトに関連付けられたコンテキストメニューを指定します。

Flash Player で実行されているコンテンツでは、このプロパティは ContextMenu オブジェクトです。 AIR ランタイムでは、ContextMenu クラスは NativeMenu クラスを拡張します。ただし、Flash Player では、ContextMenu クラスのみサポートしており、NativeMenu クラスはサポートしていません。

注意:TextField オブジェクトのコンテキストメニューには、クリップボードメニューが常に含まれます。クリップボードメニューには「カット」、「コピー」、「ペースト」、「クリア」および「すべて選択」コマンドがあります。これらのコマンドを TextField オブジェクトのコンテキストメニューから削除することはできません。TextField オブジェクトでこれらのコマンドを選択(または相当するキーボード操作を実行)する際、clearcopycutpaste および selectAll 各イベントは生成されません。

次の例では、Sprite の contextMenu プロパティを ContextMenu オブジェクトに設定して、Sprite オブジェクトにカスタムコンテキストメニューアイテムを追加する方法を示します。この例は ActionScriptExamples.com で提供されています。 var red_cmi:ContextMenuItem = new ContextMenuItem("red"); red_cmi.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, cmi_menuItemSelect); var cm:ContextMenu = new ContextMenu(); cm.customItems.push(red_cmi); cm.hideBuiltInItems(); var spr:Sprite = new Sprite(); spr.contextMenu = cm; spr.graphics.beginFill(0x000000); spr.graphics.drawRect(0, 0, 120, 90); spr.graphics.endFill(); spr.x = 10; spr.y = 10; addChild(spr); function cmi_menuItemSelect(evt:ContextMenuEvent):void { spr.graphics.clear(); spr.graphics.beginFill(0xFF0000); spr.graphics.drawRect(0, 0, 120, 90); spr.graphics.endFill(); }
doubleClickEnabled オブジェクトが doubleClick イベントを受け取るかどうかを指定します。Booleanこのオブジェクトがダブルクリックメッセージを受け取るかどうかを指定します。 オブジェクトが doubleClick イベントを受け取るかどうかを指定します。デフォルト値は false です。これは、InteractiveObject インスタンスがデフォルトでは doubleClick イベントを受け取らないことを意味します。doubleClickEnabled プロパティがtrue に設定される場合、インスタンスはその境界内で doubleClick イベントを受け取ります。InteractiveObject インスタンスの mouseEnabled プロパティもtrue に設定する必要があります。この設定は、オブジェクトが doubleClick イベントを受け取るようにするには必須です。

このプロパティを設定しても、イベントは送出されません。addEventListener() メソッドの使用は、doubleClick イベントのイベントリスナーを追加する場合に必須です。

doubleClickmouseEnabledflash.display.DisplayObjectContainer.mouseChildren
focusRect このオブジェクトがフォーカス矩形を表示するかどうかを指定します。Object このオブジェクトがフォーカス矩形を表示するかどうかを指定します。truefalse または null の 3 つの値のいずれかを指定できます。true および false の値は、予想されるとおり、フォーカス矩形を表示するかどうかが指定されます。null 値は、このオブジェクトが Stage の stageFocusRect プロパティに従うことを示します。 mouseEnabled このオブジェクトでマウスまたはその他のユーザー入力メッセージを受け取るかどうかを指定します。Boolean このオブジェクトでマウスまたはその他のユーザー入力メッセージを受け取るかどうかを指定します。デフォルト値は true であり、これは表示リスト上の InteractiveObject インスタンスがデフォルトでマウスイベントまたはその他のユーザー入力イベントを受け取ることを意味します。mouseEnabledfalse に設定すると、インスタンスでは、マウスイベント(またはキーボードイベントなど、その他のユーザー入力イベント)を一切受け取りません。表示リスト上のこのインスタンスの子は影響を受けません。表示リスト上のオブジェクトのすべての子に関する mouseEnabled 動作を変更するには、flash.display.DisplayObjectContainer.mouseChildren を使用します。

このプロパティを設定しても、イベントは送出されません。インタラクティブな機能を作成するには、addEventListener() メソッドを使用する必要があります。

flash.display.DisplayObjectContainer.mouseChildren
needsSoftKeyboard この InteractiveObject インスタンスがフォーカスを受け取ったときに、仮想キーボード(画面上のソフトキーボード)を表示するかどうかを指定します。Boolean この InteractiveObject インスタンスがフォーカスを受け取ったときに、仮想キーボード(画面上のソフトキーボード)を表示するかどうかを指定します。

デフォルトでは、この値は false で、フォーカスを受け取った InteractiveObject インスタンスはソフトキーボードを前面に表示しません。needsSoftKeyboard プロパティが true に設定されると、InteractiveObject インスタンスがユーザー入力を受け付けられる状態になったときに、ランタイムによってソフトキーボードが前面に表示されます。InteractiveObject インスタンスは、ステージの focus プロパティを設定するプログラムの呼び出し、またはタップなどのユーザーの操作の後で、ユーザー入力を受け付けられる状態になります。クライアントシステムに使用できるハードウェアキーボードがない場合、またはクライアントシステムが仮想キーボードをサポートしていない場合は、ソフトキーボードは前面に表示されません。

ソフトキーボードが前面に表示されたとき、および背後に移動したとき、InteractiveObject インスタンスは softKeyboardActivatingsoftKeyboardActivate および softKeyboardDeactivate イベントを送出します。

注意:このプロパティは、iOS 上の AIR アプリケーションではサポートされていません。

softKeyboardActivatingsoftKeyboardActivatesoftKeyboardDeactivate
softKeyboardInputAreaOfInterest ソフトキーボードが表示されたときに画面に表示したままにする領域を定義します。flash.geom:Rectangleソフトキーボードが開かれたときに画面に表示する領域を設定します。 ソフトキーボードが表示されたときに画面に表示したままにする領域を定義します。

この InteractiveObject の needsSoftKeyboard プロパティを true に設定すると、ランタイムによって、ユーザーの入力中にオブジェクトを表示したままにするために必要な調整が行われます。通常、ランタイムでは、DisplayObject.getBounds() メソッドから取得したオブジェクトの境界を使用します。この softKeyboardInputAreaOfInterest プロパティを使用すると、異なる領域を指定することができます。

softKeyboardInputAreaOfInterest をステージ座標で指定します。

注意:Android では、softKeyboardInputAreaOfInterest は横置きについては考慮されていません。

flash.display.DisplayObject.getBounds()
tabEnabled このオブジェクトがタブ順序に含まれるかどうかを指定します。Booleanこのオブジェクトがタブ順序に含まれるかどうかを指定します。 このオブジェクトがタブ順序に含まれるかどうかを指定します。このオブジェクトがタブ順序に含まれる場合、値は true です。含まれない場合、値は false です。デフォルトでは、次の例外を除き、値は false です。
  • SimpleButton オブジェクトの場合、この値は true です。
  • type = "input" を持つ TextField オブジェクトの場合、値は true です。
  • buttonMode = true を持つ Sprite オブジェクトまたは MovieClip オブジェクトの場合、値は true です。
tabIndex SWF ファイル内のオブジェクトのタブ順序を指定します。intこのオブジェクトのタブインデックス。 SWF ファイル内のオブジェクトのタブ順序を指定します。デフォルトでは tabIndex プロパティは -1 であり、これはそのオブジェクトにタブインデックスが設定されないことを意味します。

SWF ファイルに現在表示されているオブジェクトに tabIndex プロパティがある場合は、自動タブ順序が無効になり、SWF ファイルのオブジェクトの tabIndex プロパティからタブ順序が計算されます。カスタムタブ順序には、tabIndex プロパティを持つオブジェクトのみが含まれます。

tabIndex プロパティは、通常、負以外の整数です。オブジェクトのタブ順序は、その tabIndex プロパティに従って昇順に決定されます。tabIndex の値が 1 であるオブジェクトは、tabIndex の値が 2 であるオブジェクトの前になります。複数のオブジェクトの tabIndex に同じ値を使用しないでください。

tabIndexプロパティで定義されるカスタムタブ順序は flat です。つまり、SWF ファイル内のオブジェクトの階層関係は無視されます。SWF ファイルで tabIndex プロパティを持つすべてのオブジェクトは、タブ順序に従って配置されます。タブ順序は tabIndex の値の順番に従います。

注意:TLFTextField インスタンスのタブ順序を設定するには、TLFTextField の表示オブジェクトの子を InteractiveObject としてキャストしてから、tabIndex プロパティを設定します。次に実際の使用例を示します。

	 InteractiveObject(tlfInstance.getChildAt(1)).tabIndex = 3;
	 
TLFTextField オブジェクトの 3 つのインスタンス(tlfInstance1tlfInstance2 および tlfInstance3)について、デフォルト設定のタブ順序を逆にするには、次のようにします。
	 InteractiveObject(tlfInstance1.getChildAt(1)).tabIndex = 3;
	 InteractiveObject(tlfInstance2.getChildAt(1)).tabIndex = 2;
	 InteractiveObject(tlfInstance3.getChildAt(1)).tabIndex = 1;
	 

GraphicsTrianglePath (u,v)塗り座標または通常の塗りのいずれかを使用してレンダリングが可能な、順序付けられた 1 セットの三角形を定義します。flash.display:IGraphicsPathflash.display:IGraphicsDataObject (u,v)塗り座標または通常の塗りのいずれかを使用してレンダリングが可能な、順序付けられた 1 セットの三角形を定義します。パス内にある各三角形は 3 セットの(x, y)座標で表され、それぞれが三角形の 1 点となります。

三角形の頂点には z 座標は含まれず、必ずしも 3D 面を表すとは限りません。しかし、三角形パスを使用して、2D 空間での 3D ジオメトリのレンダリングをサポートすることは可能です。

flash.display.Graphics.drawTriangles()GraphicsTrianglePath 新しい GraphicsTrianglePath オブジェクトを作成します。verticesnullNumber の Vector で、数値の各ペアはポイント(x と y のペア)として扱われます。必須です。 indicesnull整数またはインデックスの Vector です。3 つのインデックスごとに三角形が定義されます。 uvtDatanullテクスチャマッピングを適用するために使用される正規化座標の Vector です。 cullingStringnone特定の方向に面する三角形をレンダリングするかどうかを指定します。現在のビューで見えない三角形のレンダリングを避けるのに使用します。TriangleCulling クラスで定義された任意の値に設定できます。 新しい GraphicsTrianglePath オブジェクトを作成します。 cullingflash.display.TriangleCullingindices 整数またはインデックスの Vector です。3 つのインデックスごとに三角形が定義されます。 整数またはインデックスの Vector です。3 つのインデックスごとに三角形が定義されます。indexes パラメーターが null の場合、3 つの頂点(vertices Vector 内の 6 つの x、y ペア)ごとに三角形が定義されます。null でない場合、各インデックスは頂点(vertices Vector 内の数値のペア)を参照します。 例えば、indexes[1] は(vertices[2], vertices[3])を参照します。 uvtData テクスチャマッピングを適用するために使用される正規化座標の Vector です。 テクスチャマッピングを適用するために使用される正規化座標の Vector です。各座標は、塗りに使用されるビットマップ上のポイントを参照します。頂点ごとに 1 つの UV 座標または 1 つの UVT 座標が必要です。

UV 座標では、(0,0)はビットマップの左上隅で、(1,1)はビットマップの右下隅です。

このベクターの長さが vertices ベクターの 2 倍である場合、外見上の修正を行うことなく、正規化座標が使用されます。

このベクターの長さが vertices ベクターの 3 倍である場合、3 番目の座標は、「t」(視点空間における視点からテクスチャまでの距離)として解釈されます。これにより、3D でテクスチャをマッピングする場合に、レンダリングエンジンが外観を正しく適用できるようになります。

vertices Number の Vector で、数値の各ペアはポイント(x と y のペア)として扱われます。 Number の Vector で、数値の各ペアはポイント(x と y のペア)として扱われます。 culling 特定の方向に面する三角形をレンダリングするかどうかを指定します。String 特定の方向に面する三角形をレンダリングするかどうかを指定します。現在のビューで見えない三角形のレンダリングを避けるのに使用します。

TriangleCulling クラスで定義された任意の値に設定できます。

flash.display.TriangleCulling
DisplayObject DisplayObject クラスは、表示リストに含めることのできるすべてのオブジェクトに関する基本クラスです。flash.display:IBitmapDrawableflash.events:EventDispatcher DisplayObject クラスは、表示リストに含めることのできるすべてのオブジェクトに関する基本クラスです。表示リストでは、Flash ランタイムに表示されるすべてのオブジェクトを管理します。DisplayObjectContainer クラスは、表示リスト内で表示オブジェクトを配置するために使用します。DisplayObjectContainer オブジェクトは子表示オブジェクトを持つことができます。これに対して、他の表示オブジェクト(例えば Shape、TextField オブジェクト)は「リーフ」ノードです。つまり、親と兄弟だけを持ち、子はありません。

DisplayObject クラスは、基本機能(例えばオブジェクトの x 方向および y 方向の位置)に加えて、オブジェクトの拡張プロパティ(例えば変換マトリックス)をサポートします。

DisplayObject は抽象基本クラスであるため、DisplayObject を直接呼び出すことはできません。new DisplayObject() を呼び出すと ArgumentError 例外がスローされます。

すべての表示オブジェクトは DisplayObject クラスから継承します。

DisplayObject クラス自体は、画面上でのコンテンツの描画のための API を含みません。そのため、DisplayObject クラスのカスタムサブクラスを作成する場合は、Shape、Sprite、Bitmap、SimpleButton、TextField または MovieClip など、画面上にコンテンツを描画する API を持つサブクラスの 1 つを拡張する必要があります。

DisplayObject クラスには、複数のブロードキャストイベントが含まれます。通常、個々のイベントのターゲットは、特定の DisplayObject インスタンスです。例えば、added イベントのターゲットは、表示リストに追加された特定の DisplayObject インスタンスです。単一のターゲットを持つことにより、イベントリスナーの配置が、そのターゲット(および場合によっては表示リスト上のターゲットの祖先)に制限されます。ただし、ブロードキャストイベントの場合は、ターゲットが特定の DisplayObject インスタンスではなく、表示リストに含まれていない DisplayObject インスタンスを含む、すべての DisplayObject インスタンスになります。これは、任意の DisplayObject インスタンスにリスナーを追加して、ブロードキャストイベントを監視できることを意味します。DisplayObject クラスは、DisplayObject クラスの Events テーブルにリストされたブロードキャストイベントだけでなく、EventDispatcher クラスのブロードキャストイベントである activatedeactivate も継承します。

ActionScript 1.0 および 2.0 の MovieClip、TextField、および Button クラスで使用されていたいくつかのプロパティ(例えば _alpha_height_name_width_x_y など)と同等のプロパティが、ActionScript 3.0 DisplayObject クラスに存在します。これらの名前は変更され、アンダースコア(_)文字では始まりません。

詳しくは、『ActionScript 3.0 開発ガイド』の「表示のプログラミング」の章を参照してください。

DisplayObjectExample クラスを使用して、オレンジ色の四角形をステージの隅に描画した後、各イベントに関するテキスト情報を表示することによってイベントに応答します。これを行うには、以下の手順を実行します。
  1. 四角形の色とサイズに関するクラスプロパティが宣言されます。
  2. コンストラクターは draw() メソッドを呼び出します。このメソッドでは、オレンジ色の四角形が、ステージのデフォルト座標 x = 0, y = 0 に描画されます。
  3. 四角形には次のようなイベントリスナーメソッドがあります。
    • addedHandler() は、added イベントをリッスンします。このイベントは四角形が表示リストに追加されたときに送出されます。
    • enterFrameHandler() は、enterFrame イベントをリッスンします。このイベントは、この例では特に意味はありません。
    • removedHandler() は、removed イベントをリッスンします。このイベントは、(四角形がクリックされて) 四角形が表示リストから除去されたときに送出されます。
    • clickHandler() は、click イベントをリッスンします。このイベントはオレンジ色の四角形がクリックされると送出されます。
    • renderHandler() は、表示リストの更新後に render イベントをリッスンします。
package { import flash.display.Sprite; public class DisplayObjectExample extends Sprite { public function DisplayObjectExample() { var child:CustomDisplayObject = new CustomDisplayObject(); addChild(child); } } } import flash.display.DisplayObject; import flash.display.Sprite; import flash.display.Stage; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; class CustomDisplayObject extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; public function CustomDisplayObject() { draw(); addEventListener(Event.ADDED, addedHandler); addEventListener(Event.ENTER_FRAME, enterFrameHandler); addEventListener(Event.REMOVED, removedHandler); addEventListener(MouseEvent.CLICK, clickHandler); addEventListener(Event.RENDER, renderHandler); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); parent.removeChild(this); } private function addedHandler(event:Event):void { trace("addedHandler: " + event); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener("resize", resizeHandler); } private function enterFrameHandler(event:Event):void { trace("enterFrameHandler: " + event); removeEventListener("enterFrame", enterFrameHandler); } private function removedHandler(event:Event):void { trace("removedHandler: " + event); stage.removeEventListener("resize", resizeHandler); } private function renderHandler(event:Event):void { trace("renderHandler: " + event); } private function resizeHandler(event:Event):void { trace("resizeHandler: " + event); } }
flash.display.DisplayObjectContainerrender [ブロードキャストイベント] 表示リストが更新およびレンダリングされようとしているときに送出されます。flash.events.Event.RENDERflash.events.Event [ブロードキャストイベント] 表示リストが更新およびレンダリングされようとしているときに送出されます。このイベントは、表示リストのレンダリング前に、このイベントをリッスンしているオブジェクトが変更を行う最後の機会を提供します。Stage オブジェクトの invalidate() メソッドは、render イベントを送出させるたびに呼び出す必要があります。 Render イベントは、Stage.invalidate() を呼び出したオブジェクトとの間に相互の信頼関係があるオブジェクトにしか送出されません。このイベントはブロードキャストイベントであるため、このイベントに登録されているリスナーを持つすべての表示イベントによって送出されます。

注意:表示がレンダリングされない場合、このイベントは送出されません。 これが該当するのは、コンテンツが最小化または非表示になっている場合です。

removedFromStage 表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの削除により、表示リストから削除されようとしているときに送出されます。flash.events.Event.REMOVED_FROM_STAGEflash.events.Event 表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの削除により、表示リストから削除されようとしているときに送出されます。このイベントを生成する DisplayObjectContainer クラスの 2 つのメソッドは、removeChild() および removeChildAt() の 2 つのエディションがあります。

さらに、新しいオブジェクトの領域を確保するためにオブジェクトを削除する必要がある場合には、DisplayObjectContainer オブジェクトの addChild()addChildAt()、および setChildIndex() もまたこのイベントを生成します。

removed 表示オブジェクトが表示リストから削除されようとしているときに送出されます。flash.events.Event.REMOVEDflash.events.Event 表示オブジェクトが表示リストから削除されようとしているときに送出されます。このイベントを生成する DisplayObjectContainer クラスの 2 つのメソッドは、removeChild() および removeChildAt() の 2 つのエディションがあります。

さらに、新しいオブジェクトの領域を確保するためにオブジェクトを削除する必要がある場合には、DisplayObjectContainer オブジェクトの addChild()addChildAt()、および setChildIndex() もまたこのイベントを生成します。

exitFrame [ブロードキャストイベント] 再生ヘッドが現在のフレームを終了するときに送出されます。flash.events.Event.EXIT_FRAMEflash.events.Event [ブロードキャストイベント] 再生ヘッドが現在のフレームを終了するときに送出されます。すべてのフレームスクリプトが実行されています。再生ヘッドが移動しない場合、またはフレームが 1 つしか存在しない場合、このイベントはフレームレートに合わせて継続的に送出されます。このイベントはブロードキャストイベントであるため、このイベントに登録されているリスナーを持つすべての表示イベントによって送出されます。 frameConstructed [ブロードキャストイベント] フレーム表示オブジェクトのコンストラクターが実行した後で、かつフレームスクリプトが実行される前に送出されます。flash.events.Event.FRAME_CONSTRUCTEDflash.events.Event [ブロードキャストイベント] フレーム表示オブジェクトのコンストラクターが実行した後で、かつフレームスクリプトが実行される前に送出されます。再生ヘッドが移動しない場合、またはフレームが 1 つしか存在しない場合、このイベントはフレームレートに合わせて継続的に送出されます。このイベントはブロードキャストイベントであるため、このイベントに登録されているリスナーを持つすべての表示イベントによって送出されます。 enterFrame [ブロードキャストイベント] 再生ヘッドが新しいフレームに入るときに送出されます。flash.events.Event.ENTER_FRAMEflash.events.Event [ブロードキャストイベント] 再生ヘッドが新しいフレームに入るときに送出されます。再生ヘッドが移動しない場合、またはフレームが 1 つしか存在しない場合、このイベントはフレームレートに合わせて継続的に送出されます。このイベントはブロードキャストイベントであるため、このイベントに登録されているリスナーを持つすべての表示イベントによって送出されます。 addedToStage 表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの追加により、ステージ上の表示リストに追加されたときに送出されます。flash.events.Event.ADDED_TO_STAGEflash.events.Event 表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの追加により、ステージ上の表示リストに追加されたときに送出されます。DisplayObjectContainer.addChild() メソッドおよび DisplayObjectContainer.addChildAt() メソッドがこのイベントをトリガーします。 flash.display.DisplayObjectContainer.addChild()flash.display.DisplayObjectContainer.addChildAt()added 表示オブジェクトが表示リストに追加されたときに送出されます。flash.events.Event.ADDEDflash.events.Event 表示オブジェクトが表示リストに追加されたときに送出されます。DisplayObjectContainer.addChild() メソッドおよび DisplayObjectContainer.addChildAt() メソッドがこのイベントをトリガーします。 flash.display.DisplayObjectContainer.addChild()flash.display.DisplayObjectContainer.addChildAt()getBounds targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。targetCoordinateSpace オブジェクトの座標系を基準とする、表示オブジェクトの領域を定義する矩形です。 flash.geom:RectangletargetCoordinateSpaceflash.display:DisplayObject使用する座標系を定義する表示オブジェクトです。 targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。以下のコードは、どんな targetCoordinateSpace パラメーターをメソッドに渡すかに応じて、様々な矩形が返されることを示しています。 var container:Sprite = new Sprite(); container.x = 100; container.y = 100; this.addChild(container); var contents:Shape = new Shape(); contents.graphics.drawCircle(0,0,100); container.addChild(contents); trace(contents.getBounds(container)); // (x=-100, y=-100, w=200, h=200) trace(contents.getBounds(this)); // (x=0, y=0, w=200, h=200)

注意:表示オブジェクトのローカル座標を表示座標に、または表示座標をローカル座標に変換するには、それぞれ localToGlobal() および globalToLocal() メソッドを使用します。

getBounds() メソッドは getRect() メソッドに似ていますが、getBounds() メソッドから返される矩形にはシェイプの線が含まれるのに対し、getRect() メソッドから返される矩形には含まれません。例については、getRect() メソッドに関する説明を参照してください。

getRect()globalToLocal()localToGlobal()
getRect シェイプ上の線を除き、targetCoordinateSpace パラメーターによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。targetCoordinateSpace オブジェクトの座標系を基準とする、表示オブジェクトの領域を定義する矩形です。 flash.geom:RectangletargetCoordinateSpaceflash.display:DisplayObject使用する座標系を定義する表示オブジェクトです。 シェイプ上の線を除き、targetCoordinateSpace パラメーターによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。getRect() メソッドから返される値は、getBounds() メソッドから返される値と同じか、それより小さくなります。

注意: 表示オブジェクトのローカル座標をステージ座標に、またはステージ座標をローカル座標に変換するには、それぞれ localToGlobal() および globalToLocal() メソッドを使用します。

次の例では、getBounds() メソッドが、getRect() メソッドを使用したときよりも大きい矩形が返される場合があることを示しています。そうなる理由は、追加的な領域が線に必要となるためです。この場合、triangle スプライトには余分な線が含まれます。これは、width パラメーターおよび jointStyle パラメーター(lineStyle() メソッドのパラメーター)があるためです。trace() の出力(最後の 2 行)は、getRect() 矩形と getBounds() 矩形の違いを示しています。 import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Sprite; import flash.geom.Rectangle; var triangle:Sprite = new Sprite(); var color:uint = 0xFF0044; var width:Number = 20; var alpha:Number = 1.0; var pixelHinting:Boolean = true; var scaleMode:String = LineScaleMode.NORMAL; var caps:String = CapsStyle.SQUARE; var joints:String = JointStyle.MITER; triangle.graphics.lineStyle(width, color, alpha, pixelHinting, scaleMode, caps, joints); var triangleSide:Number = 100; triangle.graphics.moveTo(0, 0); triangle.graphics.lineTo(0, triangleSide); triangle.graphics.lineTo(triangleSide, triangleSide); triangle.graphics.lineTo(0, 0); addChild(triangle); trace(triangle.getBounds(this)); // (x=-10, y=-24.1, w=134.10000000000002, h=134.1) trace(triangle.getRect(this)); // (x=0, y=0, w=100, h=100)
getBounds()
globalToLocal3D ステージ(グローバル)座標の 2 次元のポイントを 3 次元の表示オブジェクトの(ローカル)座標に変換します。3 次元の表示オブジェクトを基準とした座標を持つ Vector3D オブジェクトです。 flash.geom:Vector3Dpointflash.geom:Pointグローバル座標の x 座標と y 座標を表す 2 次元の Point オブジェクトです。 ステージ(グローバル)座標の 2 次元のポイントを 3 次元の表示オブジェクトの(ローカル)座標に変換します。

このメソッドを使用するには、まず Point クラスのインスタンスを作成してください。Point オブジェクトに割り当てられる x 値と y 値は、メイン表示領域の起点 (0,0) からの相対値であるため、これらの値はグローバル座標を表します。次に、Point オブジェクトを globalToLocal3D() メソッドの point パラメーターとして渡します。このメソッドは、3 次元の表示オブジェクトの基点を基準とした x 値、y 値、および z 値を含む Vector3D オブジェクトとして 3 次元座標を返します。

globalToLocal point オブジェクトをステージ(グローバル)座標から表示オブジェクトの(ローカル)座標に変換します。表示オブジェクトからの相対座標を持つ Point オブジェクトです。 flash.geom:Pointpointflash.geom:PointPoint クラスを使って作成されるオブジェクトです。Point オブジェクトは、x および y 座標をプロパティとして指定します。 point オブジェクトをステージ(グローバル)座標から表示オブジェクトの(ローカル)座標に変換します。 point オブジェクトをステージ(グローバル)座標から表示オブジェクトの(ローカル)座標に変換します。

このメソッドを使用するには、まず Point クラスのインスタンスを作成してください。割り当てられる x 値と y 値は、メイン表示領域の起点 (0,0) からの相対値であるため、これらの値はグローバル座標を表します。次に、Point インスタンスを globalToLocal() メソッドにパラメーターとして渡します。このメソッドは、Stage の起点ではなく、表示オブジェクトの起点からの相対値である x 値と y 値を持つ新しい Point オブジェクトを返します。

次のコードでは、Shape オブジェクトを作成し、パラメーターとして異なるポイントを使用して、hitTestPoint() メソッドの呼び出し結果を表示します。globalToLocal() メソッドは、ポイントをステージ座標からシェイプの座標空間に変換します。 import flash.display.Shape; import flash.geom.Point; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.x = 10; addChild(circle); var point1:Point = new Point(0, 0); trace(circle.hitTestPoint(point1.x, point1.y, true)); // false trace(circle.hitTestPoint(point1.x, point1.y, false)); // false trace(circle.globalToLocal(point1)); // [x=-10, y=0] var point2:Point = new Point(10, 1); trace(circle.hitTestPoint(point2.x, point2.y, true)); // false trace(circle.hitTestPoint(point2.x, point2.y, false)); // true trace(circle.globalToLocal(point2)); // [x=0, y=1] var point3:Point = new Point(30, 20); trace(circle.hitTestPoint(point3.x, point3.y, true)); // true trace(circle.hitTestPoint(point3.x, point3.y, false)); // true trace(circle.globalToLocal(point3)); // [x=20, y=20]
localToGlobal()flash.geom.Point クラス
hitTestObject 表示オブジェクトの境界ボックスを評価して、obj 表示オブジェクトの境界ボックスと重複または交差するかどうかを調べます。表示オブジェクトの境界ボックスが交差する場合は true を返します。交差しない場合は false を返します。 Booleanobjflash.display:DisplayObject検査の対象となる表示オブジェクトです。 表示オブジェクトの境界ボックスを評価して、パラメーターとして渡された表示オブジェクトの境界ボックスと重複または交差するかどうかを調べます。 表示オブジェクトの境界ボックスを評価して、obj 表示オブジェクトの境界ボックスと重複または交差するかどうかを調べます。 次のコードでは、3 つの Shape オブジェクトを作成し、hitTestObject() メソッドの呼び出し結果を示します。circle2 と circle3 は重複しませんが、境界ボックスは重複します。そのため、circle2 と circle3 のヒットテストでは true が返されます。 import flash.display.Shape; var circle1:Shape = new Shape(); circle1.graphics.beginFill(0x0000FF); circle1.graphics.drawCircle(40, 40, 40); addChild(circle1); var circle2:Shape = new Shape(); circle2.graphics.beginFill(0x00FF00); circle2.graphics.drawCircle(40, 40, 40); circle2.x = 50; addChild(circle2); var circle3:Shape = new Shape(); circle3.graphics.beginFill(0xFF0000); circle3.graphics.drawCircle(40, 40, 40); circle3.x = 100; circle3.y = 67; addChild(circle3); trace(circle1.hitTestObject(circle2)); // true trace(circle1.hitTestObject(circle3)); // false trace(circle2.hitTestObject(circle3)); // true hitTestPoint 表示オブジェクトを評価して、x および y パラメーターで指定されたポイントと重複または交差するかどうかを調べます。指定されたポイントと表示オブジェクトが重複または交差する場合は true、そうでなければ false です。 BooleanxNumberこのオブジェクトの検査の基準となる x 座標です。 yNumberこのオブジェクトの検査の基準となる y 座標です。 shapeFlagBooleanfalseオブジェクトの実際のピクセルと比較して検査する場合は true、境界ボックスと比較して検査する場合は false です。 表示オブジェクトを評価して、x および y によって指定されるポイントと重複または交差するかどうかを調べます。 表示オブジェクトを評価して、x および y パラメーターで指定されたポイントと重複または交差するかどうかを調べます。x および y パラメーターは、表示オブジェクトが含まれる表示オブジェクトコンテナではなく Stage の座標空間内のポイントを指定します(その表示オブジェクトコンテナが Stage の場合を除く)。 次のコードでは、Shape オブジェクトを作成し、パラメーターとして異なるポイントを使用して、hitTestPoint() メソッドの呼び出し結果を表示します。globalToLocal() メソッドは、ポイントをステージ座標からシェイプの座標空間に変換します。 import flash.display.Shape; import flash.geom.Point; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.x = 10; addChild(circle); var point1:Point = new Point(0, 0); trace(circle.hitTestPoint(point1.x, point1.y, true)); // false trace(circle.hitTestPoint(point1.x, point1.y, false)); // false trace(circle.globalToLocal(point1)); // [x=-10, y=0] var point2:Point = new Point(10, 1); trace(circle.hitTestPoint(point2.x, point2.y, true)); // false trace(circle.hitTestPoint(point2.x, point2.y, false)); // true trace(circle.globalToLocal(point2)); // [x=0, y=1] var point3:Point = new Point(30, 20); trace(circle.hitTestPoint(point3.x, point3.y, true)); // true trace(circle.hitTestPoint(point3.x, point3.y, false)); // true trace(circle.globalToLocal(point3)); // [x=20, y=20] opaqueBackgroundlocal3DToGlobal 3 次元の表示オブジェクトの(ローカル)座標の 3 次元のポイントをステージ(グローバル)座標の 2 次元のポイントに変換します。3 次元のポイントを 2 次元空間で表す 2 次元のポイント。 flash.geom:Pointpoint3dflash.geom:Vector3D3 次元の表示オブジェクトの 3 次元のポイントまたは座標を含む Vector3D オブジェクト。 3 次元の表示オブジェクトの(ローカル)座標の 3 次元のポイントをステージ(グローバル)座標の 2 次元のポイントに変換します。

例えば、display.Graphics のメソッドを使用して描画する場合は、2 次元座標(x,y)のみを使用できます。3 次元のオブジェクトを描画するには、表示オブジェクトの 3 次元座標を 2 次元座標にマッピングする必要があります。まず、3 次元の表示オブジェクトの x 座標、y 座標、および z 座標を保持する Vector3D クラスのインスタンスを作成します。次に、Vector3D オブジェクトを local3DToGlobal() メソッドの point3d パラメーターとして渡します。このメソッドからは 2 次元の Point オブジェクトが返されます。これを Graphics API で使用すると、3 次元のオブジェクトを描画できます。

この例では、display.Graphics のメソッドを使用して、2 次元空間に簡単な 3 次元の立方体を描画します。this 表示オブジェクトの位置はオフセットされるため、立方体の基準点はその中心になります。Vector3D オブジェクトのベクターには、立方体の 3 次元座標が保持されます。最初に立方体の上部が描画され、次に下部が描画され、最後に上部の四隅と下部の四隅が接続されます。local3DToGlobal() メソッドを使用するには、立方体を表示オブジェクトのコンテナに追加してから立方体を描画する必要があります。 package { import flash.display.MovieClip; import flash.display.Sprite; import flash.display.Graphics; import flash.geom.*; public class Local3DToGlobalExample extends MovieClip { private var myCube:Sprite = new Sprite(); private var v8:Vector.<Vector3D> = new Vector.<Vector3D>(8); public function Local3DToGlobalExample():void { this.x = -(this.stage.stageWidth / 2); this.y = -(this.stage.stageWidth / 2); v8[0] = new Vector3D(-40,-40,-40); v8[1] = new Vector3D(40,-40,-40); v8[2] = new Vector3D(40,-40,40); v8[3] = new Vector3D(-40,-40,40); v8[4] = new Vector3D(-40,100,-40); v8[5] = new Vector3D(40,100,-40); v8[6] = new Vector3D(40,100,40); v8[7] = new Vector3D(-40,100,40); myCube.x = (this.stage.stageWidth / 2); myCube.y = (this.stage.stageWidth / 2); myCube.z = 1; addChild(myCube); Cube(); } private function Cube():void { var ps:Point = new Point(0,0); myCube.graphics.lineStyle(2,0xFF0000); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[1]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[2]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[3]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[5]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[6]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[7]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[1]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[5]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[2]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[6]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[3]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[7]); myCube.graphics.lineTo(ps.x, ps.y); } } }
localToGlobal point オブジェクトを表示オブジェクトの(ローカル)座標からステージ(グローバル)座標に変換します。ステージからの相対座標を持つ Point オブジェクトです。 flash.geom:Pointpointflash.geom:PointPoint クラスを使用し、x および y 座標をプロパティとして指定して作成されるポイントの名前または識別子です。 point オブジェクトを表示オブジェクトの(ローカル)座標からステージ(グローバル)座標に変換します。

このメソッドを使用すれば、特定の表示オブジェクトの起点 (0,0) との相対値(ローカル座標)からステージの起点との相対値(グローバル座標)に、任意の x および y 座標を変換できます。

このメソッドを使用するには、まず Point クラスのインスタンスを作成してください。割り当てられる x 値と y 値は、表示オブジェクトの起点からの相対値であるため、これらの値はローカル座標を表します。

次に、作成した Point インスタンスを localToGlobal() メソッドにパラメーターとして渡します。このメソッドは、表示オブジェクトの起点ではなく、Stage の起点からの相対値である x 値と y 値を持つ新しい Point オブジェクトを返します。

次のコードでは、Sprite オブジェクトを作成します。スプライトの mouseX プロパティおよび mouseY プロパティは、表示オブジェクトの座標空間内にあります。このコードは、localToGlobal() メソッドを使用して、これらのプロパティをグローバル(ステージ)座標に変換します。 import flash.display.Sprite; import flash.events.MouseEvent; import flash.geom.Point; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); square.x = 100; square.y = 200; addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates) function traceCoordinates(event:MouseEvent):void { var clickPoint:Point = new Point(square.mouseX, square.mouseY); trace("display object coordinates:", clickPoint); trace("stage coordinates:", square.localToGlobal(clickPoint)); }
globalToLocal()flash.geom.Point クラス
accessibilityProperties この表示オブジェクトの現在のアクセシビリティオプションです。flash.accessibility:AccessibilityProperties この表示オブジェクトの現在のアクセシビリティオプションです。accessibilityProperties プロパティ、または accessibilityProperties 内のいずれかのフィールドを変更した場合、変更内容を有効にするには、Accessibility.updateProperties() メソッドを呼び出す必要があります。

注意:Flash オーサリング環境で作成されたオブジェクトの場合、そのオブジェクトのアクセシビリティパネルに入力した情報が accessibilityProperties の値に再設定されます。

次の例では、単純な AccessibilityProperties オブジェクトを TextField インスタンスに割り当てる方法を示します。 import flash.text.TextField; import flash.accessibility.AccessibilityProperties; import flash.accessibility.Accessibility; import flash.system.Capabilities; var tf:TextField = new TextField(); tf.text = "hello"; var accessProps:AccessibilityProperties = new AccessibilityProperties(); accessProps.name = "Greeting"; tf.accessibilityProperties = accessProps; if (Capabilities.hasAccessibility) { Accessibility.updateProperties(); } trace(tf.accessibilityProperties.name); // Greeting
flash.accessibility.Accessibility.updateProperties()flash.accessibility.AccessibilityProperties
alpha 指定されたオブジェクトのアルファ透明度値を示します。Number 指定されたオブジェクトのアルファ透明度値を示します。有効な値は 0(完全な透明)~ 1(完全な不透明)です。デフォルト値は 1 です。alpha が 0 に設定されている表示オブジェクト、表示されない場合でも、アクティブです。 次のコードでは、スプライト上にマウスが移動したときに、スプライトの alpha プロパティを 50% に設定します。 import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFF0000); circle.graphics.drawCircle(40, 40, 40); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject); circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject); function dimObject(event:MouseEvent):void { event.target.alpha = 0.5; } function restoreObject(event:MouseEvent):void { event.target.alpha = 1.0; } blendMode 使用するブレンドモードを指定する BlendMode クラスの値です。String 使用するブレンドモードを指定する BlendMode クラスの値です。内部的には、2 つの方法でビットマップを描画できます。ブレンドモードを有効にした場合、または外部クリッピングマスクを使用する場合には、ビットマップで塗りつぶされた四角形シェイプをベクターレンダーに追加することによってビットマップが描画されます。このプロパティを無効な値に設定しようとすると、Flash ランタイムは値を BlendMode.NORMAL に設定します。

blendMode プロパティは、表示オブジェクトの各ピクセルに影響します。 各ピクセルは、3 つの要素カラー(赤、緑、青)で構成されており、各要素カラーは 0x00 ~ 0xFF の値を持ちます。Flash Player または Adobe AIR は、ムービークリップ内の 1 つのピクセルの各要素カラーを、背景のピクセルの対応するカラーと比較します。 例えば、blendModeBlendMode.LIGHTEN に設定されている場合、Flash Player または Adobe AIR は表示オブジェクトの赤の値と背景の赤の値とを比較して、明るい方の値を表示色の赤の成分として使用します。

次の表では、blendMode の設定について説明します。BlendMode クラスは、使用可能なストリング値を定義します。表の中の図は、別の表示オブジェクト(1)に重なった円形の表示オブジェクト(2)に適用される blendMode 値を示しています。

BlendMode 定数説明BlendMode.NORMAL表示オブジェクトは、背景の前に表示されます。表示オブジェクトのピクセル値は、背景のピクセル値より優先されます。表示オブジェクトが透明な部分では、背景が表示されます。BlendMode.LAYER表示オブジェクトに関する透明度グループを強制的に作成します。つまり、表示オブジェクトが処理される前に、一時バッファー内で表示オブジェクトが事前に構成されます。ビットマップキャッシュを使って表示オブジェクトが事前キャッシュされる場合、または表示オブジェクトが、blendModeBlendMode.NORMAL 以外に設定された子オブジェクトを少なくとも 1 つ含む表示オブジェクトコンテナである場合には、これが自動的に実行されます。GPU レンダリングではサポートされません。 BlendMode.MULTIPLY表示オブジェクトの要素カラーの値と背景色の要素カラーの値を乗算した後、0xFF で割って正規化し、色を暗くします。この設定は、シャドウや深度効果によく使用されます。

例えば、表示オブジェクトのピクセルの要素カラー(赤など)と背景のピクセルの対応するカラーの値が共に 0x88 の場合、乗算した結果は 0x4840 です。0xFF で除算すると、その要素カラーの値は 0x48 になります。これは、表示オブジェクトまたは背景の色よりも暗くなります。

BlendMode.SCREEN表示オブジェクトの色の補数(逆)と背景色の補数を乗算して、ブリーチ効果を得ます。この設定は、ハイライトや、表示オブジェクトの黒い領域の削除によく使用されます。BlendMode.LIGHTEN表示オブジェクトの要素カラーと背景色のうち明るい方(値が大きい方)の色を選択します。この設定は、重ね合わせタイプによく使用されます。

例えば、表示オブジェクトのピクセルの RGB 値が 0xFFCC33 で、背景のピクセルの RGB 値が 0xDDF800 の場合、0xFF > 0xDD、0xCC < 0xF8、および 0x33 > 0x00 = 33 であるので、表示されるピクセルの RGB 値は 0xFFF833 になります。GPU レンダリングではサポートされません。

BlendMode.DARKEN表示オブジェクトの要素カラーと背景色のうち暗い方(値が小さい方)の色を選択します。この設定は、重ね合わせタイプによく使用されます。

例えば、表示オブジェクトのピクセルの RGB 値が 0xFFCC33 で、背景のピクセルの RGB 値が 0xDDF800 の場合、0xFF > 0xDD、0xCC < 0xF8、0x33 > 0x00 = 33 であるので、表示されるピクセルの RGB 値は 0xDDCC00 になります。GPU レンダリングではサポートされません。

BlendMode.DIFFERENCE表示オブジェクトの要素カラーと背景色を比較し、2 つの要素カラーのうち明るい方の値から暗い方の値を差し引きます。この設定は、明るい色によく使用されます。

例えば、表示オブジェクトの 1 つのピクセルの RGB 値が 0xFFCC33 で、背景のピクセルの RGB 値が 0xDDF800 の場合、0xFF - 0xDD = 0x22、0xF8 - 0xCC = 0x2C、0x33 - 0x00 = 0x33 であるため、表示されるピクセルの RGB 値は 0x222C33 になります。

BlendMode.ADD表示オブジェクトの要素カラーの値を背景色に加算し、その際に上限 0xFF を適用します。この設定は、2 つのオブジェクト間で色を明るくするディゾルブをアニメーションにするときによく使用されます。

例えば、表示オブジェクトのピクセルの RGB 値が 0xAAA633 で、背景のピクセルの RGB 値が 0xDD2200 の場合、0xAA + 0xDD > 0xFF、0xA6 + 0x22 = 0xC8、および 0x33 + 0x00 = 0x33 であるので、表示されるピクセルの RGB 値は 0xFFC833 になります。

BlendMode.SUBTRACT下限を 0 として、表示オブジェクトの要素カラーの値をその背景色の値から減算します。この設定は、2 つのオブジェクト間で色を暗くするディゾルブをアニメーションにするときによく使用されます。

例えば、表示オブジェクトの 1 つのピクセルの RGB 値が 0xAA2233 で、背景のピクセルの RGB 値が 0xDDA600 の場合、0xDD - 0xAA = 0x33、0xA6 - 0x22 = 0x84、0x00 - 0x33 < 0x00 であるので、表示されるピクセルの RGB 値は 0x338400 になります。

BlendMode.INVERT背景を反転します。BlendMode.ALPHA表示オブジェクトの各ピクセルのアルファ値を背景に適用します。これを行うには、親表示オブジェクトの blendModeBlendMode.LAYER に設定されている必要があります。例えば、図の親表示オブジェクト(白い背景)は、blendMode = BlendMode.LAYER に設定されています。GPU レンダリングではサポートされません。BlendMode.ERASE表示オブジェクトのアルファ値に基づいて背景を消去します。これを行うには、親表示オブジェクトの blendModeBlendMode.LAYER に設定されている必要があります。例えば、図の親表示オブジェクト(白い背景)は、blendMode = BlendMode.LAYER に設定されています。GPU レンダリングではサポートされません。BlendMode.OVERLAY背景の暗さに基づいて、各ピクセルの色を調整します。背景が 50% グレーよりも明るい場合、表示オブジェクトと背景の色が網がけされ、より明るくなります。背景が 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。GPU レンダリングではサポートされません。BlendMode.HARDLIGHT表示オブジェクトの暗さに基づいて、各ピクセルの色を調整します。表示オブジェクトが 50% グレーよりも明るい場合、表示オブジェクトと背景の色が網がけされ、より明るくなります。表示オブジェクトが 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。GPU レンダリングではサポートされません。BlendMode.SHADERN/Aカスタムシェーダールーチンを使用して、カラーを調整します。使用するシェーダーは、blendShader プロパティに割り当てられた Shader インスタンスとして指定されます。Shader インスタンスに表示オブジェクトの blendShader プロパティを設定すると、表示オブジェクトの blendMode プロパティが BlendMode.SHADER に自動的に設定されます。blendShader プロパティを先に設定しないで blendMode プロパティを BlendMode.SHADER に設定すると、blendMode プロパティは BlendMode.NORMAL に設定されます。GPU レンダリングではサポートされません。
次のコードでは、四角形と円の 2 つのスプライトオブジェクトを作成し、マウスポインターが円の上に移動すると、前景の円のブレンドモードを BlendMode.SUBTRACT に設定します。 import flash.display.Sprite; import flash.display.BlendMode; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF88CC); square.graphics.drawRect(0, 0, 80, 80); addChild(square); var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xAA0022); circle.graphics.drawCircle(40, 40, 40); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject); circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject); function dimObject(event:MouseEvent):void { event.target.blendMode = BlendMode.SUBTRACT; } function restoreObject(event:MouseEvent):void { event.target.blendMode = BlendMode.NORMAL; }
flash.display.BlendModeblendShader
cacheAsBitmapMatrix null 以外の場合、この Matrix オブジェクトは、cacheAsBitmap を true に設定したときの表示オブジェクトのレンダリング方法を定義します。flash.geom:Matrixこの表示オブジェクトのビットマップのキャッシュされたバージョンをレンダリングするときに、変換マトリックスが使用されます。 null 以外の場合、この Matrix オブジェクトは cacheAsBitmaptrue に設定したときの表示オブジェクトのレンダリング方法を定義します。アプリケーションでは、このマトリックスを、ビットマップバージョンの表示オブジェクトをレンダリングするときに適用された変換マトリックスとして使用します。

AIR プロファイルのサポート:この機能はモバイルデバイスでサポートされますが、デスクトップオペレーティングシステムではサポートされません。また、テレビ用 AIR デバイスでのサポートについては制限があります。具体的には、テレビ用 AIR デバイスでは変形操作の種類として拡大・縮小および移動がサポートされますが、回転および傾斜はサポートされません。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

cacheAsBitmapMatrix セットを使用して、アプリケーションは移動、回転、拡大や縮小などの様々な 2D 変形にわたって、キャッシュされたビットマップイメージを保持します。アプリケーションでハードウェアアクセラレーションが使用されている場合、オブジェクトはテクスチャとしてビデオメモリに格納されます。これにより、GPU が、サポートされている変形をオブジェクトに適用できます。GPU では、これらの変換を CPU よりも高速に実行できます。

ハードウェアアクセラレーションを使用するには、Flash Professional CS5 の iPhone 設定ダイアログボックスの「一般」タブで「レンダリング」を「GPU」に設定します。または、アプリケーション記述ファイルで renderMode プロパティを gpu に設定します。テレビ用 AIR デバイスでは、ハードウェアアクセラレーションが使用可能な場合、これが自動的に使用されます。

例えば、次のコードは表示オブジェクトの未変換のビットマップ表現を GPU に送信します。

matrix:Matrix = new Matrix(); // creates an identity matrix mySprite.cacheAsBitmapMatrix = matrix; mySprite.cacheAsBitmap = true;

通常、単位マトリックス(new Matrix())で十分です。ただし、別のビットマップを GPU にアップロードする場合は、縮小マトリックスなどの別のマトリックスを使用できます。例えば、次の例では x 軸と y 軸に対して 0.5 倍縮小した cacheAsBitmapMatrix マトリックスを適用しています。GPU が使用するビットマップオブジェクトは小さくなりますが、GPU はこのビットマップオブジェクトのサイズを表示オブジェクトの transform.matrix プロパティに一致するように調整します。

matrix:Matrix = new Matrix(); // creates an identity matrix matrix.scale(0.5, 0.5); // scales the matrix mySprite.cacheAsBitmapMatrix = matrix; mySprite.cacheAsBitmap = true;

通常は、表示オブジェクトをアプリケーションで表示されるサイズに変換するマトリックスを選択して使用します。例えば、半分に縮小したビットマップバージョンのスプライトをアプリケーションで表示する場合、半分に縮小するマトリックスを使用します。現在のサイズよりも大きいスプライトをアプリケーションで表示する場合、拡大する係数のマトリックスを使用します。

注意:cacheAsBitmapMatrix プロパティは、2D 変形に適しています。3D 変形を適用する必要がある場合は、オブジェクトの 3D プロパティを設定し、その transform.matrix3D プロパティを操作します。アプリケーションが GPU モードを使用してパッケージされている場合、この操作を行うと、GPU によって 3D 変形をオブジェクトに適用できます。cacheAsBitmapMatrix は、3D オブジェクトでは無視されます。

次の例では、cacheAsBitmapMatrix プロパティを使用して、my_shape というムービークリックのビットマップバージョンに変形を適用します。 import flash.geom.Matrix; import flash.display.*; import flash.utils.Timer; var my_shape:MovieClip = new MovieClip(); my_shape.graphics.beginFill(0xCCFF00); my_shape.graphics.drawRect(200, 0, 100, 100); addChild(my_shape); var my_timer:Timer = new Timer(250); my_timer.start(); my_timer.addEventListener(TimerEvent.TIMER, timerHandler); // make sure this Display Object remains cached for all 2D transforms my_shape.cacheAsBitmap = true; my_shape.cacheAsBitmapMatrix = new Matrix(); // rotation variables const initAngle:Number = 0; const pi:Number = 3.142; const incrAngle:Number = pi/10; // scaling variables const initScale:Number = 0.25; const incrScale: Number = 1.1; var initHeight : Number = my_shape.height; var initWidth : Number = my_shape.width; // translation variables var incrX : Number = root.width / 20; var incrY : Number = root.height / 10; // do some initial transforms var tempMat : Matrix = my_shape.transform.matrix; tempMat.rotate(initAngle); tempMat.scale(initScale, initScale); my_shape.transform.matrix = tempMat; function timerHandler(evt:TimerEvent):void { tempMat = my_shape.transform.matrix; tempMat.rotate(incrAngle); tempMat.translate(incrX, incrY); tempMat.scale(incrScale, incrScale); my_shape.transform.matrix = tempMat; // ensure we are still in a reasonable state or reset if(my_shape.height > stage.stageHeight/2) { my_shape.height = initHeight; } if(my_shape.width > stage.stageWidth/2) { my_shape.width = initWidth; } if(my_shape.x > stage.stageWidth) { my_shape.x = 0; } else if (my_shape.x < 0) { my_shape.x = stage.stageWidth; } if(my_shape.y > stage.stageHeight) { my_shape.y = 0; } else if (my_shape.y < 0) { my_shape.y = stage.stageHeight; } }
cacheAsBitmapflash.geom.Matrix3D
cacheAsBitmap true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash ランタイムにキャッシュされます。Booleanこの DisplayObject をビットマップとしてキャッシュするかどうかを示します。 true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash ランタイムにキャッシュされます。このキャッシュ処理により、複雑なベクターコンテンツを含んでいる表示オブジェクトのパフォーマンスを向上できます。

ビットマップがキャッシュされている表示オブジェクトのすべてのベクターデータは、メイン表示ではなくビットマップに描画されます。cacheAsBitmapMatrix が null であるかサポートされていない場合は、ビットマップは最も近いピクセル境界に吸着された非回転かつ非伸縮のピクセルとしてメイン表示にコピーされます。ピクセルは、親オブジェクトと 1 対 1 でマップされます。ビットマップの境界が変更されると、ビットマップは伸縮されるのではなく、再作成されます。

cacheAsBitmapMatrix が null ではなく、またサポートされている場合、オブジェクトは、マトリックスを使用してオフスクリーンビットマップに描画され、そのレンダリングによる伸縮や回転を使用して、オブジェクトがメイン表示に描画されます。

cacheAsBitmap プロパティが true に設定されていない限り、内部ビットマップは作成されません。

cacheAsBitmap プロパティを true に設定した後、レンダリングは変更されませんが、表示オブジェクトはピクセルへの吸着を自動的に実行します。アニメーションの速度は、ベクターコンテンツの複雑さに応じて大幅に速くなる可能性があります。

フィルターを表示オブジェクトに適用すると、cacheAsBitmap プロパティは常に自動的に true に設定されます(filter 配列が空でない場合)。また、表示オブジェクトにフィルターが適用される場合、cacheAsBitmap はその表示オブジェクトの true と報告されます(たとえプロパティを false に設定した場合でも)。表示オブジェクトのすべてのフィルターをクリアすると、cacheAsBitmap は以前の設定に戻ります。

以下のような場合には、cacheAsBitmap プロパティが true に設定されていても表示オブジェクトはビットマップを使用せず、代わりにベクターデータから描画します。

  • ビットマップが大きすぎます。AIR 1.5 および Flash Player 10 では、ビットマップイメージの最大サイズは幅または高さが 8,191 ピクセルです。ただし、総ピクセル数が 16,777,215 ピクセルを超えることはできません(したがって、ビットマップイメージの幅が 8,191 ピクセルであった場合、高さは 2,048 ピクセルまでしか指定できません)。Flash Player 9 以前では、制限は高さ 2,880 ピクセル、幅 2,880 ピクセルです。
  • ビットマップが割り当てに失敗した場合(メモリ不足エラー)。

cacheAsBitmap プロパティは、その内容がほぼ静的で、拡大や縮小、回転が頻繁に行われないムービークリップに最適です。そのようなムービークリップでは、cacheAsBitmap プロパティによって、ムービークリップの移動時(その x 位置と y 位置の変更時)にパフォーマンスが向上する可能性があります。

次の例では、Shape インスタンスにドロップシャドウを適用します。その後、cacheAsBitmap プロパティの値(この値はフィルターの適用時に true に設定される)をトレースします。 import flash.display.Sprite; import flash.filters.DropShadowFilter var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xAA0022); circle.graphics.drawCircle(40, 40, 40); addChild(circle); trace(circle.cacheAsBitmap); // false var filter:DropShadowFilter = new DropShadowFilter(); circle.filters = [filter]; trace(circle.cacheAsBitmap); // true
cacheAsBitmapMatrixopaqueBackground
filters 表示オブジェクトに現在関連付けられている各フィルターオブジェクトが格納されているインデックス付きの配列です。Arrayfilters に ShaderFilter が含まれ、シェーダー出力タイプがこの操作に対応しない場合(シェーダーは pixel4 出力を指定する必要があります)。 ArgumentErrorArgumentErrorfilters に ShaderFilter が含まれ、シェーダーがイメージ出力を指定していないか、最初の入力が image4 入力でない場合。 ArgumentErrorArgumentErrorfilters に ShaderFilter が含まれ、シェーダーが指定したイメージ入力が存在しない場合。 ArgumentErrorArgumentErrorfilters に ShaderFilter、ByteArray、または Vector が含まれる場合。<Number> インスタンスがシェーダー入力として使用され、ShaderInput オブジェクトの width および height プロパティが指定されていない、または指定された値が入力データのデータ量と一致しない場合。詳しくは、ShaderInput.input プロパティを参照してください。 ArgumentErrorArgumentError 表示オブジェクトに現在関連付けられている各フィルターオブジェクトが格納されているインデックス付きの配列です。flash.filters パッケージには、使用可能な特定のフィルターを定義する複数のクラスが含まれています。

ActionScript コードを使用することにより、設計時または実行時に Flash Professional でフィルターを適用できます。ActionScript を使ってフィルターを適用するには、filters 配列全体の一時コピーを作成してその一時配列を変更した後、一時配列の値を filters 配列に割り当てて戻す必要があります。新しいフィルターオブジェクトを filters 配列に直接追加することはできません。

ActionScript を使ってフィルターを追加するには、次の手順を実行する必要があります(ターゲット表示オブジェクトの名前を myDisplayObject とします)。

  1. 適切なフィルタークラスのコンストラクターメソッドを使用して、新しいフィルターオブジェクトを作成します。
  2. myDisplayObject.filters 配列の値を、myFilters などの名前の一時配列に代入します。
  3. 新しいフィルターオブジェクトを一時配列 myFilters に追加します。
  4. 一時配列の値を myDisplayObject.filters 配列に代入します。

filters 配列が未定義の場合、一時配列を使用する必要はありません。その代わりに、作成される 1 つまたは複数のフィルターオブジェクトを格納する配列リテラルを直接割り当てることができます。最初の例では、定義済みおよび未定義の filters 配列を処理するコードを使用して、ドロップシャドウフィルターを追加します。

既存のフィルターオブジェクトを変更するには、次のように、filters 配列のコピーを変更する必要があります。

  1. filters 配列の値を、myFilters などの名前の一時配列に代入します。
  2. 一時配列 myFilters を使用してプロパティを変更します。例えば、配列内の最初のフィルターの quality プロパティを設定するには、次のようなコードを使用できます。myFilters[0].quality = 1;
  3. 一時配列の値を filters 配列に代入します。

ロード時には、表示オブジェクトにフィルターが関連付けられている場合、透明なビットマップとして表示オブジェクト自身をキャッシュするようにマークされます。これ以降、表示オブジェクトに有効なフィルターリストがある限り、表示オブジェクトはビットマップとしてキャッシュされます。このソースビットマップは、フィルター効果のソースイメージとして使用されます。通常、それぞれの表示オブジェクトには 2 つのビットマップがあります。1 つはフィルター適用前の元の表示オブジェクトのビットマップ、もう 1 つはフィルター適用後の最終イメージのビットマップです。最終イメージはレンダリング時に使用されます。表示オブジェクトが変更されない限り、最終イメージを更新する必要はありません。

flash.filters パッケージにはフィルター用のクラスが含まれます。例えば、DropShadow フィルターを作成するには、次のようにすることができます。

import flash.filters.DropShadowFilter var myFilter:DropShadowFilter = new DropShadowFilter (distance, angle, color, alpha, blurX, blurY, quality, inner, knockout)

is 演算子を使用して、filter 配列内のそれぞれのインデックス位置に割り当てられるフィルターの種類を判別できます。例えば、次のコードは、DropShadowFilter である filters 配列内の最初のフィルターの位置を判別する方法を示しています。

import flash.text.TextField; import flash.filters.~~; var tf:TextField = new TextField(); var filter1:DropShadowFilter = new DropShadowFilter(); var filter2:GradientGlowFilter = new GradientGlowFilter(); tf.filters = [filter1, filter2]; tf.text = "DropShadow index: " + filterPosition(tf, DropShadowFilter).toString(); // 0 addChild(tf) function filterPosition(displayObject:DisplayObject, filterClass:Class):int { for (var i:uint = 0; i < displayObject.filters.length; i++) { if (displayObject.filters[i] is filterClass) { return i; } } return -1; }

注意: 新しいフィルターオブジェクトを DisplayObject.filters 配列に直接追加できないため、次のコードは、myDisplayObject という名前のターゲット表示オブジェクトに影響を与えません。

myDisplayObject.filters.push(myDropShadow);
flash.filters パッケージflash.display.ShaderInput.input
height 表示オブジェクトの高さを示します(ピクセル単位)。Number 表示オブジェクトの高さを示します(ピクセル単位)。この高さは、表示オブジェクトのコンテンツの境界に基づいて計算されます。次のコードに示すように、この height プロパティを設定すると、それに合わせて scaleY プロパティの値が調整されます。 var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;

TextField と Video オブジェクトを除いて、height を別の値に設定しようとしても、コンテンツのない表示オブジェクト(例えば、空のスプラインなど)の高さは 0 になります。

次のコードでは、2 つの TextField オブジェクトを作成し、それぞれの height プロパティを調整します。このとき、調整はそれぞれの textHeight プロパティに基づいて行われます。また、その y プロパティを設定することで、2 番目のテキストフィールドを配置します。 import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2);
loaderInfo この表示オブジェクトが属するファイルの読み込み情報を含む LoaderInfo オブジェクトを返します。flash.display:LoaderInfo この表示オブジェクトが属するファイルの読み込み情報を含む LoaderInfo オブジェクトを返します。loaderInfo プロパティは、SWF ファイルのルート表示オブジェクト用、または(ActionScript を使用して描画されるビットマップではなく)ロードされるビットマップ用として定義されています。loaderInfo オブジェクト(myDisplayObject という名前の表示オブジェクトを含んでいる SWF ファイルに関連)を見つけるには、myDisplayObject.root.loaderInfo を使用します。

this.root.loaderInfo.addEventListener(Event.COMPLETE, func) を呼び出すことにより、大きな SWF ファイルのダウンロードを監視できます。

次のコードでは、this が表示オブジェクトを参照するものと想定しています。このコードでは、表示オブジェクトのルート SWF ファイルの URL を出力します。 trace (this.loaderInfo.url);
LoaderInfo クラス
mask 呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。flash.display:DisplayObject表示オブジェクトのマスクを設定します。 呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。ステージの拡大および縮小時にマスクが確実に機能するためには、表示リストのアクティブな部分に mask 表示オブジェクトが含まれている必要があります。mask オブジェクト自体は描画されません。マスクを除去するには masknull に設定します。

マスクオブジェクトを拡大および縮小するためには、そのオブジェクトが表示リストに含まれている必要があります。(startDrag() メソッドを呼び出すことにより)マスク Sprite オブジェクトをドラッグするためには、そのオブジェクトが表示リストに含まれなければなりません。マスクスプライトに対して startDrag() メソッドを呼び出すには(この呼び出しは、スプライトによって送出される mouseDown イベントに基づきます)、スプライトの buttonMode プロパティを true に設定します。

cacheAsBitmap プロパティに true を設定し、cacheAsBitmapMatrix プロパティに Matrix オブジェクトを設定して表示オブジェクトがキャッシュされる場合は、マスクおよびその適用対象である表示オブジェクトの両方が、同じキャッシュ対象ビットマップの一部である必要があります。つまり、表示オブジェクトがキャッシュされる場合は、マスクはその表示オブジェクトの子である必要があります。表示リスト内でその表示オブジェクトの祖先にあたるオブジェクトがキャッシュされる場合、マスクはその祖先の子、またはその祖先の子孫である必要があります。マスク適用対象オブジェクトの祖先のうち複数がキャッシュされる場合は、マスクは、表示リスト内でそのマスク適用対象オブジェクトに最も近いキャッシュ対象コンテナの子孫である必要があります。

注意:1 つの mask オブジェクトを使用して複数の呼び出し元表示オブジェクトをマスクすることはできません。mask が 2 番目の表示オブジェクトに割り当てられると、そのオブジェクトは最初の表示オブジェクトのマスクとして削除され、最初の表示オブジェクトの mask プロパティは null になります。

次のコードでは、TextField オブジェクトと Sprite オブジェクトを作成し、Sprite オブジェクトを TextField オブジェクトのマスクとして設定します。ユーザーがテキストフィールドをクリックすると、drag() イベントリスナー機能が、マスク Sprite オブジェクトの startDrag() メソッドを呼び出します。 import flash.text.TextField; import flash.display.Sprite; import flash.events.MouseEvent; var tf:TextField = new TextField(); tf.text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " + "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " tf.selectable = false; tf.wordWrap = true; tf.width = 150; addChild(tf); var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 40, 40); addChild(square); tf.mask = square; tf.addEventListener(MouseEvent.MOUSE_DOWN, drag); tf.addEventListener(MouseEvent.MOUSE_UP, noDrag); function drag(event:MouseEvent):void { square.startDrag(); } function noDrag(event:MouseEvent):void { square.stopDrag(); }
mouseX マウスまたはユーザー入力デバイスの x 軸の位置をピクセルで示します。Number マウスまたはユーザー入力デバイスの x 軸の位置をピクセルで示します。

注意:DisplayObject が回転している場合、返される x 座標は回転前のオブジェクトの座標を反映します。

次のコードでは、Sprite オブジェクトを作成し、ユーザーがスプライトをクリックすると、mouseX および mouseY の位置がトレースされます。 import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 200, 200); addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates); function traceCoordinates(event:MouseEvent):void { trace(square.mouseX, square.mouseY); }
mouseY マウスまたはユーザー入力デバイスの y 軸の位置をピクセルで示します。Number マウスまたはユーザー入力デバイスの y 軸の位置をピクセルで示します。

注意:DisplayObject が回転している場合、返される y 座標は回転前のオブジェクトの座標を反映します。

次のコードでは、Sprite オブジェクトを作成し、ユーザーがスプライトをクリックすると、mouseX および mouseY の位置がトレースされます。 import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 200, 200); addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates); function traceCoordinates(event:MouseEvent):void { trace(square.mouseX, square.mouseY); }
name DisplayObject のインスタンス名を示します。StringFlash オーサリングツールで、タイムライン上に配置されたオブジェクトに対して、このプロパティを設定しようとした場合 IllegalOperationErrorflash.errors:IllegalOperationErrorこの DisplayObject の名前です。 DisplayObject のインスタンス名を示します。親表示オブジェクトコンテナの子リスト内でオブジェクトを識別するには、表示オブジェクトコンテナの getChildByName() メソッドを呼び出します。 次のコードでは、2 つの Sprite オブジェクトを作成し、ユーザーがいずれかのオブジェクトをクリックしたときに関連付けられる name プロパティをトレースします。 import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFF0000); circle1.graphics.drawCircle(40, 40, 40); circle1.name = "circle1"; addChild(circle1); circle1.addEventListener(MouseEvent.CLICK, traceName); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x0000FF); circle2.graphics.drawCircle(140, 40, 40); circle2.name = "circle2"; addChild(circle2); circle2.addEventListener(MouseEvent.CLICK, traceName); function traceName(event:MouseEvent):void { trace(event.target.name); } opaqueBackground 表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。Object 表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。透明のビットマップにはアルファチャンネルデータが含まれ、透明に描画されます。不透明のビットマップには、アルファチャンネルがありません(したがって透明のビットマップより速くレンダリングされます)。ビットマップが不透明の場合、使用する独自の背景色を指定する必要があります。

数値が設定された場合、これは数値によって指定される RGB 背景色を持つ不透明な(透明でない)サーフェスになります。null(デフォルト値)に設定された場合、表示オブジェクトの背景は透明になります。

opaqueBackground プロパティの主な用途は、レンダリング最適化のために cacheAsBitmap プロパティと共に使用することです。cacheAsBitmap プロパティが true に設定されている表示オブジェクトでは、opaqueBackground を設定すると、レンダリングのパフォーマンスが向上する可能性があります。

不透明な背景領域は照合されませんhitTestPoint() メソッドを、shapeFlag パラメーターを true に設定して呼び出す場合)。

不透明な背景領域は、マウスイベントに反応しません。

次のコードでは、青色の円の Shape オブジェクトを作成し、その opaqueBackground プロパティを赤色(0xFF0000)に設定します。 import flash.display.Shape; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.opaqueBackground = 0xFF0000; addChild(circle);
cacheAsBitmaphitTestPoint()
parent この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。flash.display:DisplayObjectContainer親表示オブジェクトは、アクセス権限が与えられていないセキュリティ Sandbox に属しています。親ムービーで Security.allowDomain() メソッドを呼び出すことにより、このような状況を避けることができます。 SecurityErrorSecurityError この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。表示リスト階層内の現在の表示オブジェクトの上位にある表示オブジェクトへの相対パスを指定するには、parent プロパティを使用します。

parent を使用して表示リストの複数のレベルを上に移動するには、次のようにします。

this.parent.parent.alpha = 20;
次のコードでは、3 つの Sprite オブジェクトを作成し、parent プロパティに表示リスト階層が反映されるしくみを示します。 import flash.display.Sprite; var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; var sprite3:Sprite = new Sprite(); sprite3.name = "sprite3"; sprite1.addChild(sprite2); sprite2.addChild(sprite3); trace(sprite2.parent.name); // sprite1 trace(sprite3.parent.name); // sprite2 trace(sprite3.parent.parent.name); // sprite1
root 読み込まれた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。flash.display:DisplayObjectこのオブジェクトのルート表示オブジェクトを返します。 読み込まれた SWF ファイル内の表示オブジェクトの場合、root プロパティは、その SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。読み込まれたイメージファイルを表す Bitmap オブジェクトの場合、root プロパティは、Bitmap オブジェクトそのものになります。読み込まれた最初の SWF ファイルのメインクラスのインスタンスの場合、root プロパティは、表示オブジェクトそのものになります。Stage オブジェクトの root プロパティは、Stage オブジェクトそのものになります。表示リストに追加されていない表示オブジェクトの場合、root プロパティには、null が設定されます。ただし、表示リスト外ではあるものの、読み込まれた SWF ファイルの最上位の表示オブジェクトの子である表示オブジェクトコンテナに追加されていている場合は除きます。

例えば、Sprite() コンストラクターメソッドを呼び出して新しい Sprite オブジェクトを作成した場合、表示リスト(または、表示リストの外にあるが、SWF ファイルの最上位の表示オブジェクトの子である表示オブジェクトコンテナ)に追加されるまで、root プロパティは null になります。

読み込まれた SWF ファイルの場合、ファイルの読み込みに使用した Loader オブジェクトが表示リストに存在しない可能性もありますが、SWF ファイルの最上位の表示オブジェクトの root プロパティには、オブジェクトそのものが設定されます。Loader オブジェクトでは、root プロパティは設定されません。この状態は、root プロパティが設定されている表示オブジェクトの子として追加されるまで続きます。

次のコードでは、Stage オブジェクト、表示リストに追加される前と後の両方の表示オブジェクト(Loader オブジェクト)、およびロードされたオブジェクト(ロードされた Bitmap オブジェクト)の root プロパティの違いを表示します。 import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; trace(stage.root); // [object Stage] var ldr:Loader = new Loader(); trace (ldr.root); // null addChild(ldr); trace (ldr.root); // [object ...] var urlReq:URLRequest = new URLRequest("example.jpg"); ldr.load(urlReq); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); function loaded(event:Event):void { trace(ldr.content.root); // [object Bitmap] }
rotationX DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの x 軸の回転角を度単位で示します。Number DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの x 軸の回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 を加算または減算して、範囲内に収まる値になるように調整されます。 この例では、2 つの楕円の rotationX プロパティと rotationY プロパティを使用して、これらの楕円を回転させます。最初の楕円の基準点は、楕円の中心に設定されています。この楕円は、その中心を軸にして回転します。2 つ目の楕円は、外部のポイントを軸にして回転します。 package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.display.Graphics; import flash.events.TimerEvent; import flash.utils.Timer; public class RotationExample1 extends MovieClip { private var ellipse:Shape = new Shape(); private var speed:int = 10; private var ellipse1:Shape; private var ellipse2:Shape; public function RotationExample1():void { ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); this.addChild(ellipse1); this.addChild(ellipse2); var t:Timer = new Timer(50); t.addEventListener(TimerEvent.TIMER, timerHandler); t.start(); } private function drawEllipse(x1, y1, x2, y2):Shape { var e:Shape = new Shape(); e.graphics.beginFill(0xFF0000); e.graphics.lineStyle(2); e.graphics.drawEllipse(x1, y1, 100, 80); e.graphics.endFill(); e.x = x2; e.y = y2; e.z = 1; return e; } private function timerHandler(event:TimerEvent):void { ellipse1.rotationY += speed; ellipse1.rotationX -= speed; ellipse2.rotationY += speed; ellipse2.rotationX -= speed; } } } 次の例では、Flash Professional、ActionScript 3.0 および Flash Player 10 を使用して、オブジェクトの rotationX プロパティを設定し、Sprite オブジェクトを x 軸の周囲で 3D 回転させる方法を示します。ActionScriptExamples.com で作成された例。 //Requires: // - Slider control UI component in Flash library. // - Publish for Flash Player 10. // [SWF(width="400", height="300")] import fl.controls.Slider; import fl.controls.SliderDirection; import fl.events.SliderEvent; var slider:Slider = new Slider(); slider.direction = SliderDirection.HORIZONTAL; slider.minimum = 0; slider.maximum = 360; slider.value = 45; slider.tickInterval = 45; slider.snapInterval = 1; slider.liveDragging = true; slider.addEventListener(SliderEvent.CHANGE, slider_change); slider.move(10, 10); addChild(slider); var spr:Sprite = new Sprite(); spr.graphics.lineStyle(2, 0xFF0000); spr.graphics.drawRect(0, 0, 100, 80); spr.x = Math.round((stage.stageWidth - spr.width)/2); spr.y = Math.round((stage.stageHeight - spr.height)/2); spr.rotationX = 45; addChild(spr); function slider_change(evt:SliderEvent):void { spr.rotationX = evt.value; } rotationY DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの y 軸の回転角を度単位で示します。Number DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの y 軸の回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 を加算または減算して、範囲内に収まる値になるように調整されます。 この例では、2 つの楕円の rotationX プロパティと rotationY プロパティを使用して、これらの楕円を回転させます。最初の楕円の基準点は、楕円の中心に設定されています。この楕円は、その中心を軸にして回転します。2 つ目の楕円は、外部のポイントを軸にして回転します。 package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.display.Graphics; import flash.events.TimerEvent; import flash.utils.Timer; public class RotationExample1 extends MovieClip { private var ellipse:Shape = new Shape(); private var speed:int = 10; private var ellipse1:Shape; private var ellipse2:Shape; public function RotationExample1():void { ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); this.addChild(ellipse1); this.addChild(ellipse2); var t:Timer = new Timer(50); t.addEventListener(TimerEvent.TIMER, timerHandler); t.start(); } private function drawEllipse(x1, y1, x2, y2):Shape { var e:Shape = new Shape(); e.graphics.beginFill(0xFF0000); e.graphics.lineStyle(2); e.graphics.drawEllipse(x1, y1, 100, 80); e.graphics.endFill(); e.x = x2; e.y = y2; e.z = 1; return e; } private function timerHandler(event:TimerEvent):void { ellipse1.rotationY += speed; ellipse1.rotationX -= speed; ellipse2.rotationY += speed; ellipse2.rotationX -= speed; } } } rotationZ DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの z 軸の回転角を度単位で示します。Number DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの z 軸の回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 を加算または減算して、範囲内に収まる値になるように調整されます。 rotation DisplayObject インスタンスの元の位置からの回転角を度単位で示します。Number DisplayObject インスタンスの元の位置からの回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 を加算または減算して、範囲内に収まる値になるように調整されます。例えば、my_video.rotation = 450 というステートメントは my_video.rotation = 90 と同義です。 次のコードでは、Sprite オブジェクトを作成し、ユーザーがそれをクリックすると、オブジェクトが回転します。 import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(-50, -50, 100, 100); square.x = 150; square.y = 150; addChild(square); square.addEventListener(MouseEvent.CLICK, rotate); function rotate(event:MouseEvent):void { square.rotation += 15; } scale9Grid 現在有効な拡大 / 縮小グリッドです。flash.geom:Rectangleメソッドに無効な引数を渡した場合 ArgumentErrorArgumentError 現在有効な拡大 / 縮小グリッドです。null に設定されている場合、拡大または縮小変換が適用されると表示オブジェクト全体は通常どおりに拡大または縮小されます。

scale9Grid プロパティを定義すると、グリッドの中央領域を定義する scale9Grid 矩形に基づいて、9 つの領域からなるグリッドに表示オブジェクトが分割されます。グリッドの他の 8 領域は、次のような領域です。

  • 矩形の外側の左上端
  • 矩形の上側の領域
  • 矩形の外側の右上端
  • 矩形の左側の領域
  • 矩形の右側の領域
  • 矩形の外側の左下端
  • 矩形の下側にある領域
  • 矩形の外側の右下端

矩形で定義される、中心以外の 8 つの領域は、拡大 / 縮小時に特別な規則が適用される額縁のようなものと考えることができます。

scale9Grid プロパティが設定されているときに表示オブジェクトを拡大 / 縮小すると、テキストとグラデーションはすべて通常どおり拡大 / 縮小しますが、それ以外の種類のオブジェクトには次のような規則が適用されます。

  • 中央領域のコンテンツは通常どおり拡大 / 縮小します。
  • 左上、右上、左下、右下のコンテンツは拡大 / 縮小しません。
  • 上下の領域のコンテンツは水平方向にのみ拡大 / 縮小します。左右の領域のコンテンツは垂直方向にのみ拡大 / 縮小します。
  • すべての塗り(ビットマップ、ビデオ、グラデーションを含む)は、形状に収まるように伸縮されます。

表示オブジェクトが回転されると、それ以降の拡大 / 縮小はすべて通常どおりになり、scale9Grid プロパティは無視されます。

例えば、次のような表示オブジェクトと、その表示オブジェクトの scale9Grid として適用される矩形があるとします。

表示オブジェクトです。

赤の矩形は scale9Grid を表します。

表示オブジェクトを拡大 / 縮小または伸縮すると、矩形内のオブジェクトは通常どおり拡大 / 縮小しますが、矩形外のオブジェクトは scale9Grid の規則に従って拡大 / 縮小します。

75% に縮小:50% に縮小:25% に縮小:水平方向に 150% 伸長:

scale9Grid 設定の一般的な使用法は、拡大 / 縮小時にエッジ領域が同じ幅に保たれるコンポーネントとして表示オブジェクトをセットアップすることです。

次のコードでは、Shape オブジェクトを作成し、その graphics プロパティで矩形を描画します。矩形は、太さ 20 ピクセルの線を境界に使用し、グラデーションで塗りつぶします。タイマーイベントでは scale() 関数を呼び出し、scaleX プロパティおよび scaleY プロパティを調整して、Shape オブジェクトを拡大 / 縮小します。scale9Grid が Shape オブジェクトに適用されるため、矩形の境界線は拡大 / 縮小されず、グラデーションの塗りのみが拡大 / 縮小されます。 import flash.display.Shape; import flash.display.GradientType; import flash.display.SpreadMethod; import flash.display.InterpolationMethod; import flash.geom.Matrix; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var square:Shape = new Shape(); square.graphics.lineStyle(20, 0xFFCC00); var gradientMatrix:Matrix = new Matrix(); gradientMatrix.createGradientBox(15, 15, Math.PI, 10, 10); square.graphics.beginGradientFill(GradientType.RADIAL, [0xffff00, 0x0000ff], [100, 100], [0, 0xFF], gradientMatrix, SpreadMethod.REFLECT, InterpolationMethod.RGB, 0.9); square.graphics.drawRect(0, 0, 100, 100); var grid:Rectangle = new Rectangle(20, 20, 60, 60); square.scale9Grid = grid ; addChild(square); var tim:Timer = new Timer(100); tim.start(); tim.addEventListener(TimerEvent.TIMER, scale); var scaleFactor:Number = 1.01; function scale(event:TimerEvent):void { square.scaleX *= scaleFactor; square.scaleY *= scaleFactor; if (square.scaleX > 2.0) { scaleFactor = 0.99; } if (square.scaleX < 1.0) { scaleFactor = 1.01; } }
flash.geom.Rectangle
scaleX 基準点から適用されるオブジェクトの水平スケール(パーセンテージ)を示します。Number 基準点から適用されるオブジェクトの水平スケール(パーセンテージ)を示します。 デフォルトの基準点は (0,0) です。1.0 は縮尺 100% と同等です。

ローカル座標系を拡大 / 縮小すると、x および y プロパティの値が変化します。この変化は、整数のピクセル数で表されます。

次のコードでは、Sprite オブジェクトを作成し、その graphics プロパティで矩形を描画します。ユーザーがスプライトをクリックすると、スプライトは 10% 拡大されます。 import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleY オブジェクトの基準点から適用されるオブジェクトの垂直スケール(パーセンテージ)を示します。Number オブジェクトの基準点から適用されるオブジェクトの垂直スケール(パーセンテージ)を示します。 デフォルトの基準点は (0,0) です。1.0 は縮尺 100% です。

ローカル座標系を拡大 / 縮小すると、x および y プロパティの値が変化します。この変化は、整数のピクセル数で表されます。

次のコードでは、Sprite オブジェクトを作成し、その graphics プロパティで矩形を描画します。ユーザーがスプライトをクリックすると、スプライトは 10% 拡大されます。 import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleZ オブジェクトの基準点から適用されるオブジェクトの奥行きスケール(パーセンテージ)を示します。Number オブジェクトの基準点から適用されるオブジェクトの奥行きスケール(パーセンテージ)を示します。デフォルトの基準点は (0,0) です。1.0 は縮尺 100% です。

ローカル座標系を拡大 / 縮小すると、xy、および z プロパティの値が変化します。これらの値はピクセル単位の整数値で表されます。

z
scrollRect 表示オブジェクトのスクロール矩形の境界です。flash.geom:Rectangle 表示オブジェクトのスクロール矩形の境界です。表示オブジェクトは矩形で定義されたサイズにトリミングされ、x および y プロパティ(scrollRect オブジェクトのプロパティ)を変更すると、表示オブジェクトは矩形の内部でスクロールします。

scrollRect 矩形オブジェクトのプロパティは、表示オブジェクトの座標空間を使用し、表示オブジェクト全体と同じように拡大および縮小されます。スクロールしている表示オブジェクト上のトリミングされたウィンドウの隅の境界は、表示オブジェクトの原点 (0,0)、および矩形の幅と高さによって定義されるポイントです。これらは原点を中心に配置されるのではなく、原点を使って領域の左上隅を定義します。スクロールされる表示オブジェクトは、常にピクセル増分全体の中でスクロールします。

x プロパティ(scrollRect 矩形オブジェクトのプロパティ)を設定することにより、オブジェクトを左右にスクロールできます。y プロパティ(scrollRect 矩形オブジェクトのプロパティ)を設定することにより、オブジェクトを上下にスクロールできます。表示オブジェクトを 90 度回転して左右にスクロールすると、この表示オブジェクトは実際には上下にスクロールします。

次の例では、scrollRect プロパティが、表示オブジェクトである circle のスクロール領域を定義する方法を示しています。circle オブジェクトをクリックすると、clicked() イベントハンドラーメソッドは、y プロパティ(scrollRect プロパティ(circle オブジェクトのプロパティ)のプロパティ)を調整し、結果としてオブジェクトが下にスクロールします。 import flash.display.Sprite; import flash.geom.Rectangle; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(200, 200, 200); circle.scrollRect = new Rectangle(0, 0, 200, 200); addChild(circle); circle.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { var rect:Rectangle = event.target.scrollRect; rect.y -= 5; event.target.scrollRect = rect; }
flash.geom.Rectangle
stage 表示オブジェクトのステージです。flash.display:Stage 表示オブジェクトのステージです。Flash ランタイムアプリケーションには Stage オブジェクトが 1 つだけあります。例えば、複数の表示オブジェクトを作成して表示リストにロードすることができます。その場合、(ロードされた SWF ファイルに表示オブジェクトが属する場合であっても)それぞれの表示オブジェクトの stage プロパティは、同じ Stage オブジェクトを参照します。

表示オブジェクトが表示リストに追加されていない場合、stage プロパティは null に設定されます。

次のコードは、2 つの TextField オブジェクトを作成し、Stage オブジェクトの width プロパティを使用して、テキストフィールドを配置します。 import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.x = 10; addChild(tf1); tf1.width = tf1.stage.stageWidth / 2 - 10; var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.x = tf1.x + tf1.width + 5; addChild(tf2); tf2.width = tf2.stage.stageWidth / 2 - 10; trace(stage.stageWidth);
transform 表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。flash.geom:Transform 表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。特定のプロパティつまり matrix、colorTransform、および 3 つの読み取り専用プロパティ(concatenatedMatrixconcatenatedColorTransform、および pixelBounds)については、Transform クラスの最初の部分で説明します。

変形オブジェクトの各プロパティは、それ自身がオブジェクトです。この概念は重要です。matrix オブジェクトまたは colorTransform オブジェクトの新しい値を設定する唯一の方法は、新しいオブジェクトを作成し、そのオブジェクトを transform.matrix プロパティまたは transform.colorTransform プロパティにコピーすることです。

例えば、表示オブジェクトのマトリックスの tx 値を増やすには、次のようにして matrix オブジェクト全体のコピーを作成した後、新しいオブジェクトを変形オブジェクトの matrix プロパティにコピーする必要があります。


    var myMatrix:Matrix = myDisplayObject.transform.matrix;  
    myMatrix.tx += 10; 
    myDisplayObject.transform.matrix = myMatrix;  
    

tx プロパティを直接設定することはできません。次のコードは myDisplayObject に影響を与えません。


    myDisplayObject.transform.matrix.tx += 10;
    

また、変形オブジェクト全体をコピーし、それを別の表示オブジェクトの transform プロパティに割り当てることもできます。例えば、次のコードでは、変形オブジェクト全体を myOldDisplayObj から myNewDisplayObj にコピーします。

myNewDisplayObj.transform = myOldDisplayObj.transform;

生成される表示オブジェクト myNewDisplayObj のマトリックス、カラー変換、ピクセル境界は、古い表示オブジェクト myOldDisplayObj と同じ値になります。

テレビ用 AIR デバイスでは、ハードウェアアクセラレーションが使用可能な場合、これがカラー変換に自動的に使用されます。

次のコードでは、Sprite オブジェクト square を設定します。ユーザーがスプライトをクリックすると、transformer() メソッドにより、colorTransform プロパティおよび matrix プロパティ(スプライトの transform プロパティのプロパティ)が調整されます。 import flash.display.Sprite; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Transform; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.lineStyle(20, 0xFF2200); square.graphics.beginFill(0x0000DD); square.graphics.drawRect(0, 0, 100, 100); addChild(square); var resultColorTransform:ColorTransform = new ColorTransform(); resultColorTransform.alphaMultiplier = 0.5; resultColorTransform.redOffset = 155; resultColorTransform.greenMultiplier = 0.5; var skewMatrix:Matrix = new Matrix(1, 1, 0, 1); square.addEventListener(MouseEvent.CLICK, transformer); function transformer(event:MouseEvent):void { var transformation:Transform = square.transform; var tempMatrix:Matrix = square.transform.matrix; tempMatrix.concat(skewMatrix); square.transform.colorTransform = resultColorTransform; square.transform.matrix = tempMatrix; }
Transform クラス
visible 表示オブジェクトが可視かどうかを示します。Boolean 表示オブジェクトが可視かどうかを示します。非可視の表示オブジェクトは無効になります。例えば、ある InteractiveObject インスタンスが visible=false に設定されている場合、これをクリックすることはできません。 次のコードでは、Timer オブジェクトを使用して、表示オブジェクトの visible プロパティを定期的に変更する関数を呼び出して、点滅効果を達成します。 import flash.text.TextField; import flash.utils.Timer; import flash.events.TimerEvent; var tf:TextField = new TextField(); tf.text = "Hello."; addChild(tf); var tim:Timer = new Timer(250); tim.start(); tim.addEventListener(TimerEvent.TIMER, blinker); function blinker(event:TimerEvent):void { tf.visible = !tf.visible; } width 表示オブジェクトの幅を示します(ピクセル単位)。Number 表示オブジェクトの幅を示します(ピクセル単位)。この幅は、表示オブジェクトのコンテンツの境界に基づいて計算されます。次のコードに示すように、この width プロパティを設定すると、それに合わせて scaleX プロパティの値が調整されます。 var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;

TextField と Video オブジェクトを除いて、width を別の値に設定しようとしても、コンテンツのない表示オブジェクト(例えば、空のスプラインなど)の幅は 0 になります。

次のコードでは、Sprite オブジェクト square を設定します。ユーザーがスプライトをクリックすると、widen() メソッドが、スプライトの width プロパティを増加します。 import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, widen); function widen(event:MouseEvent):void { square.width += 10; }
x 親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。Number 親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。変形されている DisplayObjectContainer にオブジェクトが含まれる場合、そのオブジェクトの座標系は、それを囲む DisplayObjectContainer のローカル座標系になります。したがって、反時計回りに 90 度回転した DisplayObjectContainer の場合、その DisplayObjectContainer の子は、反時計回りに 90 度回転した座標系を継承します。オブジェクトの座標は、基準点の位置を参照します。 次のコードでは、circle Sprite オブジェクトを設定します。Timer オブジェクトを使用して、スプライトの x プロパティを 50 ミリ秒ごとに変更します。 import flash.display.Sprite; import flash.utils.Timer; import flash.events.TimerEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFF0000); circle.graphics.drawCircle(100, 100, 100); addChild(circle); var tim:Timer = new Timer(50); tim.start(); tim.addEventListener(TimerEvent.TIMER, bounce); var xInc:Number = 2; function bounce(event:TimerEvent):void { circle.x += xInc; if (circle.x > circle.width) { xInc = -2; } if (circle.x < 0) { xInc = 2; } } y 親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。Number 親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。変形されている DisplayObjectContainer にオブジェクトが含まれる場合、そのオブジェクトの座標系は、それを囲む DisplayObjectContainer のローカル座標系になります。したがって、反時計回りに 90 度回転した DisplayObjectContainer の場合、その DisplayObjectContainer の子は、反時計回りに 90 度回転した座標系を継承します。オブジェクトの座標は、基準点の位置を参照します。 次のコードでは、2 つの TextField オブジェクトを作成し、それぞれの height プロパティを調整します。このとき、調整はそれぞれの textHeight プロパティに基づいて行われます。また、その y プロパティを設定することで、2 番目のテキストフィールドを配置します。 import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2); z 3D 親コンテナを基準にした、DisplayObject インスタンスの z 軸に沿った z 座標位置を示します。Number 3D 親コンテナを基準にした、DisplayObject インスタンスの z 軸に沿った z 座標位置を示します。 z プロパティは、3D 座標で使用されます。画面座標またはピクセル座標用ではありません。

表示オブジェクトの z プロパティをデフォルト値の 0 以外に設定すると、対応する Matrix3D オブジェクトが自動的に作成されます。これにより、3 次元での表示オブジェクトの位置と方向が調整されます。z 軸を使用して作業する場合、x プロパティおよび y プロパティの既存の動作は、画面座標またはピクセル座標から 3D 親コンテナを基準にした位置に変更されます。

例えば、位置(x = 100, y = 100, z = 200)にある _root の子は、ピクセル位置(100, 100)に描画されません。この子は、3D 投影計算の結果に応じた位置に描画されます。次の計算が実行されます。

(x~~cameraFocalLength/cameraRelativeZPosition, y~~cameraFocalLength/cameraRelativeZPosition)

この例では、2 つの楕円を描画し、これらの楕円を消失点に向かって前後に(z 軸に沿って)移動させます。一方の楕円は、他方の楕円よりも速く移動するよう設定されています。 package { import flash.display.MovieClip; import flash.display.Shape; import flash.display.Graphics; import flash.events.Event; import flash.geom.*; public class ZAxisExample1 extends MovieClip { private var ellipse1Back:int = 1; private var ellipse2Back:int = 1; private var depth:int = 1000; public function ZAxisExample1():void { var ellipse1 = drawEllipse((this.stage.stageWidth / 2) - 100, (this.stage.stageHeight / 2), 100, 80, 10); var ellipse2 = drawEllipse((this.stage.stageWidth / 2) + 100, (this.stage.stageHeight / 2), 100, 80, 300); this.addChild(ellipse1); this.addChild(ellipse2); ellipse1.addEventListener(Event.ENTER_FRAME, ellipse1FrameHandler); ellipse2.addEventListener(Event.ENTER_FRAME, ellipse2FrameHandler); } private function drawEllipse(x:Number, y:Number, w:Number, h:Number, z:Number):Shape { var s:Shape = new Shape(); s.z = z; s.graphics.beginFill(0xFF0000); s.graphics.lineStyle(2); s.graphics.drawEllipse(x, y, w, h); s.graphics.endFill(); return s; } private function ellipse1FrameHandler(e:Event):void { ellipse1Back = setDepth(e, ellipse1Back); e.currentTarget.z += ellipse1Back * 10; } private function ellipse2FrameHandler(e:Event):void { ellipse2Back = setDepth(e, ellipse2Back); e.currentTarget.z += ellipse2Back * 20; } private function setDepth(e:Event, d:int):int { if(e.currentTarget.z > depth) { e.currentTarget.z = depth; d = -1; }else if (e.currentTarget.z < 0) { e.currentTarget.z = 0; d = 1; } return d; } } }
flash.geom.PerspectiveProjectionflash.geom.Matrix3Dtransform
blendShader 前景と背景のブレンドに使用するシェーダーを設定します。flash.display:Shaderシェーダー出力タイプがこの操作に対応しない場合(シェーダーは pixel4 出力を指定する必要があります)。 ArgumentErrorArgumentErrorシェーダーが指定したイメージ入力が 2 より少ないか、または最初の 2 つの入力が image4 入力でない場合。 ArgumentErrorArgumentErrorシェーダーが指定したイメージ入力が存在しない場合。 ArgumentErrorArgumentErrorByteArray または Vector の場合。<Number> インスタンスが入力として使用され、ShaderInput の width および height プロパティが指定されていない、または指定された値が入力オブジェクトのデータ量と一致しない場合。詳しくは、ShaderInput.input プロパティを参照してください。 ArgumentErrorArgumentError 前景と背景のブレンドに使用するシェーダーを設定します。blendMode プロパティを BlendMode.SHADER に設定すると、指定された Shader が表示オブジェクトのブレンドモード出力の作成に使用されます。

Shader インスタンスに表示オブジェクトの blendShader プロパティを設定すると、表示オブジェクトの blendMode プロパティが BlendMode.SHADER に自動的に設定されます。blendMode プロパティが BlendMode.SHADER に設定される blendShader プロパティを設定した後で blendMode プロパティの値を変更すると、ブレンドモードがリセットされ、blendMode プロパティを BlendMode.SHADER に設定するだけでブレンドシェーダーを使用できます。ブレンドモードに使用したシェーダーを変更する場合を除いて、blendShader プロパティを再度設定する必要はありません。

blendShader プロパティに割り当てた Shader は、少なくとも 2 つ以上の image4 入力を指定する必要があります。入力は、関連付けられている ShaderInput オブジェクトの input プロパティを使用してコードで指定する必要はありません。背景表示オブジェクトが、最初の入力として(index 0 の入力)自動的に使用されます。前景表示オブジェクトは、2 番目の入力として(index 1 の入力)使用されます。ブレンドシェーダーとして使用するシェーダーは、2 つ以上入力を指定できます。その場合、追加の入力は、ShaderInput インスタンスの input プロパティを設定することで指定する必要があります。

Shader インスタンスをこのプロパティに割り当てると、シェーダーが内部的にコピーされます。ブレンド操作は、元のシェーダーを参照するのではなく、その内部コピーを使用します。パラメーター値、入力、バイトコードの変更などの変更をシェーダーに加えたとしても、ブレンドモードで使用したコピーシェーダーにはその変更は適用されません。

flash.display.BlendModeflash.display.Shaderflash.display.ShaderInput
Loader Loader クラスは、SWF ファイルまたはイメージ(JPG、PNG、または GIF)ファイルを読み込むために使用します。flash.display:DisplayObjectContainer Loader クラスは、SWF ファイルまたはイメージ(JPG、PNG、または GIF)ファイルを読み込むために使用します。読み込みを開始するには load() メソッドを使用します。読み込まれた表示オブジェクトは Loader オブジェクトの子として追加されます。

テキストまたはバイナリデータを読み込むには URLLoader クラスを使用します。

Loader クラスは、継承する次のメソッドをオーバーライドします。これは、Loader オブジェクトが持つことができるのは 1 つの子表示オブジェクト、つまりロードするオブジェクトに限られているためです。次のメソッドを呼び出すと例外がスローされます。メソッドは、addChild()addChildAt()removeChild()removeChildAt()、および setChildIndex() です。ロードされた表示オブジェクトを削除するには、親の DisplayObjectContainer 子配列から Loader オブジェクトを削除する必要があります。

注意:ActionScript 2.0 の MovieClipLoader クラスと LoadVars クラスは、ActionScript 3.0 では使用されません。それらは、Loader クラスと URLLoader クラスに置き換えられました。

Loader クラスを使用するときは、Flash Player および Adobe AIR のセキュリティモデルを考慮してください。

  • コンテンツは、アクセスできるソースであればどのソースからでもロードできます。
  • 呼び出し元 SWF ファイルがネットワーク上のサンドボックスにあり、読み込むファイルがローカルにある場合は読み込めません。
  • 読み込まれたコンテンツが ActionScript 3.0 で作成された SWF ファイルの場合、別のセキュリティ Sandbox にある SWF ファイルでそれをクロススクリプトすることはできません。ただし、読み込まれたコンテンツファイルで、System.allowDomain() または System.allowInsecureDomain() メソッドの呼び出しによってクロススクリプトに関する取り決めが承認されていた場合は可能です。
  • 読み込まれたコンテンツが AVM1 SWF ファイル(ActionScript 1.0 または 2.0 で作成されたもの)の場合、AVM2 SWF ファイル(ActionScript 3.0 で作成されたもの)でそれをクロススクリプトすることはできません。ただし、LocalConnection クラスを使用して、2 つの SWF ファイル間で通信を行うことはできます。
  • ロードされたコンテンツがイメージの場合、セキュリティサンドボックスの外にある SWF ファイルからそのデータにアクセスすることはできません。ただし、その SWF ファイルのドメインがイメージの元のドメインにある URL ポリシーファイルに含まれていた場合は可能です。
  • ローカルファイルシステムのサンドボックスにあるムービークリップでは、ネットワーク接続したローカルのサンドボックスにあるムービークリップをスクリプト処理できません。その逆も同様です。
  • 一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。

ただし、 AIR では、アプリケーションセキュリティサンドボックス内のコンテンツ(AIR アプリケーションと共にインストールされたコンテンツ)は、これらのセキュリティ制限による制限を受けません。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

信頼されていないソース(Loader オブジェクトのルート SWF ファイルのドメイン以外のドメインなど)から SWF ファイルを読み込む場合は、次のコードに示すように、Loader オブジェクトに対してマスクを定義して、読み込まれたコンテンツ(Loader オブジェクトの子)がそのマスクの外部にあるステージの一部分に描画されないようにすることができます。

import flash.display.~~; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); rect.graphics.endFill(); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr);
次の例では、LoaderExample クラスを使用して、様々なイベントリスナーの使用方法を示します。これを行うには、以下の手順を実行します。
  1. url プロパティを作成します。これはイメージファイルの場所と名前です。
  2. LoaderExample コンストラクターでは、loader という名前の新しい Loader オブジェクトが作成され、手順 3 出説明する configureListeners() メソッドに渡されます。
  3. コンストラクターは、request という URLRequest オブジェクトの新しいインスタンスを作成しますが、その前に、ファイル名と場所が分かるように url を渡します。
  4. request オブジェクトが loader オブジェクトの load() メソッドに渡されます。これにより、イメージが表示リストにロードされます。
  5. clickHandler イベントリスナーがローダーの click イベントに対して登録されます。マウスをクリックすると、ロードされたイメージはアンロードされます。
  6. configureListeners() メソッドは、次のメソッドを使用して、7 つのイベントリスナーを追加します。
    • completeHandler() メソッドは、イメージのロードが完了したときに実行されます。
    • httpStatusHandler() メソッドは、イメージがローカルにロードされない場合で、ネットワーク要求を行うことができ、Flash Player がそれを検出できる場合にのみ実行されます。
    • initHandler() メソッドが実行されるのは、completeHandler() メソッドの前、progressHandler() メソッドの後です。一般的には、SWF ファイルをロードするとき、init イベントの方が便利です。
    • ioErrorHandler() メソッドは、イメージファイルを使用できないか、イメージファイルにアクセスできない場合に実行されます。
    • openHandler() メソッドは、イメージファイルが最初に開かれたときに実行されます。
    • progressHandler() メソッドは、イメージファイルのロードが開始したときに実行され、イメージのロードが完了したときに再び実行されます。
    • unLoadHandler() メソッドは、ユーザーがイメージをクリックしたときに unload() メソッドを使用してイメージがアンロードされた場合に実行されます。

次の要件に注意してください。

  • この例では、Image.gif という名前のファイルがコンパイル済み SWF ファイルと同じディレクトリに配置されている必要があります。メイン SWF ファイルのサイズ内に収まる領域を持つイメージを使用します。
  • この例では、LoaderInfo オブジェクトで使用可能なすべてのイベントを利用しますが、ほとんどの場合、必要になるのは 1 つのサブセットのみです。特に、イメージファイルをロードするだけの場合は、ローカルイメージをロードするときの complete イベント(および必要に応じて ioError イベント)で十分です。
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderExample extends Sprite { private var url:String = "Image.gif"; public function LoaderExample() { var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(Event.INIT, initHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(Event.UNLOAD, unLoadHandler); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function initHandler(event:Event):void { trace("initHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function unLoadHandler(event:Event):void { trace("unLoadHandler: " + event); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); var loader:Loader = Loader(event.target); loader.unload(); } } }
flash.display.LoaderInfoflash.net.URLLoaderflash.display.DisplayObjectLoader SWF、JPEG、GIF、または PNG などのファイルの読み込みに使用できる Loader オブジェクトを作成します。 SWF、JPEG、GIF、または PNG などのファイルの読み込みに使用できる Loader オブジェクトを作成します。アセットを Loader インスタンスの子として読み込むには、load() メソッドを呼び出します。その後、Loader オブジェクトを表示リストに追加できます。例えば、DisplayObjectContainer インスタンスの addChild() メソッドを使用して追加します。アセットは読み込まれるとステージに表示されます。

Loader インスタンスを "リスト外" で、つまり、表示リスト上の表示オブジェクトコンテナに追加しなくても使用できます。このモードの場合、Loader インスタンスを使用して、アプリケーションの追加モジュールを含む SWF ファイルを読み込むことができます。

SWF ファイルの読み込みが完了したことを検出するには、Loader オブジェクトの contentLoaderInfo プロパティに関連付けられた LoaderInfo オブジェクトのイベントを使用できます。その時点で、モジュール SWF ファイル内のコードを実行し、モジュールを初期化して、開始できます。リスト外モードでは、Loader インスタンスを使用して、コンポーネントまたはメディアアセットを含む SWF ファイルをロードすることもできます。この場合も、LoaderInfo オブジェクトのイベント通知を使用して、コンポーネントのロードが完了したことを検出できます。 その時点で、アプリケーションは SWF ファイルのライブラリ内のコンポーネントとメディアアセットの使用を開始できます。これは、それらのコンポーネントとアセットを表す ActionScript 3.0 クラスをインスタンス化することによって行います。

Loader オブジェクトの状態を判別するには、Loader オブジェクトの contentLoaderInfo プロパティに関連付けられた LoaderInfo オブジェクトの次のイベントを監視します。

  • open イベントは、読み込みが開始したときに送出されます。
  • ioError または securityError イベントは、ファイルを読み込めない場合、あるいは読み込み中にエラーが発生した場合に送出されます。
  • progress イベントは、ファイルが読み込まれている間、継続的に発生します。
  • complete イベントは、ファイルのダウンロードが完了したときに送出されます。ただし、この時点では、読み込まれたムービークリップのメソッドとプロパティはまだ使用できません。
  • init イベントは、読み込まれた SWF ファイルのプロパティおよびメソッドにアクセスできるようになると、送出されます。そのため、読み込まれた SWF ファイルに対して各種の操作を開始できます。このイベントは、complete ハンドラーの前に送出されます。ストリーミング SWF ファイルの場合、init イベントは complete イベントよりもかなり前に発生することがあります。ほとんどの場合、init ハンドラーを使用します。
flash.display.Loader.load()flash.display.LoaderInfo
close Loader インスタンスに対して現在進行中の load() メソッドの処理をキャンセルします。 Loader インスタンスに対して現在進行中の load() メソッドの処理をキャンセルします。 flash.display.Loader.load()loadBytes ByteArray オブジェクトに保管されているバイナリデータからロードします。ByteArray オブジェクトの length プロパティが 0 以下であった場合 ArgumentErrorArgumentErrorcheckPolicyFile または securityDomain プロパティ(context パラメーターのプロパティ)が null 以外であった場合 IllegalOperationErrorflash.errors:IllegalOperationErrorrequestedContentParent プロパティ(context パラメーターのプロパティ)が Loader の場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorLoaderContext.parameters パラメーターが null 以外で、Strings 型以外の値を持つ場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorapplicationDomain プロパティ(受け取った context プロパティのプロパティ)が、許可されていないドメインのものであった場合 SecurityErrorSecurityError一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。 SecurityErrorSecurityErrorbytesflash.utils:ByteArrayByteArray オブジェクトです。ByteArray の内容としては、Loader クラスがサポートする SWF、GIF、JPEG、PNG のうちの任意のファイル形式を使用できます。 contextflash.system:LoaderContextnullLoaderContext オブジェクトです。LoaderContext オブジェクトの applicationDomain プロパティのみが適用され、LoaderContext オブジェクトの checkPolicyFile および securityDomain プロパティは適用されません。

context パラメーターが指定されていない場合または null のオブジェクトを参照している場合、コンテンツは現在のセキュリティドメインにロードされます。Flash Player のセキュリティに関する説明では、このプロセスを「読み込みロード」と呼びます。具体的には、ロードする側の SWF ファイルが、コードにリモート SWF を組み込むことによってリモート SWF を明示的に信頼している場合は、それ自身のセキュリティドメインに直接リモート SWF を読み込むことができます。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

ByteArray オブジェクトに保管されているバイナリデータからロードします。

loadBytes() メソッドは、非同期のメソッドです。読み込まれたオブジェクトのプロパティにアクセスする前に「init」イベントを待機する必要があります。

このメソッドを使用するときは、Loader クラスの説明にある Flash Player セキュリティモデルを考慮してください。

flash.utils.ByteArrayflash.system.LoaderContext.applicationDomainasyncErrorflash.events:AsyncErrorEventLoaderContext.requestedContentParent プロパティが指定されており、かつ指定された DisplayObjectContainer にロードされるコンテンツを子として追加できない場合に、 contentLoaderInfo オブジェクトによって送出されます。これは、ロードされるコンテンツが flash.display.AVM1Movie であるか、または addChild() の呼び出しがエラーをスローした場合に発生します。 LoaderContext.requestedContentParent プロパティが指定されており、かつ指定された DisplayObjectContainer にロードされるコンテンツを子として追加できない場合に、contentLoaderInfo オブジェクトによって送出されます。completeflash.events:Event操作が完了すると、contentLoaderInfo オブジェクトによって送出されます。complete イベントは、常に、init イベントの後に送出されます。 操作が完了すると、contentLoaderInfo オブジェクトによって送出されます。initflash.events:Eventロードされたデータのプロパティおよびメソッドにアクセスできる場合に、contentLoaderInfo オブジェクトによって送出されます。init イベントは、常に、complete イベントの前に送出されます。 ロードされたデータのプロパティおよびメソッドにアクセスできる場合に、contentLoaderInfo オブジェクトによって送出されます。ioErrorflash.events:IOErrorEventランタイムでバイト配列内のデータを解析できない場合に、contentLoaderInfo オブジェクトによって送出されます。 ランタイムでバイト配列内のデータを解析できない場合に、contentLoaderInfo オブジェクトによって送出されます。openflash.events:Event操作が開始したときに、contentLoaderInfo オブジェクトによって送出されます。 操作が開始したときに、contentLoaderInfo オブジェクトによって送出されます。progressflash.events:ProgressEventデータがメモリに転送されると、contentLoaderInfo オブジェクトによって送出されます。 データがメモリに転送されると、contentLoaderInfo オブジェクトによって送出されます。securityErrorflash.events:SecurityErrorEventLoaderContext.requestedContentParent プロパティが指定されており、LoaderContext.requestedContentParent のセキュリティサンドボックスがロードされる SWF へのアクセスを持たない場合に、contentLoaderInfo オブジェクトによって送出されます。 LoaderContext.requestedContentParent プロパティが指定されており、LoaderContext.requestedContentParent のセキュリティサンドボックスがロードされる SWF へのアクセスを持たない場合に、contentLoaderInfo オブジェクトによって送出されます。unloadflash.events:Eventロードされたオブジェクトが削除されるときに、contentLoaderInfo オブジェクトによって送出されます。 読み込まれたオブジェクトが削除されるときに、contentLoaderInfo オブジェクトによって送出されます。
loadFilePromise IFilePromise インスタンスを読み込みます。requestedContentParent プロパティ(context パラメーターのプロパティ)が Loader の場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorLoaderContext.parameters パラメーターが null 以外で、Strings 型以外の値を持つ場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorパラメーターとして渡された IFilePromise オブジェクトが null の場合。 ArgumentErrorArgumentErrorpromiseflash.desktop:IFilePromiseIFilePromise オブジェクト。オブジェクトのデータソースとしては、Loader クラスがサポートする SWF、GIF、JPEG、PNG のうちの任意のファイル形式を使用できます。 contextflash.system:LoaderContextnullLoaderContext オブジェクトです。LoaderContext オブジェクトの applicationDomain プロパティのみが適用され、LoaderContext オブジェクトの checkPolicyFile および securityDomain プロパティは適用されません。

context パラメーターが指定されていない場合または null のオブジェクトを参照している場合、コンテンツは現在のセキュリティドメインにロードされます。Flash Player のセキュリティに関する説明では、このプロセスを「読み込みロード」と呼びます。具体的には、ロードする側の SWF ファイルが、コードにリモート SWF を組み込むことによってリモート SWF を明示的に信頼している場合は、それ自身のセキュリティドメインに直接リモート SWF を読み込むことができます。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

IFilePromise インスタンスを読み込みます。

loadFilePromise メソッドは IFilePromise オブジェクトを使用し、バイナリデータを読み込みます。ビデオなど、データがプログレッシブストリームの場合、読み込まれたオブジェクトのプロパティにアクセスする前に、"init" または progress イベントを待ちます。それ以外の場合、データが完全に読み込まれたことを確認する complete イベントを待ちます。

このメソッドを使用するときは、Loader クラスの説明にある Flash Player セキュリティモデルを考慮してください。

MediaPromiseCameraRoll.browseForImage()CameraUIasyncErrorflash.events:AsyncErrorEventLoaderContext.requestedContentParent プロパティが指定されており、かつ指定された DisplayObjectContainer にロードされるコンテンツを子として追加できない場合に、 contentLoaderInfo オブジェクトによって送出されます。これは、ロードされるコンテンツが flash.display.AVM1Movie であるか、または addChild() の呼び出しがエラーをスローした場合に発生します。 LoaderContext.requestedContentParent プロパティが指定されており、かつ指定された DisplayObjectContainer にロードされるコンテンツを子として追加できない場合に、contentLoaderInfo オブジェクトによって送出されます。completeflash.events:Event操作が完了すると、contentLoaderInfo オブジェクトによって送出されます。complete イベントは、常に、init イベントの後に送出されます。 操作が完了すると、contentLoaderInfo オブジェクトによって送出されます。initflash.events:Eventロードされたデータのプロパティおよびメソッドにアクセスできる場合に、contentLoaderInfo オブジェクトによって送出されます。init イベントは、常に、complete イベントの前に送出されます。 ロードされたデータのプロパティおよびメソッドにアクセスできる場合に、contentLoaderInfo オブジェクトによって送出されます。ioErrorflash.events:IOErrorEventランタイムでデータソースのデータを解析できない場合、またはデータソースストリームが読み取り不可能な場合、contentLoaderInfo オブジェクトから送出されます。 ランタイムでデータソースのデータを解析できない場合、またはデータソースストリームが読み取り不可能な場合、contentLoaderInfo オブジェクトから送出されます。openflash.events:Event操作が開始したときに、contentLoaderInfo オブジェクトによって送出されます。 操作が開始したときに、contentLoaderInfo オブジェクトによって送出されます。progressflash.events:ProgressEventデータがメモリに転送されると、contentLoaderInfo オブジェクトによって送出されます。 データがメモリに転送されると、contentLoaderInfo オブジェクトによって送出されます。securityErrorflash.events:SecurityErrorEventLoaderContext.requestedContentParent プロパティが指定されており、LoaderContext.requestedContentParent のセキュリティサンドボックスがロードされる SWF へのアクセスを持たない場合に、contentLoaderInfo オブジェクトによって送出されます。 LoaderContext.requestedContentParent プロパティが指定されており、LoaderContext.requestedContentParent のセキュリティサンドボックスがロードされる SWF へのアクセスを持たない場合に、contentLoaderInfo オブジェクトによって送出されます。unloadflash.events:Eventロードされたオブジェクトが削除されるときに、contentLoaderInfo オブジェクトによって送出されます。 読み込まれたオブジェクトが削除されるときに、contentLoaderInfo オブジェクトによって送出されます。
load SWF、JPEG、プログレッシブ JPEG、非アニメーション GIF、または PNG ファイルを、この Loader オブジェクトの子であるオブジェクトにロードします。request オブジェクトの digest プロパティが null ではありません。URLRequest オブジェクトの digest プロパティを設定できるのは、URLLoader.load() メソッドを呼び出して SWZ ファイル(Adobe プラットフォームコンポーネント)を読み込む場合のみです。 IOErrorflash.errors:IOErrorLoaderContext.securityDomain の値は、null または SecurityDomain.currentDomain のいずれかである必要があります。つまり、ロードされたメディアは、通常のセキュリティサンドボックスまたは独自のサンドボックスのいずれかにしか配置できません。後者の場合は、ポリシーファイルが必要です。 SecurityErrorSecurityErrorローカル SWF ファイルでは、LoaderContext.securityDomain に null 以外の値を設定できません。また、ローカルでないメディアのローカルサンドボックスへのインポート、およびローカルメディアの通常のサンドボックス以外の場所への配置は許可されません。 SecurityErrorSecurityError 一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。 SecurityErrorSecurityErrorapplicationDomain または securityDomain プロパティ(context パラメーターのプロパティ)が、許可されていないドメインのものであった場合 SecurityErrorSecurityErrorローカル SWF ファイルが、securityDomain プロパティ(context パラメーターのプロパティ)を使用しようとした場合 SecurityErrorSecurityErrorrequestedContentParent プロパティ(context パラメーターのプロパティ)が Loader の場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorLoaderContext.parameters パラメーターが null 以外で、Strings 型以外の値を持つ場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorrequestflash.net:URLRequest 読み込む SWF、JPEG、GIF、または PNG ファイルの絶対 URL または相対 URL です。相対パスの場合は、メイン SWF ファイルを基準にする必要があります。絶対 URL の場合は、http:// や file:/// などのプロトコル参照も含める必要があります。ファイル名には、ドライブ指定を含めることはできません。 contextflash.system:LoaderContextnull次の定義を行うプロパティのある、LoaderContext オブジェクトです。
  • オブジェクトのロード時にポリシーファイルの存在を確認するかどうか
  • ロードされるオブジェクトの ApplicationDomain
  • 読み込まれるオブジェクトの SecurityDomain
  • ロードされるイメージオブジェクトの ImageDecodingPolicy

context パラメーターが指定されていない場合または null のオブジェクトを参照している場合、読み込まれるコンテンツはそれ自身のセキュリティドメインに置かれたままになります。

完全な詳細については、LoaderContext クラスのプロパティの説明を参照してください。

SWF ファイルまたはイメージファイルを、この Loader インスタンスの子である DisplayObject に読み込みます。
SWF、JPEG、プログレッシブ JPEG、非アニメーション GIF、または PNG ファイルを、この Loader オブジェクトの子であるオブジェクトにロードします。アニメーション GIF ファイルを読み込むと、先頭のフレームのみ表示されます。Loader オブジェクトには子を 1 つだけしか含めることができないため、後続の load() 要求を発行すると直前の要求(保留中であれば)を終了し、新たに読み込みを開始します。

注意:AIR 1.5 および Flash Player 10 では、読み込まれるイメージの最大サイズは幅または高さが 8,191 ピクセルです。ただし、総ピクセル数が 16,777,215 ピクセルを超えることはできません(したがって、読み込まれるイメージの幅が 8,191 ピクセルであった場合、高さは 2,048 ピクセルまでしか指定できません)。Flash Player 9 以前および AIR 1.1 以前では、高さの限界は 2,880 ピクセルで幅の限界は 2,880 ピクセルです。

Loader オブジェクトに読み込んだ SWF ファイルまたはイメージは、その Loader オブジェクトの親の表示オブジェクトの位置、回転、および拡大 / 縮小の各プロパティを継承します。

このメソッドを使用して読み込まれたムービーまたはイメージを削除したり、進行中の読み込み処理をキャンセルするには、unload() メソッドを使用します。

SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含んでいる HTML ページに allowNetworking パラメーター(object タグおよび embed タグのパラメーター)を設定します。

このメソッドを使用するときは、Loader クラスの説明にある Flash Player セキュリティモデルを考慮してください。

Flash Player 10 以降では、"multipart/form-data" などのマルチパート Content-Type にアップロードが含まれていると(アップロードが含まれているかどうかは POST ボディ内の "content-disposition" ヘッダーの "filename" パラメーターで示されます)、そのアップロードに適用されるセキュリティ規則によって POST 処理が拘束されます。

  • POST 処理は、マウスのクリックやキーの押下などのユーザーが開始したアクションに応答して実行する必要があります。
  • POST 処理がクロスドメインである(POST ターゲットが、POST 要求を送信中の SWF ファイルと同じサーバー上にない)場合は、クロスドメインアクセスを許可する URL ポリシーファイルをターゲットサーバーが提供する必要があります。

また、すべてのマルチパート Content-Type では、RFC2046 標準に準拠した有効なシンタックスを使用する必要があります。シンタックスが有効でない場合は、アップロードに適用されるセキュリティ規則によって POST 処理が拘束されます。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

contentLoaderInfoflash.net.URLRequestflash.display.DisplayObjectflash.display.Loader.unload()flash.display.LoaderInfoflash.system.LoaderContextasyncErrorflash.events:AsyncErrorEventLoaderContext.requestedContentParent プロパティが指定されており、かつ指定された DisplayObjectContainer にロードされるコンテンツを子として追加できない場合に、 contentLoaderInfo オブジェクトによって送出されます。これは、ロードされるコンテンツが flash.display.AVM1Movie であるか、または addChild() の呼び出しがエラーをスローした場合に発生します。 LoaderContext.requestedContentParent プロパティが指定されており、かつ指定された DisplayObjectContainer にロードされるコンテンツを子として追加できない場合に、contentLoaderInfo オブジェクトによって送出されます。completeflash.events:Eventファイルのロードが完了したときに contentLoaderInfo オブジェクトによって送出されます。complete イベントは、常に、init イベントの後に送出されます。 ファイルの読み込みが完了したときに、contentLoaderInfo オブジェクトによって送出されます。httpStatusflash.events:HTTPStatusEventネットワーク要求が HTTP 上で行われ、Flash Player が HTTP ステータスコードを検出できる場合に contentLoaderInfo オブジェクトによって送出されます。 ネットワーク要求が HTTP 上で行われ、Flash Player が HTTP ステータスコードを検出できる場合に、contentLoaderInfo オブジェクトによって送出されます。initflash.events:Eventロードされた SWF ファイルのプロパティおよびメソッドにアクセスできる場合に、contentLoaderInfo オブジェクトによって送出されます。init イベントは、常に、complete イベントの前に送出されます。 読み込まれた SWF ファイルのプロパティおよびメソッドにアクセスできる場合に、contentLoaderInfo オブジェクトによって送出されます。ioErrorflash.events:IOErrorEvent入出力エラーが発生してロード処理が失敗したときに、contentLoaderInfo オブジェクトによって送出されます。 入出力エラーが発生して読み込み処理が失敗したときに、contentLoaderInfo オブジェクトによって送出されます。openflash.events:Eventロード処理が開始したときに、contentLoaderInfo オブジェクトによって送出されます。 読み込み処理が開始したときに、contentLoaderInfo オブジェクトによって送出されます。progressflash.events:ProgressEventロード処理を実行中にデータを受信したときに、contentLoaderInfo オブジェクトによって送出されます。 読み込み処理を実行中にデータを受信したときに、contentLoaderInfo オブジェクトによって送出されます。securityErrorflash.events:SecurityErrorEventローカルファイルシステムのサンドボックス内の SWF ファイルがネットワーク接続したローカルのサンドボックス内のコンテンツをロードしようとしたか、またはその逆の場合に、contentLoaderInfo オブジェクトによって送出されます。 ローカルファイルシステムのサンドボックス内の SWF ファイルがネットワーク接続したローカルのサンドボックス内のコンテンツを読み込もうとしたか、またはその逆の場合に、contentLoaderInfo オブジェクトによって送出されます。securityErrorflash.events:SecurityErrorEventLoaderContext.requestedContentParent プロパティが指定されており、LoaderContext.requestedContentParent のセキュリティサンドボックスがロードされる SWF へのアクセスを持たない場合に、contentLoaderInfo オブジェクトによって送出されます。 LoaderContext.requestedContentParent プロパティが指定されており、LoaderContext.requestedContentParent のセキュリティサンドボックスがロードされる SWF へのアクセスを持たない場合に、contentLoaderInfo オブジェクトによって送出されます。unloadflash.events:Eventロードされたオブジェクトが削除されるときに、contentLoaderInfo オブジェクトによって送出されます。 読み込まれたオブジェクトが削除されるときに、contentLoaderInfo オブジェクトによって送出されます。
unloadAndStop 子 SWF ファイルの内容のアンロードを試み、ロードされた SWF ファイルのコマンドの実行を中止します。gcBooleantrue子 SWF オブジェクトでガベージコレクターが実行されるようにヒントを提供するかどうかを指定します(true または false)。多数のオブジェクトを非同期でアンロードする場合は、gc パラメーターを false に設定するとアプリケーションのパフォーマンスが向上する可能性があります。ただし、このパラメーターを false に設定した場合は、unloadAndStop() コマンドの実行後も子 SWF ファイルのメディアオブジェクトおよび表示オブジェクトがメモリに残ることがあります。 子 SWF ファイルの内容のアンロードを試み、ロードされた SWF ファイルのコマンドの実行を中止します。このメソッドは、Loader.load() または Loader.loadBytes() を使用してロードされた SWF ファイルのアンロードを試みます。このために、子 SWF ファイルの EventDispatcher、NetConnection、Timer、Sound、または Video オブジェクトへの参照を削除します。この結果、子 SWF ファイルおよび子 SWF ファイルの表示リストで以下が行われます。
  • サウンドが停止されます。
  • Stage イベントリスナーが削除されます。
  • enterFrameframeConstructedexitFrameactivate、および deactivate のイベントリスナーが削除されます。
  • タイマーが停止されます。
  • Camera インスタンスおよび Microphone インスタンスがデタッチされます。
  • ムービークリップが停止されます。
flash.display.DisplayObjectflash.display.Loader.load()
unload load() メソッドを使用して読み込まれた、この Loader オブジェクトの子を削除します。 load() メソッドを使用してロードされた、この Loader オブジェクトの子を削除します。関連した LoaderInfo オブジェクトの propertynull にリセットされます。他のオブジェクトが参照している可能性があるので、子は必ずしも破棄されるとは限りません。ただし、Loader オブジェクトの子ではなくなります。

子 SWF ファイルを解放する前に、LocalConnection、NetConnection、NetStream、Sound オブジェクトなど、子 SWF ファイルのオブジェクト内のストリームをすべて明示的に閉じておくことをお勧めします。そうしなかった場合は、子 SWF ファイルが解放された後も、子 SWF ファイルのオーディオの再生が続く場合があります。子 SWF ファイルのストリームを閉じるには、unload イベントを受け取る子にイベントリスナーを追加します。親が Loader.unload() を呼び出すと、unload イベントが子に対して送出されます。次のコードは、このような処理を行う例を示します。

function closeAllStreams(evt:Event) { 
    myNetStream.close();
    mySound.close();
    myNetConnection.close();
    myLocalConnection.close();
}

myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
Loader.load()flash.media.Sound.close()flash.net.LocalConnection.close()flash.net.NetConnection.close()flash.net.NetStream.close()delete 演算子
contentLoaderInfo 読み込まれているオブジェクトに対応する LoaderInfo オブジェクトを返します。flash.display:LoaderInfo 読み込まれているオブジェクトに対応する LoaderInfo オブジェクトを返します。LoaderInfo オブジェクトは、Loader オブジェクトと読み込まれたコンテンツオブジェクト間で共有されます。LoaderInfo オブジェクトは、読み込みの進行状況に関する情報と、読み込まれたファイルに関する統計を提供します。

読み込みに関連するイベントは、Loader オブジェクトの contentLoaderInfo プロパティで参照される LoaderInfo オブジェクトによって送出されます。contentLoaderInfo プロパティは、コンテンツの読み込みの前も、有効な valid LoaderInfo オブジェクトに設定されているので、読み込みの前にイベントリスナーをオブジェクトに追加できます。

読み込まれた SWF で発生する不明なエラーを検出するには、Loader.contentLoaderInfo.uncaughtErrorEvents プロパティではなく、Loader.uncaughtErrorEvents プロパティを使用します。

次の例では、Loader クラスおよび Loader オブジェクトの contentLoaderInfo プロパティの complete イベント を使用し、ActionScript 3.0 でイメージをロードして配置する方法を示します。ActionScriptExamples.com で作成された例。 var url:String = "http://www.helpexamples.com/flash/images/image2.jpg"; var urlRequest:URLRequest = new URLRequest(url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete); loader.load(urlRequest); addChild(loader); function loader_complete(evt:Event):void { var target_mc:Loader = evt.currentTarget.loader as Loader; target_mc.x = (stage.stageWidth - target_mc.width) / 2; target_mc.y = (stage.stageHeight - target_mc.height) / 2; }
flash.display.LoaderInfo
content load() または loadBytes() メソッドを使用して読み込まれた SWF ファイルまたはイメージ(JPG、PNG、または GIF)ファイルのルート表示オブジェクトが含まれます。flash.display:DisplayObject読み込まれた SWF ファイルまたはイメージファイルは、アクセス権限が与えられていないセキュリティ Sandbox に属しています。読み込まれた SWF ファイルの場合、ファイルで Security.allowDomain() メソッドを呼び出すことによって、この状況を回避できます。または、loaderContext パラメーター(securityDomain プロパティのパラメーター)を SecurityDomain.currentDomain に設定することによって(ただし、読み込む側のファイルで load() または loadBytes() メソッドを呼び出すとき)、この状況を回避できます。 SecurityErrorSecurityError load() メソッドまたは loadBytes() メソッドを使用して読み込まれた SWF ファイルまたはイメージ(JPG、PNG、または GIF)ファイルのルート表示オブジェクトが含まれます。 flash.display.DisplayObjectflash.display.Loader.load()uncaughtErrorEvents この Loader オブジェクトが読み込んだ SWF で不明なエラーが発生したときに、uncaughtError イベントを送出するオブジェクトです。flash.events:UncaughtErrorEvents この Loader オブジェクトが読み込んだ SWF で不明なエラーが発生したときに、uncaughtError イベントを送出するオブジェクトです。不明なエラーが発生するのは、いずれかの try..catch ブロックの外側でエラーがスローされたり、登録されたリスナーを持たない ErrorEvent オブジェクトが送出される場合です。

Loader オブジェクトの uncaughtErrorEvents プロパティから送出されるイベントは、プロパティから直接送出されるものではなく、プロパティでバブルされたイベントです。ターゲット段階で uncaughtErrorEvent を送出することはありません。キャプチャおよびバブリング段階以外では、イベントは送出されません。現在の SWF(Loader オブジェクトが定義されている SWF)内の不明なエラーを検出するには、代わりに LoaderInfo.uncaughtErrorEvents プロパティを使用します。

Loader オブジェクトによって読み込まれたコンテンツが AVM1(ActionScript 2)SWF ファイルである場合、AVM1 SWF ファイル内のキャッチされなかったエラーで uncaughtError イベントが発生することはありません。

次の例では、ロードした SWF 内の不明なエラーを検出するために、不明エラーイベントハンドラーの使用方法を示します。この例では、不明なエラーを検出する uncaughtError イベントハンドラーを定義します。

コンストラクターで、コードは Loader オブジェクトを作成し、オブジェクトの uncaughtErrorEvents プロパティが送出した uncaughtError イベントのリスナーを登録します。

uncaughtErrorHandler() メソッドで、コードは error プロパティのデータ型をチェックし、その型に応じた応答を返します。

package { import flash.display.Loader; import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.UncaughtErrorEvent; import flash.net.URLRequest; public class LoaderUncaughtErrorEventExample extends Sprite { private var ldr:Loader; public function LoaderUncaughtErrorEventExample() { ldr = new Loader(); ldr.load(new URLRequest("child.swf")); ldr.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } } }
UncaughtErrorEventLoaderInfo.uncaughtErrorEvents
NativeMenuItem NativeMenuItem クラスは、メニュー中の 1 アイテムを表します。flash.events:EventDispatcher NativeMenuItem クラスは、メニュー中の 1 アイテムを表します。

メニューアイテムは、コマンド、サブメニューまたはセパレーター線です。

  • コマンドアイテムを作成するには、NativeMenuItem コンストラクターを呼び出します。このとき、ラベルに使用するストリングを渡し、falseisSeparator パラメーターに設定します。
  • サブメニューを作成するには、親メニューとなるコマンドアイテムを作成し、このコマンドアイテムの submenu プロパティに、作成するサブメニューの NativeMenu オブジェクトを割り当てます。親 NativeMenu オブジェクトの addSubmenu() メソッドを呼び出してアイテムを作成し、同時に submenu プロパティを設定できます。
  • セパレーターを作成するには、NativeMenuItem コンストラクターを呼び出します。このとき、ラベルに使用するストリングとして空のストリングを渡し、trueisSeparator パラメーターに設定します。

アイテムまたは親メニューの select イベントを受け取り、メニューコマンドが選択された時期を検出します。サブメニューとセパレーターは、select イベントを送出しません。メニューアイテムが表示される、またはショートカットキーによりアクティブ化されるタイミングを識別するために preparing イベントをリッスンします。

flash.display.NativeMenuflash.display.NativeMenu.addSubmenu()preparing ショートカットキーが押され、格納されているメニューアイテムが表示される直前に、この NativeMenuItem から送出されます。flash.events.Event.PREPARINGflash.events.Event ショートカットキーが押され、格納されているメニューアイテムが表示される直前に、この NativeMenuItem から送出されます。

格納されているメニューを表示する前、またはそのショートカットキーが押された際に、アイテムを更新するためにこのイベントをリッスンします。preparing イベントはショートカットキーが完全に評価される前に送出されます。preparing イベントハンドラー内のメニューは、有効化、無効化、または削除できます。これらの変更は、ショートカットキーの処理時に有効になります。例えば、このメニューアイテムを削除または無効化した場合、イベントのシーケンスは事実上キャンセルされ、select イベントは送出されません。preparing イベントは、メニュー内の他のアイテムからも送出されます。

preparing イベントは displaying イベントを置き換え、追加機能を提供します。preparing イベントと displaying のいずれかをリッスンしますが、双方をリッスンすることはできません。

displaying アイテムを含むメニューが表示される直前に、この NativeMenuItem から送出されます。flash.events.Event.DISPLAYINGflash.events.Event アイテムを含むメニューが表示される直前に、この NativeMenuItem から送出されます。

preparing イベントは displaying イベントを置き換え、追加機能を提供します。preparing イベントと displaying のいずれかをリッスンしますが、双方をリッスンすることはできません。

select ユーザーがメニューアイテムを選択したときに送出されます。flash.events.Event.SELECTflash.events.Event ユーザーがメニューアイテムを選択したときに送出されます。

select イベントは、このアイテムからアイテムに含まれているメニューまで、親メニューのチェーンをルートメニューオブジェクトに向かって上方にバブルします。イベントオブジェクトの target プロパティは、この NativeMenuItem オブジェクトを参照します。currentTarget プロパティは、送出するオブジェクト(この NativeMenuItem オブジェクトまたはその上位の NativeMenu オブジェクト)を参照します。

注意:メニューを含むウィンドウがフルスクリーンモードである場合(stage.displayState == StageDisplayState.FULL_SCREEN)、NativeMenuItem オブジェクトは、ユーザーがメニューアイテムにキーボードショートカットを入力しても select イベントを送出しません。

NativeMenuItem 新しい NativeMenuItem オブジェクトを作成します。labelStringアイテムの表示ラベルまたはセパレーターの空のストリングです。 isSeparatorBooleanfalseセパレーターを作成する場合は true に設定し、それ以外の場合は false に設定します。 新しい NativeMenuItem オブジェクトを作成します。

メニューコマンドを作成するには、label パラメーターを表示ラベルを含むストリングに設定し、isSeparatorfalse に設定します。

サブメニューコマンドを作成するには、コマンドアイテムを作成し、サブメニューの NativeMenu オブジェクトをこのアイテムの submenu プロパティに割り当てます。親メニューにアイテムを追加します。

セパレーターを作成するには、label パラメーターを空のストリングに設定し、isSeparatortrue に設定します。

NativeMenu の addItem() メソッドおよび removeItem() メソッドを使用して、メニューにアイテムを追加したり、メニューからアイテムを削除したりします。

flash.display.NativeMenu.addSubmenu()
clone NativeMenuItem オブジェクトのコピーを作成します。flash.display:NativeMenuItem NativeMenuItem オブジェクトのコピーを作成します。 toString NativeMenuItem オブジェクトのすべてのプロパティを含むストリングを返します。Event オブジェクトのすべてのプロパティを含むストリングです。 String NativeMenuItem オブジェクトのすべてのプロパティを含むストリングを返します。 checked このメニューにチェックマークを表示するかどうかを制御します。Boolean このメニューにチェックマークを表示するかどうかを制御します。 data このメニューアイテムに関連付けられた任意のデータオブジェクトです。Object このメニューアイテムに関連付けられた任意のデータオブジェクトです。

このプロパティには、任意のオブジェクトを割り当てられます。割り当てられたオブジェクトはメニューシステムでは使用されず、(イベントオブジェクトの target プロパティを通じて)イベント処理コードで使用できます。デフォルトでは、このプロパティの値は null です。

enabled このメニューを有効にするかどうかを制御します。Boolean このメニューを有効にするかどうかを制御します。 isSeparator このアイテムがメニューセパレーター線かどうかを報告します。Boolean このアイテムがメニューセパレーター線かどうかを報告します。

NativeMenuItem コンストラクターの isSeparator パラメーターを true に設定して、セパレーター線を作成します。

keyEquivalentModifiers キー相当物のモディファイアに対応するキーコードの配列です。Array キー相当物のモディファイアに対応するキーコードの配列です。

Keyboard クラスで定義されている定数を使用して、モディファイアキーコードを指定します。有効なモディファイアキーは次のとおりです。

  • Keyboard.ALTERNATE
  • Keyboard.COMMAND
  • Keyboard.CONTROL

モディファイアを割り当てない場合、Windows または Linux では Keyboard.CONTROL キー、Mac OS X では Keyboard.COMMAND キーがデフォルトで割り当てられます。キー相当物にこれらのモディファイアが含まれないようにするには、このプロパティを空の配列に設定します。

keyEquivalent プロパティに大文字を割り当てると、Shift キーがモディファイアとして自動的に使用されます。keyEquivalentModifier を空の配列に設定しても、モディファイアとしての Shift キーは除去されません。

flash.ui.Keyboard
keyEquivalent このメニューアイテムのキー相当物です。String このメニューアイテムのキー相当物です。

小文字を使用して keyEquivalent を設定し、Shift キーモディファイアを使用しないショートカットを割り当てます。大文字を使用して設定し、Shift キーモディファイアを使用するショートカットを割り当てます。

デフォルトでは、キーボードショートカットのモディファイア(Windows または Linux では Ctrl、Mac OS X では Command)がキーボードショートカットの一部に含まれます。キー相当物をモディファイアのないキーにする場合、keyEquivalentModifiers プロパティを空の配列に設定します。

label このメニューアイテムの表示ストリングです。String このメニューアイテムの表示ストリングです。 menu このアイテムを含むメニューです。flash.display:NativeMenu このアイテムを含むメニューです。 mnemonicIndex メニューアイテムでのニーモニック文字の位置です。int メニューアイテムでのニーモニック文字の位置です。

指定された位置の文字が、そのメニューアイテムのニーモニック文字です。インデックスは 0 から始まるので、最初の文字は 0 のインデックスを持ちます。

このプロパティは、メニューニーモニックを使用しないオペレーティングシステムでは無視されます。

name このメニューアイテムの名前です。String このメニューアイテムの名前です。

名前の値は表示されず、ロケールに依存しない識別子として使用できます。名前は自動的には割り当てられません。

submenu このメニューアイテムに関連付けられたサブメニューです。flash.display:NativeMenu このメニューアイテムに関連付けられたサブメニューです。

このプロパティに NativeMenu オブジェクトを割り当てると、メニューアイテムの外観と動作が変化します。サブメニューアイテムにサブメニューアイコンが表示され、select イベントが送出されなくなります。

注意:メニューをそのメニューのサブメニューとして追加すると(循環参照)、アプリケーションが異常停止することがあります。

flash.display.NativeMenu.addSubmenu()
NativeMenu NativeMenu クラスには、ネイティブメニューを定義するメソッドとプロパティが含まれています。flash.events:EventDispatcher NativeMenu クラスには、ネイティブメニューを定義するメソッドとプロパティが含まれています。

AIR プロファイルのサポート:この機能はすべてのデスクトップオペレーティングシステムでサポートされますが、モバイルデバイスまたはテレビ用 AIR デバイスではサポートされません。NativeMenu.isSupported プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

ネイティブメニューとは、アプリケーションではなくオペレーティングシステムによって制御および描画されるメニューのことです。AIR では、次の種類のネイティブメニューをサポートしています。

  • アプリケーションメニュー」は OS X でサポートされています。ホストオペレーティングシステムでアプリケーションメニューがサポートされているかどうかを検証するには、NativeApplication.supportsMenu プロパティを使用します。アプリケーションメニューは、Mac デスクトップの画面上部にあるメニューバーに表示されます。OS X では、すべてのアプリケーションに対してデフォルトのメニューが用意されていますが、メニューコマンドの多くは機能しません。デフォルトのアイテムにイベントリスナーを追加したり、個々のメニューおよびアイテムを置き換えたり、デフォルトメニュー全体を置き換えたりすることもできます。NativeApplication の menu プロパティを使用して、アプリケーションメニューオブジェクトにアクセスします。
  • ウィンドウメニュー」は Windows および Linux でサポートされています。ホストオペレーティングシステムでウィンドウメニューがサポートされているかどうかを検証するには、NativeWindow.supportsMenu プロパティを使用します。ウィンドウメニューはウィンドウのタイトルバーの下に表示されます。メニューの占有領域は、ウィンドウステージには含まれません。アプリケーションはこの領域に描画できません。NativeWindow の menu プロパティを使用して、ウィンドウにメニューを割り当てます。
  • ドックアイコンメニュー」は OS X でサポートされています。ホストオペレーティングシステムでドックアイコンがサポートされているかどうかを検証するには、NativeApplication.supportsDockIcon プロパティを使用します。ドックアイコンメニューのアイテムは、オペレーティングシステムによって提供されるデフォルトのアイテムの上に表示されます。アプリケーションコードからデフォルトのアイテムへはアクセスできません。アプリケーションの DockIcon オブジェクトの menu プロパティにメニューを割り当てます。
  • システムトレイアイコンメニュー」は Windows およびほとんどの Linux オペレーティングシステムでサポートされています。ホストオペレーティングシステムでシステムトレイアイコンがサポートされているかどうかを検証するには、NativeApplication.supportsSystemTrayIcon プロパティを使用します。システムトレイアイコンメニューは、コンテキストメニューとほとんど同じように、アイコンを右クリックすると表示されます。アプリケーションの SystemTrayIcon オブジェクトの menu プロパティにメニューを割り当てます。
  • コンテキストメニュー」はすべてのオペレーティングシステムでサポートされています。コンテキストメニューは、ユーザーインターフェイスイベント(アプリケーションに表示された InteractiveObject 上での右クリックやコマンドクリックなどの操作)に応答して表示されます。メニューを表示する UI メカニズムは、ホストオペレーティングシステムやハードウェアによって異なります。InteractiveObject の contextMenu プロパティにメニューを割り当てます。AIR では、NativeMenu クラスまたは ContextMenu クラスのいずれかを使用して、コンテキストメニューを作成できます。Flash Player で使用できるのは、ContextMenu クラスのみです。AIR の ContextMenu には、ビルトインのアイテムがないため、デフォルトのコンテキストメニューは表示されません。
  • ポップアップメニュー」はすべてのオペレーティングシステムでサポートされています。ポップアップメニューは、機能的にはコンテキストメニューと同じですが、ユーザーインターフェイスイベントへの応答としてではなく、メニューの display() メソッドを使用して表示します。ポップアップメニューは、他のオブジェクトにはアタッチされません。ネイティブメニューを作成して、display() メソッドを呼び出します。

メニューオブジェクトにはメニューアイテムが含まれます。メニューアイテムは、コマンド、サブメニューまたはセパレーター線を表すことができます。addItem() メソッドまたは addItemAt() メソッドを使用して、メニューにメニューアイテムを追加します。メニューアイテムの表示順序は、メニューの items 配列でのアイテムの順序と一致します。

サブメニューを作成するには、親メニューオブジェクトにメニューアイテムを追加します。サブメニューを表すメニューオブジェクトを、親メニュー内の対応するメニューアイテムの submenu プロパティに割り当てます。

注意:ウィンドウのルートメニューおよびアプリケーションメニューには、サブメニューアイテムのみを含める必要があります。サブメニュー以外のアイテムは表示できず、このようなタイプのメニューは期待どおりに動作しません。

メニューのコマンドアイテム、またはそのサブメニューが選択されると、メニューは select イベントを送出します(サブメニューアイテムおよびセパレーターアイテムは選択できません)。イベントオブジェクトの target プロパティは、選択されたアイテムを参照します。

メニューは、メニューの表示の直前、およびメニュー内のアイテムに割り当てられているショットカットキーのいずれかが押された際に preparing イベントを送出します。このイベントを使用することで、現在のアプリケーションの状態に基づき、メニューの内容を更新することができます。

注意:Flex Framework を使用している場合は、FlexNativeMenu クラスの使用を検討してください。通常、MXML で宣言的にメニューを定義する方が、ActionScript コードを記述してアイテム別にメニュー構造を作成するよりも簡単です。

flash.display.InteractiveObject.contextMenuflash.display.NativeMenuItemflash.display.NativeWindow.menuflash.desktop.DockIconflash.desktop.SystemTrayIconflash.desktop.NativeApplication.menuflash.desktop.NativeApplication.iconmx.controls.FlexNativeMenupreparing ショートカットキーが押され、メニューが表示される直前に、NativeMenu オブジェクトから送出されます。flash.events.Event.PREPARINGflash.events.Event ショートカットキーが押され、メニューが表示される直前に、NativeMenu オブジェクトから送出されます。

メニューが表示される前、またはショートカットキーが押された際に、メニューを更新するためにこのイベントをリッスンします。preparing イベントはショートカットキーが完全に評価される前に送出されます。preparing イベントハンドラー内のメニューのアイテムは、有効化、無効化、追加または削除できます。これらの変更は、ショートカットキーの処理時に有効になります。例えば、トリガーとなったショットカットキーに割り当てられているメニューアイテムを削除または無効化した場合、イベントのシーケンスは事実上キャンセルされ、select イベントは送出されません。preparing イベントは、メニュー内の他のアイテムからも送出されます。

preparing イベントは displaying イベントを置き換え、追加機能を提供します。preparing イベントと displaying のいずれかをリッスンしますが、双方をリッスンすることはできません。

displaying メニューが表示される直前に、この NativeMenu オブジェクトから送出されます。flash.events.Event.DISPLAYINGflash.events.Event メニューが表示される直前に、この NativeMenu オブジェクトから送出されます。

このイベントを受け取り、メニューが表示される前に更新します。displaying イベントは、メニュー内の他のアイテムからも送出されます。

preparing イベントは displaying イベントを置き換え、追加機能を提供します。preparing イベントと displaying のいずれかをリッスンしますが、双方をリッスンすることはできません。

注意:AIR 2.6 より前の Mac OS X では、ユーザーがショットカットキーを押すとメニューおよびメニューアイテムによって displaying イベントが送出されます(このイベントは、他のオペレーティングシステム上では、ショートカットキーのインタラクションによって送出されることはありませんでした)。AIR 2.6 では、ユーザーがショットカットキーを押しても、displaying イベントは送出されません。代わりに、preparing イベントを使用します。

select いずれかのメニューアイテム、またはその子孫のサブメニューのいずれかのアイテムが選択された場合に、この NativeMenu オブジェクトから送出されます。flash.events.Event.SELECTflash.events.Event いずれかのメニューアイテム、またはその子孫のサブメニューのいずれかのアイテムが選択された場合に、この NativeMenu オブジェクトから送出されます。

select イベントは、メニューアイテムからそれに含まれているメニューまで、親メニューのチェーンをルートメニューオブジェクトに向かって上方にバブルします。イベントオブジェクトの target プロパティは、選択されている NativeMenuItem オブジェクトを参照します。この NativeMenu オブジェクトは、currentTarget プロパティが参照します。

NativeMenu 新しい NativeMenu オブジェクトを作成します。 新しい NativeMenu オブジェクトを作成します。 addItemAt 指定された位置に、メニューアイテムを挿入します。itemnull の場合。 ArgumentErrorArgumentErroritem が別のメニューのメンバーである場合。 ArgumentErrorArgumentErrorインデックスが、メニューの items 配列の範囲外の場合。 RangeErrorRangeErrorflash.display:NativeMenuItemitemflash.display:NativeMenuItem挿入する NativeMenuItem オブジェクトです。 indexintメニューアイテムを挿入する、0 から始まるメニューの位置です。

注意:アイテムのサブメニューがメニュー自体に設定されている場合、アイテムをメニューに追加すると、アプリケーションが異常停止することがあります(循環参照が発生)。

指定された位置に、メニューアイテムを挿入します。位置のインデックスは上方から割り当てられます。メニューの最上位にアイテムを挿入するには、index パラメーターをゼロに設定します。ウィンドウ、アプリケーション、システムトレイアイコン、ドックアイコン、コンテキスト、ポップアップなど、すべてのタイプのメニューで、インデックスは上方から割り当てられます。
addItem メニューの下部に、メニューアイテムを追加します。itemnull の場合。 ArgumentErrorArgumentErroritem が別のメニューのメンバーである場合。 ArgumentErrorArgumentErrorflash.display:NativeMenuItemitemflash.display:NativeMenuItemメニューの下部に追加する NativeMenuItem オブジェクトです。 メニューの下部に、メニューアイテムを追加します。

コンテキストメニューを作成する場合は、NativeMenuItem または ContextMenuItem オブジェクトのいずれかを追加できます。ただし、メニュー内のすべてのアイテムが同じプロパティを持つようにするため、コンテキストメニューでは 1 つの型のオブジェクトのみを使用することをお勧めします。

注意:アイテムのサブメニューがメニュー自体に設定されている場合、アイテムをメニューに追加すると、アプリケーションが異常停止することがあります(循環参照が発生)。

addSubmenuAt 指定された位置に新しいメニューアイテムを挿入して、メニューにサブメニューを追加します。サブメニューとして作成された NativeMenuItem オブジェクトです。 flash.display:NativeMenuItemsubmenuflash.display:NativeMenu追加するサブメニューを定義する NativeMenu オブジェクトです。 indexint追加するメニューアイテムを挿入する、このメニューの items 配列の位置です。 labelString追加するメニューアイテムの表示ラベルです。 指定された位置に新しいメニューアイテムを挿入して、メニューにサブメニューを追加します。

addSubMenuAt() メソッドを呼び出すと、新しいメニューアイテムを作成するのと同様の処理が実行されます。メニューの指定された位置にメニューアイテムを挿入し、アイテムの submenu プロパティに NativeMenu オブジェクトを割り当てます。

注意:メニューをそのメニューのサブメニューとして追加すると(循環参照)、アプリケーションが異常停止することがあります。

addSubmenu 新しいメニューアイテムを挿入して、メニューにサブメニューを追加します。サブメニューとして作成された NativeMenuItem オブジェクトです。 flash.display:NativeMenuItemsubmenuflash.display:NativeMenu追加するサブメニューを定義する NativeMenu オブジェクトです。 labelString追加するメニューアイテムの表示ラベルです。 新しいメニューアイテムを挿入して、メニューにサブメニューを追加します。

addSubMenu() メソッドを呼び出すと、新しいメニューアイテムを作成するのと同様の処理が実行されます。メニューアイテムをメニューに追加し、アイテムの submenu プロパティに NativeMenu オブジェクトを割り当てます。

注意:メニューをそのメニューのサブメニューとして追加すると(循環参照)、アプリケーションが異常停止することがあります。

clone メニューおよびすべてのアイテムのコピーを作成します。flash.display:NativeMenu メニューおよびすべてのアイテムのコピーを作成します。 containsItem このメニューが、指定されたメニューアイテムを含むかどうかを報告します。trueitem がこのメニューに存在する場合)。 Booleanitemflash.display:NativeMenuItem検索対象の NativeMenuItem オブジェクトです。 このメニューが、指定されたメニューアイテムを含むかどうかを報告します。 display このメニューを、指定された位置にポップアップ表示します。stageflash.display:Stageこのメニューが表示される Stage オブジェクトです。 stageXNumberこのメニューを表示するステージの起点を基準とした、水平方向のピクセル数です。 stageYNumberこのメニューが表示されるステージの起点を基準にした垂直方向のピクセル数です。 このメニューを、指定された位置にポップアップ表示します。 getItemAt 指定されたインデックス位置にあるメニューアイテムを取得します。index が、メニューの items 配列の範囲外の場合。 RangeErrorRangeErrorメニューの指定された位置にある NativeMenuItem オブジェクトです。 flash.display:NativeMenuItemindexint0 から始まる、返すアイテムの位置です。 指定されたインデックス位置にあるメニューアイテムを取得します。 getItemByName 指定された名前を持つメニューアイテムを取得します。指定された名前を持つ NativeMenuItem オブジェクト、または null(メニューにそのようなアイテムがない場合)です。 flash.display:NativeMenuItemnameString検索対象のストリングです。 指定された名前を持つメニューアイテムを取得します。

注意:メニューアイテムの name プロパティは、デフォルトでは割り当てられていません。

getItemIndex 指定されたアイテムの位置を取得します。指定されたアイテムの 0 から始まるこのメニューでの位置、または -1(アイテムがこのメニューに存在しない場合)です。 intitemflash.display:NativeMenuItem検索対象の NativeMenuItem オブジェクトです。 指定されたアイテムの位置を取得します。 removeAllItems メニューからすべてのアイテムを削除します。 メニューからすべてのアイテムを削除します。 removeItemAt 指定されたインデックス位置にあるメニューアイテムを削除して返します。index が、このメニューの items 配列の範囲外の場合。 RangeErrorRangeError削除された NativeMenuItem オブジェクトです。 flash.display:NativeMenuItemindexint0 から始まる、削除するアイテムの位置です。 指定されたインデックス位置にあるメニューアイテムを削除して返します。 removeItem 指定されたメニューアイテムを削除します。item がこのメニューに存在しない場合。 RangeErrorRangeErrorflash.display:NativeMenuItemitemflash.display:NativeMenuItemこのメニューから削除する NativeMenuItem オブジェクトです。 指定されたメニューアイテムを削除します。 setItemIndex 指定された位置に、メニューアイテムを移動します。index が、メニューの items 配列の範囲外の場合。 RangeErrorRangeErroritemflash.display:NativeMenuItem移動する NativeMenuItem オブジェクトです。 indexintitem の移動先となる、0 から始まるメニューの位置です。 指定された位置に、メニューアイテムを移動します。該当するアイテムがまだメニュー内にない場合、このメソッドを呼び出すとメニューにアイテムが追加されます。 isSupported クライアントシステムでネイティブメニューの任意のフォームがサポートされているかどうかを示します。Boolean クライアントシステムでネイティブメニューの任意のフォームがサポートされているかどうかを示します。 flash.display.NativeWindow.supportsMenuflash.desktop.NativeApplicationitems このメニューの NativeMenuItem の配列です。Array このメニューの NativeMenuItem の配列です。

配列は、表示順にソートされています。

注意:このプロパティは、AIR 1.0 では読み取り専用です。AIR 1.1 で、読み取り / 書き込み可能になりました。

numItems このメニューの NativeMenuItem オブジェクトの数です。int このメニューの NativeMenuItem オブジェクトの数です。 parent 親メニューです。flash.display:NativeMenu 親メニューです。

ルート(最上位)メニューオブジェクトの parent は、null になります。

StageOrientation StageOrientation クラスでは、ステージとデバイスで利用可能な方向を列挙した定数を定義します。StageOrientation クラスは、Stage クラスの orientation プロパティや、Stage の orientation プロパティを参照する他のプロパティおよびメソッドの値も提供します。 Object StageOrientation クラスでは、ステージとデバイスで利用可能な方向を列挙した定数を定義します。 flash.display.Stage.orientationflash.display.Stage.setOrientation()flash.display.Stage.deviceOrientationflash.events.StageOrientationEvent.afterOrientationflash.events.StageOrientationEvent.beforeOrientationDEFAULT 現在、ステージがデバイスのデフォルトの方向(右側が上)を向いていることを示します。defaultString 現在、ステージがデバイスのデフォルトの方向(右側が上)を向いていることを示します。 ROTATED_LEFT 現在、ステージがデフォルトの方向を基準にして左側に回転しているように指定します。rotatedLeftString 現在、ステージがデフォルトの方向を基準にして左側に回転しているように指定します。

注意:デバイスの方向を左側に回転する場合、上方位置を保持するためステージは右側に回転する必要があります。

ROTATED_RIGHT 現在、ステージがデフォルトの方向を基準にして右側に回転しているように指定します。rotatedRightString 現在、ステージがデフォルトの方向を基準にして右側に回転しているように指定します。

注意:デバイスの方向を右側に回転する場合、上方位置を保持するためステージは左側に回転する必要があります。

UNKNOWN デバイスの方向がまだ確定していないことを指定します。unknownString デバイスの方向がまだ確定していないことを指定します。この状態は、デバイスが机上に平らに置かれているとき、およびアプリケーションが初期化中の場合に発生します。 UPSIDE_DOWN 現在、ステージがデフォルトの方向を基準にして上下逆の位置にあることを指定します。upsideDownString 現在、ステージがデフォルトの方向を基準にして上下逆の位置にあることを指定します。
DisplayObjectContainer DisplayObjectContainer クラスは、表示リストで表示オブジェクトコンテナとして機能するすべてのオブジェクトの基本クラスです。子オブジェクトを持つすべての表示オブジェクトの抽象基本クラスです。 flash.display:InteractiveObject DisplayObjectContainer クラスは、表示リストで表示オブジェクトコンテナとして機能するすべてのオブジェクトの基本クラスです。表示リストでは、Flash ランタイムに表示されるすべてのオブジェクトを管理します。DisplayObjectContainer クラスは、表示リスト内で表示オブジェクトを配置するために使用します。各 DisplayObjectContainer オブジェクトは、オブジェクトの z 順序を編成するために独自の子リストを持っています。z 順序は、どのオブジェクトを前面、背面、その他に描画するかを決定する、前から後ろへの順序です。

DisplayObject は抽象基本クラスであるため、DisplayObject を直接呼び出すことはできません。new DisplayObject() を呼び出すと ArgumentError 例外がスローされます。

DisplayObjectContainer クラスは、子オブジェクトを持つすべてのオブジェクトの抽象基本クラスです。これは直接インスタンス化することはできません。new DisplayObjectContainer() コンストラクターを呼び出すと、ArgumentError 例外がスローされます。

詳しくは、『ActionScript 3.0 開発ガイド』の「表示のプログラミング」の章を参照してください。

次の例では、クラス DisplayObjectContainerExample を使用して、5 つのオレンジ色の四角形を連続して作成します。これを行うには、以下の手順を実行します。
  1. コンストラクターは configureAssets() メソッドを呼び出します。
  2. configureAssets() メソッドは、child および lastChild Sprite オブジェクトを作成します。
  3. for ループは、オレンジ色の四角形を 5 個作成し、それらを 1 つずつ配置します。
  4. CustomSprite オブジェクトが作成されるたびに、そのコンストラクターは draw() メソッド(CustomSprite オブジェクトのメソッド)を呼び出します。これにより、50 x 50 ピクセルの四角形が、Graphics クラスの beginFill() メソッド、drawRect() メソッド、および endFill() メソッドを呼び出すことで作成されます。addChild() メソッドは、各四角形を表示リストに追加します。
package { import flash.display.DisplayObject; import flash.display.Sprite; public class DisplayObjectContainerExample extends Sprite { private var gutter:uint = 5; private var childCount:uint = 5; public function DisplayObjectContainerExample() { configureAssets(); } private function configureAssets():void { var child:Sprite = new CustomSprite(); var lastChild:Sprite = child; for (var i:uint = 1; i <= childCount; i++) { child = new CustomSprite(); child.x = lastChild.x + lastChild.width + gutter; addChild(child); lastChild = child; } } } } import flash.display.Sprite; class CustomSprite extends Sprite { private var size:uint = 50; private var bgColor:uint = 0xFFCC00; public function CustomSprite() { draw(size, size); } private function draw(w:uint, h:uint):void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, w, h); graphics.endFill(); } }
flash.display.DisplayObjectDisplayObjectContainer 新しい DisplayObjectContainer() コンストラクターを呼び出すと、ArgumentError 例外がスローされます。 new DisplayObjectContainer() コンストラクターを呼び出すと、ArgumentError 例外がスローされます。ただし、次に示す DisplayObjectContainer のサブクラスについてはコンストラクターを呼び出すことができます。
  • new Loader()
  • new Sprite()
  • new MovieClip()
addChildAt この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。インデックス位置が子リストに存在しない場合にスローされます。 RangeErrorRangeError子が親と同じ場合にスローされます。呼び出し元が、追加されている子の子(または孫など)の場合もスローされます。 ArgumentErrorArgumentErrorchild パラメーターで渡す DisplayObject インスタンスです。 flash.display:DisplayObjectchildflash.display:DisplayObjectこの DisplayObjectContainer インスタンスの子として追加する DisplayObject インスタンスです。 indexint子を追加するインデックス位置です。既にオブジェクトが置かれているインデックス位置を指定すると、その位置にあるオブジェクトとその上に位置するすべてのオブジェクトが、子リスト内で 1 つ上の位置に移動します。 この DisplayObjectContainer インスタンスに子オブジェクトを追加します。 この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。子インスタンスは、指定されたインデックス位置に追加されます。インデックス 0 は、この DisplayObjectContainer オブジェクトの表示リストの背景または一番下を表します。

例えば、a、b、c というラベルの 3 個の表示オブジェクトをインデックス位置 0、2、1 にそれぞれ配置すると、以下のようになります。

既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。

次の例では、container 表示オブジェクトコンテナを作成し、表示オブジェクト circle1 をその表示リストに追加します。次に container.addChildAt(circle2, 0) を呼び出します。これは、circle2 オブジェクトをインデックス位置ゼロ(黒)に追加し、circle1 オブジェクトをインデックス位置 1 に移動します。 import flash.display.Sprite; var container:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); var circle2:Sprite = new Sprite(); container.addChild(circle1); container.addChildAt(circle2, 0); trace(container.getChildAt(0) == circle2); // true trace(container.getChildAt(1) == circle1); // true
addChild()addedflash.events:Event表示オブジェクトが表示リストに追加されたときに送出されます。 表示オブジェクトが表示リストに追加されたときに送出されます。
addChild この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。子が親と同じ場合にスローされます。呼び出し元が、追加されている子の子(または孫など)の場合もスローされます。 ArgumentErrorArgumentErrorchild パラメーターで渡す DisplayObject インスタンスです。 flash.display:DisplayObjectchildflash.display:DisplayObjectこの DisplayObjectContainer インスタンスの子として追加する DisplayObject インスタンスです。 この DisplayObjectContainer インスタンスに子オブジェクトを追加します。 この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。子インスタンスは、この DisplayObjectContainer インスタンスにある他のすべての子の前(上)に追加されます(特定のインデックス位置に子を追加する場合は、addChildAt() メソッドを使用します)。

既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。

注意:コマンド stage.addChild() は、セキュリティに関する問題や読み込まれた他の SWF ファイルとの競合など、パブリッシュされた SWF ファイルで発生する問題の原因になることがあります。 ランタイムに読み込まれた SWF ファイルの数に関わりなく、Flash ランタイムインスタンス内に存在する Stage は 1つだけです。したがって、通常は、オブジェクトを Stage に直接追加しないでください。Stage に含められるオブジェクトはルートオブジェクトだけです。DisplayObjectContainer を作成して、表示リストのすべてのアイテムを含めます。必要に応じて、その DisplayObjectContainer を Stage に追加します。

次の例では、container1 および container2 という名前の 2 つの Sprite オブジェクトを設定します。Sprite は表示オブジェクトコンテナの 1 つです。例では、addChild() メソッドを呼び出して、次のような表示階層を設定します。container1container2 の子で、他の 2 つの表示オブジェクト circle1circle2 は、container1 の子です。trace() メソッドを呼び出すと、各オブジェクトの子の数が表示されます。numChildren のカウントには孫は含められません。 import flash.display.Sprite; var container1:Sprite = new Sprite(); var container2:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(80, 40, 40); container2.addChild(container1); container1.addChild(circle1); container1.addChild(circle2); trace(container1.numChildren); // 2 trace(container2.numChildren); // 1 trace(circle1.numChildren); // 0 trace(circle2.numChildren); // 0
addChildAt()addedflash.events:Event表示オブジェクトが表示リストに追加されたときに送出されます。 表示オブジェクトが表示リストに追加されたときに送出されます。
areInaccessibleObjectsUnderPoint 特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。true は、そのポイントがセキュリティ上の制限のある子表示オブジェクトを含んでいることを示します。 Booleanpointflash.geom:Point注目するポイントです。 特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。デフォルトでは、Security.allowDomain() メソッドの呼び出しによって許可されていない限り、あるドメインのコンテンツから別のドメインのオブジェクトにアクセスすることはできません。セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

point パラメーターは、ステージの座標空間内にあり、表示オブジェクトコンテナの座標空間とは異なる場合があります。ただし、表示オブジェクトがステージである場合、座標空間は同じです。globalToLocal() メソッドおよび localToGlobal() メソッドを使用すると、これらの座標空間の間でポイントを変換できます。

次に示すコードは container という名前の表示オブジェクトコンテナを作成します。次のコードブロックでは、Loader オブジェクトを使用してリモートファイルサーバーから "test.jpg" という名前の JPEG ファイルをロードします。LoaderContext オブジェクトの checkPolicyFile プロパティ(load() メソッドでパラメーターとして使用)が、false に設定されます。ファイルがロードされると、コードは loaded() メソッドを呼び出します。このメソッドは、container.areInaccessibleObjectsUnderPoint() を呼び出しますが、ロードされたコンテンツがアクセスできないドメインからのものであることを前提としているため、true の値が返されます。 import flash.display.Sprite; import flash.display.Loader; import flash.system.LoaderContext; import flash.net.URLRequest; import flash.events.Event; import flash.geom.Point; var container:Sprite = new Sprite(); var urlReq:URLRequest = new URLRequest("http://localhost/RemoteFile.swf"); var ldr:Loader = new Loader(); var context:LoaderContext = new LoaderContext(); context.checkPolicyFile = false; ldr.load(urlReq, context); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound); function loaded(event:Event):void { var pt:Point = new Point(1, 1); trace(container.areInaccessibleObjectsUnderPoint(pt)); // true } function urlNotFound(event:Event):void { trace("The URL was not found."); } この例では、このコードによって生成される SWF ファイルが JPEG ファイルとは異なるドメインからロードされ、ロードされた JPEG ファイルがポイント (1, 1) に置かれることを想定しています。
flash.system.Security.allowDomain()getObjectsUnderPoint()DisplayObject.globalToLocal()DisplayObject.localToGlobal()
contains 指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。true となります(child オブジェクトが DisplayObjectContainer の子であるか、コンテナ自体である場合)。そうでない場合は、false となります。 Booleanchildflash.display:DisplayObjectテストする子オブジェクトです。 指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。検索には、この DisplayObjectContainer インスタンスの入った表示リスト全体が含まれます。孫、ひ孫などがそれぞれ true を返します。 次の例では、Sprite オブジェクトの数を設定し、いくつかを他の子リストに追加します。Sprite オブジェクトは、表示オブジェクトコンテナの 1 つです。様々なオブジェクト間の関係は、contains() メソッドを呼び出すと表示されます。 import flash.display.Sprite; var sprite1:Sprite = new Sprite(); var sprite2:Sprite = new Sprite(); var sprite3:Sprite = new Sprite(); var sprite4:Sprite = new Sprite(); sprite1.addChild(sprite2); sprite2.addChild(sprite3); trace(sprite1.contains(sprite1)); // true trace(sprite1.contains(sprite2)); // true trace(sprite1.contains(sprite3)); // true trace(sprite1.contains(sprite4)); // false getChildAt 指定のインデックス位置にある子表示オブジェクトインスタンスを返します。インデックスが子リストに存在しない場合にスローされます。 RangeErrorRangeErrorこの子表示オブジェクトは、アクセス権が与えられていない Sandbox に属しています。子ムービーで Security.allowDomain() を呼び出すことにより、この状況を回避できます。 SecurityErrorSecurityError指定されたインデックス位置にある子表示オブジェクトです。 flash.display:DisplayObjectindexint子オブジェクトのインデックス位置です。 指定のインデックス位置にある子表示オブジェクトインスタンスを返します。 次の例では、container という名前の表示オブジェクトコンテナを作成し、次に 3 つの表示オブジェクトを container オブジェクトの子リストに追加します。getChildAt() メソッドを呼び出すと、子オブジェクトの位置が表示されます。 import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); var sprite2:Sprite = new Sprite(); var sprite3:Sprite = new Sprite(); container.addChild(sprite1); container.addChild(sprite2); container.addChildAt(sprite3, 0); trace(container.getChildAt(0) == sprite3); // true trace(container.getChildAt(1) == sprite1); // true trace(container.getChildAt(2) == sprite2); // true getChildByName()getChildByName 指定された名前に一致する子表示オブジェクトを返します。この子表示オブジェクトは、アクセス権が与えられていない Sandbox に属しています。子ムービーで Security.allowDomain() メソッドを呼び出すことにより、この状況を回避できます。 SecurityErrorSecurityError指定された名前を持つ子表示オブジェクトです。 flash.display:DisplayObjectnameString返される子の名前です。 指定された名前に一致する子表示オブジェクトを返します。指定された名前を持つ子表示オブジェクトが複数存在する場合、メソッドは子リストの最初のオブジェクトを返します。

getChildAt() メソッドは、getChildByName() メソッドよりも処理が高速です。getChildAt() メソッドはキャッシュ配列の子にアクセスしますが、getChildByName() メソッドでは子にアクセスするためにリンクされたリストを移動する必要があります。

次の例では、container という名前の表示オブジェクトコンテナを作成し、次に 2 つの子表示オブジェクトをコンテナに追加します。次にコードは getChildByName() メソッドおよび getChildIndex() メソッドを呼び出し、container オブジェクトの子のインデックス位置を返します。このオブジェクトは、name "sprite1" を持ちます。 import flash.display.Sprite; import flash.display.DisplayObject; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); var target:DisplayObject = container.getChildByName("sprite1"); trace(container.getChildIndex(target)); // 0
getChildAt()flash.display.DisplayObject.name
getChildIndex 子 DisplayObject インスタンスのインデックス位置を返します。子パラメーターがこのオブジェクトの子でない場合にスローされます。 ArgumentErrorArgumentError特定する子表示オブジェクトのインデックス位置です。 intchildflash.display:DisplayObject特定する DisplayObject インスタンスです。 子 DisplayObject インスタンスのインデックス番号を返します。 child DisplayObject インスタンスのインデックス位置を返します。 次の例では、container という名前の表示オブジェクトコンテナを作成し、次に 2 つの子表示オブジェクトをコンテナに追加します。次にコードは getChildByName() メソッドおよび getChildIndex() メソッドを呼び出し、container オブジェクトの子のインデックス位置を返します。このオブジェクトは、name "sprite1" を持ちます。 import flash.display.Sprite; import flash.display.DisplayObject; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); var target:DisplayObject = container.getChildByName("sprite1"); trace(container.getChildIndex(target)); // 0 getObjectsUnderPoint 指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子(または孫など)であるオブジェクトの配列を返します。指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子または孫などであるオブジェクトの配列です。 Arraypointflash.geom:Point注目するポイントです。 指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子(または孫など)であるオブジェクトの配列を返します。セキュリティ上の理由でアクセスできない子オブジェクトは返される配列から除かれます。このようなセキュリティ上の制限が、返される配列に与えている影響について判別するには、areInaccessibleObjectsUnderPoint() メソッドを呼び出します。

point パラメーターは、ステージの座標空間内にあり、表示オブジェクトコンテナの座標空間とは異なる場合があります。ただし、表示オブジェクトがステージである場合、座標空間は同じです。globalToLocal() メソッドおよび localToGlobal() メソッドを使用すると、これらの座標空間の間でポイントを変換できます。

次の例では、container という名前の表示オブジェクトコンテナを作成し、次に重なり合う 2 つの子表示オブジェクトをコンテナに追加します。さらにコードは getObjectsUnderPoint() を 2 回(最初は 1 つのオブジェクトのみに接するポイントを使用して、次にオブジェクトが重なり合うポイントを使用して)呼び出し、返された Array の length で、コンテナの各ポイントにあるオブジェクト数を示します。 import flash.display.Sprite; import flash.geom.Point; var container:Sprite = new Sprite(); var square1:Sprite = new Sprite(); square1.graphics.beginFill(0xFFCC00); square1.graphics.drawRect(0, 0, 40, 40); var square2:Sprite = new Sprite(); square2.graphics.beginFill(0x00CCFF); square2.graphics.drawRect(20, 0, 30, 40); container.addChild(square1); container.addChild(square2); var pt:Point = new Point(10, 20); var objects:Array = container.getObjectsUnderPoint(pt); trace(objects.length); // 1 pt = new Point(35, 20); objects = container.getObjectsUnderPoint(pt); trace(objects.length); // 2
areInaccessibleObjectsUnderPoint()DisplayObject.globalToLocal()DisplayObject.localToGlobal()
removeChildAt DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。この子表示オブジェクトは、呼び出し元オブジェクトにアクセス権が与えられていない Sandbox に属しています。子ムービーで Security.allowDomain() メソッドを呼び出すことにより、この状況を回避できます。 SecurityErrorSecurityErrorインデックスが子リストに存在しない場合にスローされます。 RangeErrorRangeError削除された DisplayObject インスタンスです。 flash.display:DisplayObjectindexint削除する DisplayObject の子インデックスです。 指定された index 位置にある子表示オブジェクトを、DisplayObjectContainer インスタンスから削除します。 DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。DisplayObjectContainer の子より上位にある表示オブジェクトのインデックス位置は 1 つ下がります。

ガベージコレクターは、未使用のメモリスペースの再割り当てを行います。 変数またはオブジェクトがアクティブに参照されなくなり、任意の場所に保存されていない場合、ガベージコレクターによってメモリ内が探索され、それらに対する参照が存在しなければメモリスペースを占有している変数またはオブジェクトが一掃されます。

次の例では、container という名前の表示オブジェクトコンテナを作成し、次に 2 つの子表示オブジェクトをコンテナに追加します。removeChildAt() メソッドを呼び出して、最下位のインデックス位置 (0) にある子を削除するときに、リスト内の他の子オブジェクトが 1 つ下がることを、コードは示しています。 import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); trace(container.numChildren) // 2 container.removeChildAt(0); trace(container.numChildren) // 1 trace(container.getChildAt(0).name); // sprite2
removeChild DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。子パラメーターがこのオブジェクトの子でない場合にスローされます。 ArgumentErrorArgumentErrorchild パラメーターで渡す DisplayObject インスタンスです。 flash.display:DisplayObjectchildflash.display:DisplayObject削除する DisplayObject インスタンスです。 DisplayObjectContainer インスタンスから子表示オブジェクトを削除します。 DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。DisplayObjectContainer の子より上位にある表示オブジェクトのインデックス位置は 1 つ下がります。

ガベージコレクターは、未使用のメモリスペースの再割り当てを行います。 変数またはオブジェクトがアクティブに参照されなくなり、任意の場所に保存されていない場合、ガベージコレクターによってメモリ内が探索され、それらに対する参照が存在しなければメモリスペースを占有している変数またはオブジェクトが一掃されます。

次の例では、container という名前の表示オブジェクトコンテナを作成し、次に 2 つの子表示オブジェクトをコンテナに追加します。イベントリスナーが container オブジェクトに追加されます。これは、ユーザーがコンテナの子オブジェクトをクリックしたときに、removeChild() メソッドが、クリックされた子をコンテナの子リストから削除することを目的としています。 import flash.display.DisplayObject; import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); addChild(container); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(120, 40, 40); container.addChild(circle1); container.addChild(circle2); container.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { container.removeChild(DisplayObject(event.target)); }
setChildIndex 表示オブジェクトコンテナの既存の子の位置を変更します。インデックスが子リストに存在しない場合にスローされます。 RangeErrorRangeError子パラメーターがこのオブジェクトの子でない場合にスローされます。 ArgumentErrorArgumentErrorchildflash.display:DisplayObjectインデックス番号を変更する子 DisplayObject インスタンスです。 indexintchild 表示オブジェクトの結果のインデックス番号です。 既存の子のインデックス番号を変更します。 表示オブジェクトコンテナの既存の子の位置を変更します。これは、子オブジェクトのレイヤーに影響します。例えば、a、b、c というラベルの 3 個の表示オブジェクトをインデックス位置 0、1、2 にそれぞれ配置すると、以下のようになります。

setChildIndex() を使用し、既に占有されているインデックス位置を指定した場合、表示オブジェクトの前の位置と新しい位置の間にある位置だけが変化します。その他は変化しません。現在のインデックスよりも小さいインデックスに子を移動すると、その間のすべての子が、それぞれのインデックス参照について 1 増加します。現在のインデックスよりも大きいインデックスに子を移動すると、その間のすべての子が、それぞれのインデックス参照について 1 減少します。例えば、上記の例の表示オブジェクトコンテナの名前が container である場合、次に示すコードを呼び出すことによって、a および b というラベルが付けられた表示オブジェクトの位置を入れ替えることができます。

container.setChildIndex(container.getChildAt(1), 0);

このコードによって、次に示すようなオブジェクトの配置になります。

次の例では、container という名前の表示オブジェクトコンテナを作成し、次に少しずつ重なり合う 3 つの子表示オブジェクトをコンテナに追加します。ユーザーがこれらのオブジェクトのいずれかをクリックしたとき、clicked() メソッドは setChildIndex() メソッドを呼び出し、クリックされたオブジェクトを container オブジェクトの子リストの最上位置に移動します。 import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); addChild(container); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFF0000); circle1.graphics.drawCircle(40, 40, 40); circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00FF00); circle2.graphics.drawCircle(100, 40, 40); circle2.addEventListener(MouseEvent.CLICK, clicked); var circle3:Sprite = new Sprite(); circle3.graphics.beginFill(0x0000FF); circle3.graphics.drawCircle(70, 80, 40); circle3.addEventListener(MouseEvent.CLICK, clicked); container.addChild(circle1); container.addChild(circle2); container.addChild(circle3); addChild(container); function clicked(event:MouseEvent):void { var circle:Sprite = Sprite(event.target); var topPosition:uint = container.numChildren - 1; container.setChildIndex(circle, topPosition); }
addChildAt()getChildIndex()
swapChildrenAt 子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。インデックスが子リストに存在しません。 RangeErrorRangeErrorindex1int最初の子オブジェクトのインデックス位置です。 index2int2 番目の子オブジェクトのインデックス位置です。 子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。表示オブジェクトコンテナの他のすべての子オブジェクトは、同じインデックス位置に残されます。 次の例では、container という名前の表示オブジェクトコンテナを作成し、次に子表示オブジェクトをコンテナに追加して、swapChildrenAt() メソッドの呼び出しにより、表示オブジェクトコンテナの子リストが再配置される方法を示しています。 import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; var sprite3:Sprite = new Sprite(); sprite3.name = "sprite3"; container.addChild(sprite1); container.addChild(sprite2); container.addChild(sprite3); trace(container.getChildAt(0).name); // sprite1 trace(container.getChildAt(1).name); // sprite2 trace(container.getChildAt(2).name); // sprite3 container.swapChildrenAt(0, 2); trace(container.getChildAt(0).name); // sprite3 trace(container.getChildAt(1).name); // sprite2 trace(container.getChildAt(2).name); // sprite1 swapChildren 指定された 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。子パラメーターがいずれもこのオブジェクトの子でない場合にスローされます。 ArgumentErrorArgumentErrorchild1flash.display:DisplayObject先頭の子オブジェクトです。 child2flash.display:DisplayObject2 番目の子オブジェクトです。 指定された 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。表示オブジェクトコンテナの他のすべての子オブジェクトは、同じインデックス位置に残されます。 次の例では、container という名前の表示オブジェクトコンテナを作成し、次に 2 つの子表示オブジェクトをコンテナに追加して、swapChildren() メソッドの呼び出す場合の影響を示しています。 import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); trace(container.getChildAt(0).name); // sprite1 trace(container.getChildAt(1).name); // sprite2 container.swapChildren(sprite1, sprite2); trace(container.getChildAt(0).name); // sprite2 trace(container.getChildAt(1).name); // sprite1 mouseChildren オブジェクトの子がマウスまたはユーザー入力デバイスに対応しているかどうかを判断します。Boolean オブジェクトの子がマウスまたはユーザー入力デバイスに対応しているかどうかを判断します。対応している場合、ユーザーはマウスやユーザー入力デバイスを使用して、オブジェクトを操作できます。デフォルト値は true です。

このプロパティは、SimpleButton クラスではなく、Sprite クラスのインスタンスを使用してボタンを作成するときに役立ちます。Sprite インスタンスを使用してボタンを作成する場合、他の Sprite インスタンスを追加するために addChild() メソッドを使用してボタンの修飾を選択できます。子として追加する Sprite インスタンスは、親インスタンスをターゲットオブジェクトとすることを想定するときに、マウスイベントのターゲットオブジェクトとなる場合があるため、マウスイベントについて予期しない動作を引き起こす可能性があります。親インスタンスが確実にマウスイベントのターゲットオブジェクトになるようにするには、親インスタンスの mouseChildren プロパティを false に設定します。

このプロパティを設定しても、イベントは送出されません。インタラクティブな機能を作成するには、addEventListener() メソッドを使用する必要があります。

次の例では、container という名前の Sprite オブジェクト(一種の表示オブジェクトコンテナ)を設定し、mouseChildren プロパティを false に設定するとき、mouseClick イベントのターゲットは、その子オブジェクトのいずれかではなく、container オブジェクトになります。 import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); container.name = "container"; addChild(container); var circle:Sprite = new Sprite(); circle.name = "circle"; circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(40, 40, 40); container.addChild(circle); container.mouseChildren = false; container.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace(event.target.name); // container }
flash.display.Sprite.buttonModeflash.events.EventDispatcher.addEventListener()
numChildren このオブジェクトの子の数を返します。int このオブジェクトの子の数を返します。 次の例では、container1 および container2 という名前の 2 つの Sprite オブジェクトを設定します。Sprite は表示オブジェクトコンテナの 1 つです。例では、addChild() メソッドを呼び出して、次のような表示階層を設定します。container1container2 の子で、他の 2 つの表示オブジェクト circle1circle2 は、container1 の子です。trace() メソッドを呼び出すと、各オブジェクトの子の数が表示されます。numChildren のカウントには孫は含められません。 import flash.display.Sprite; var container1:Sprite = new Sprite(); var container2:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(80, 40, 40); container2.addChild(container1); container1.addChild(circle1); container1.addChild(circle2); trace(container1.numChildren); // 2 trace(container2.numChildren); // 1 trace(circle1.numChildren); // 0 trace(circle2.numChildren); // 0 tabChildren オブジェクトの子に対してタブが有効かどうかを調べます。BooleanStage オブジェクトのこのプロパティを呼び出すと、例外がスローされます。Stage オブジェクトはこのプロパティを実装しません。 IllegalOperationErrorflash.errors:IllegalOperationError オブジェクトの子に対してタブが有効かどうかを調べます。オブジェクトの子に対してタブを有効または無効にします。デフォルト値は true です。

注意:Flex では、tabChildren プロパティを使用しないでください。代わりに、mx.core.UIComponent.hasFocusableChildren プロパティを使用します。

次の例では、container1 表示オブジェクトコンテナを作成し、2 つの表示オブジェクト circle1circle2 をその子リストに追加します。例では、tabChildren を子の false に設定するため、tabIndex を使用して自身のタブ順を管理できます。 import flash.display.Sprite; var container:Sprite = new Sprite(); container.tabChildren = false; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.tabIndex = 1; var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(120, 40, 40); circle2.tabIndex = 0; container.addChild(circle1); container.addChild(circle2); この例の結果を表示するには、ファイルをコンパイルして実行します。いずれかの円を選択した後に、Tab キーを押すと、フォーカスがある表示オブジェクトを切り替えることができます。フォーカスを持っている表示オブジェクトは、黄色でハイライト表示された矩形で示されます。
textSnapshot この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。flash.text:TextSnapshot この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。 次に示す例は、Flash オーサリング環境でのみ機能します。Flex では、静止テキストをファイルに追加する方法はありません。この例のための Flash ファイルを準備するには、ムービーの最初のフレームに静止テキストフィールドを追加します。その後、最初のフレームに次に示すスクリプトを挿入して、ファイルを実行します。出力は、追加した静止テキストとなります。 trace(this.textSnapshot.getText(0, this.textSnapshot.charCount)); flash.text.TextSnapshot
GraphicsGradientFill グラデーション塗りを定義します。flash.display:IGraphicsFillflash.display:IGraphicsDataObject グラデーション塗りを定義します。

GraphicsGradientFill オブジェクトは、Graphics.drawGraphicsData() メソッドと共に使用します。GraphicsGradientFill オブジェクトの描画は、Graphics.beginGradientFill() メソッドの呼び出しに相当します。

flash.display.Graphics.beginGradientFill()flash.display.Graphics.drawGraphicsData()GraphicsGradientFill 新しい GraphicsGradientFill オブジェクトを作成します。typeStringlinear使用するグラデーションのタイプを指定する GradientType クラスの値は、次のとおりです。GradientType.LINEAR または GradientType.RADIALcolorsArraynullグラデーションで使用する RGB 16 進カラー値の配列(赤 0xFF0000、青 0x0000FF など)。最大 15 色まで指定できます。 各色について、alphas パラメーターと ratios パラメーターで対応する値を指定してください。 alphasArraynullcolors 配列内の各色に対応するアルファ値の配列。有効な値は 0 ~ 1 です。 値が 0 より小さい場合は、0 が使用されます。値が 1 より大きい場合は、1 が使用されます。 ratiosArraynull色分布比率の配列です。0 ~ 255 の範囲の値を指定できます。この値は、100%でサンプリングされる色の幅の割合をパーセントで定義します。 値 0 はグラデーションボックスの左の位置を表し、255 はグラデーションボックスの右の位置を表します。 matrixnullflash.geom.Matrix クラスで定義される変換マトリックスです。flash.geom.Matrix クラスには、createGradientBox() メソッドがあります。このメソッドを使用すると、beginGradientFill() メソッドで使用できるマトリックスを容易に設定できます。 spreadMethodpad使用する spread メソッドを指定する SpreadMethod クラスの値は、次のいずれかです。SpreadMethod.PADSpreadMethod.REFLECT、または SpreadMethod.REPEATinterpolationMethodStringrgb使用する値を指定する InterpolationMethod クラスの値は、InterpolationMethod.LINEAR_RGB または InterpolationMethod.RGB です。 focalPointRatioNumber0.0グラデーションの焦点の位置を制御する数値です。値が 0 の場合は、焦点が中央に設定されます。値が 0 の場合は、焦点がグラデーション円の一方の境界に設定されます。値が -1 の場合は、焦点がグラデーション円のもう一方の境界に設定されます。-1 未満または 1 より大きい値は、それぞれ -1 または 1 に丸められます。 新しい GraphicsGradientFill オブジェクトを作成します。 flash.display.Graphics.beginGradientFill()flash.display.GradientTypeflash.geom.Matrixflash.display.SpreadMethodflash.display.InterpolationMethodalphas colors 配列内の各色に対応するアルファ値の配列です。Array colors 配列内の各色に対応するアルファ値の配列です。有効な値の範囲は 0 ~ 1 です。値が 0 より小さい場合は、0 が使用されます。値が 1 より大きい場合は、1 が使用されます。 colors グラデーションで使用する RGB 16 進数カラー値の配列です。Array グラデーションで使用する RGB 16 進数カラー値の配列です。例えば、赤は 0xFF0000、青は 0x0000FF などです。最大 15 色まで指定できます。 各色について、alphas プロパティと ratios プロパティで対応する値を指定してください。 focalPointRatio グラデーションの焦点の位置を制御する数値です。Number グラデーションの焦点の位置を制御する数値です。値が 0 の場合は、焦点が中央に設定されます。値 1 は焦点がグラデーション円のいずれかの境界にあることを示します。値が -1 の場合は、焦点がグラデーション円のもう一方の境界に設定されます。-1 未満または 1 より大きい値は、それぞれ -1 または 1 に丸められます。例えば、次の例では focalPointRatio が 0.75 に設定されています。

matrix Matrix クラスで定義される変換マトリックスです。flash.geom:Matrix Matrix クラスで定義される変換マトリックスです。flash.geom.Matrix クラスには、createGradientBox() メソッドがあります。このメソッドを使用すると、beginGradientFill() メソッドで使用するマトリックスを設定できます。 flash.geom.Matrix.createGradientBox()ratios 色分布の比率の配列です。Array 色分布の比率の配列です。 有効な値の範囲は 0 ~ 255 です。この値は、100%でサンプリングされる色の幅の割合をパーセントで定義します。 値 0 はグラデーションボックスの左の位置を表し、値 255 はグラデーションボックスの右の位置を表します。

注意:この値は、グラデーションボックス内の位置を表すもので、最終グラデーションの座標空間を表すものではありません。最終グラデーションは、グラデーションボックスより広くなったり狭くなったりする場合があります。colors プロパティの値ごとに、対応する値を指定してください。

例えば、青と緑の 2 色を含む線状グラデーションの場合、次の例は、ratios 配列の様々な値に基づいて配置される色を示します。

ratiosグラデーション[0, 127][0, 255][127, 255]

配列内の値は、[0, 63, 127, 190, 255] のように順に増やしていく必要があります。

interpolationMethod 使用する値を指定する InterpolationMethod クラスの値です。String 使用する値を指定する InterpolationMethod クラスの値です。 有効な値は、InterpolationMethod.LINEAR_RGB または InterpolationMethod.RGB です。

例えば、2 色間のシンプルな線状グラデーション(spreadMethod パラメーターを SpreadMethod.REFLECT に設定)の例を次に示します。それぞれの補間方法で、外観は次のように変化します。

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
flash.display.InterpolationMethod
spreadMethod 使用する spread メソッドを指定する SpreadMethod クラスの値です。String 使用する spread メソッドを指定する SpreadMethod クラスの値です。 値は SpreadMethod.PADSpreadMethod.REFLECT、または SpreadMethod.REPEAT です。

例えば、2 つの色の間のシンプルな線状グラデーションを次の例に示します。

import flash.geom.* import flash.display.* var fillType:String = GradientType.LINEAR; var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [1, 1]; var ratios:Array = [0x00, 0xFF]; var matr:Matrix = new Matrix(); matr.createGradientBox(20, 20, 0, 0, 0); var spreadMethod:String = SpreadMethod.PAD; this.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod); this.graphics.drawRect(0,0,100,100);

この例では spread メソッドに SpreadMethod.PAD を使用しているため、グラデーションの塗りは次のようになります。

spread メソッドに SpreadMethod.REFLECT を使用する場合、グラデーションの塗りは次のようになります。

spread メソッドに SpreadMethod.REPEAT を使用する場合、グラデーションの塗りは次のようになります。

flash.display.SpreadMethod
type 使用するグラデーションのタイプを指定する GradientType クラスの値です。String 使用するグラデーションのタイプを指定する GradientType クラスの値です。値は GradientType.LINEAR または GradientType.RADIAL です。 flash.display.GradientType
Sprite Sprite クラスは、表示リストの基本的要素です。つまり、グラフィックを表示でき、子を持つこともできる表示リストノードです。ActionScript が作成するオブジェクトの基本表示オブジェクトです。 flash.display:DisplayObjectContainer Sprite クラスは、表示リストの基本的要素です。つまり、グラフィックを表示でき、子を持つこともできる表示リストノードです。

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

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

次の例では、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(); } } }
Sprite 新しい Sprite インスタンスを作成します。 新しい Sprite インスタンスを作成します。Sprite インスタンスの作成後、DisplayObjectContainer.addChild() または DisplayObjectContainer.addChildAt() メソッドを呼び出して、親 DisplayObjectContainer に Sprite を追加できます。 startDrag 指定されたスプライトをユーザーがドラッグできるようにします。lockCenterBooleanfalseドラッグ可能なスプライトが、ポインター位置の中心にロックされるか(true)、ユーザーがスプライト上で最初にクリックした位置にロックされるか(false)を指定します。 boundsflash.geom:RectanglenullSprite の制限矩形を指定する Sprite の親の座標を基準にした相対値です。 指定されたスプライトをユーザーがドラッグできるようにします。Sprite.stopDrag() メソッドを呼び出して明示的に停止するか、他のスプライトをドラッグ可能にするまでの間、スプライトはドラッグ可能なままになります。一度に 1 つのスプライトのみドラッグ可能です。

3 次元表示オブジェクトがポインターを追いかけ、Sprite.startDrag() が、表示オブジェクトによって定義された 3 次元平面の中でオブジェクトを移動します。または、表示オブジェクトが 2 次元オブジェクトであり、3 次元オブジェクトの子である場合は、親である 3 次元オブジェクトによって定義された 3 次元平面の中を 2 次元オブジェクトが移動します。

次の例では、circle スプライトおよび 2 つの target スプライトを作成します。ユーザーがスプライト上にカーソルを置き、マウスボタンを押したとき、startDrag() メソッドが circle スプライト上に呼び出され、ユーザーがマウスボタンを離したときには、stopDrag() メソッドが呼び出されます。これによって、ユーザーはスプライトをドラッグできるようになります。マウスボタンが離された時点で、mouseRelease() メソッドが呼び出されます。このメソッドは、namedropTarget オブジェクトのもの)、つまり、ユーザーが 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); }
dropTargetstopDrag()
startTouchDrag 指定されたスプライトを、ユーザーがタッチ対応デバイス上でドラッグできるようにします。touchPointIDintタッチポイントに割り当てる整数です。 lockCenterBooleanfalseドラッグ可能なスプライトが、ポインター位置の中心にロックされるか(true)、ユーザーがスプライト上で最初にクリックした位置にロックされるか(false)を指定します。 boundsflash.geom:RectanglenullSprite の制限矩形を指定する Sprite の親の座標を基準にした相対値です。 指定されたスプライトを、ユーザーがタッチ対応デバイス上でドラッグできるようにします。Sprite.stopTouchDrag() メソッドを呼び出して明示的に停止するか、他のスプライトをドラッグ可能にするまでの間、スプライトはドラッグ可能なままになります。一度に 1 つのスプライトのみドラッグ可能です。

3 次元表示オブジェクトがポインターを追いかけ、Sprite.startTouchDrag() が、表示オブジェクトによって定義された 3 次元平面の中でオブジェクトを移動します。または、表示オブジェクトが 2 次元オブジェクトであり、3 次元オブジェクトの子である場合は、親である 3 次元オブジェクトによって定義された 3 次元平面の中を 2 次元オブジェクトが移動します。

次の例は、startTouchDrag と stopTouchDrag を使用して touchBegin イベントと touchEnd イベントを処理する関数を示しています。touchPointID の値は、イベントオブジェクトに割り当てられた値です。bounds パラメーターは矩形を表し、親の表示オブジェクト(bg は MySprite を含む表示オブジェクト)の境界を定義しています。 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"); }
dropTargetstopTouchDrag()flash.ui.Multitouchflash.events.TouchEvent
stopDrag startDrag() メソッドを終了します。 startDrag() メソッドを終了します。startDrag() メソッドによってドラッグ可能になったスプライトは、stopDrag() メソッドを追加するか、他のスプライトがドラッグ可能になるまで、ドラッグ可能のままです。一度に 1 つのスプライトのみドラッグ可能です。 次の例では、circle スプライトおよび 2 つの target スプライトを作成します。ユーザーがスプライト上にカーソルを置き、マウスボタンを押したとき、startDrag() メソッドが circle スプライト上に呼び出され、ユーザーがマウスボタンを離したときには、stopDrag() メソッドが呼び出されます。これによって、ユーザーはスプライトをドラッグできるようになります。マウスボタンが離された時点で、mouseRelease() メソッドが呼び出されます。このメソッドは、namedropTarget オブジェクトのもの)、つまり、ユーザーが 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); } dropTargetstartDrag()stopTouchDrag タッチ対応デバイスで使用する startTouchDrag() メソッドを終了します。touchPointIDintstartTouchDrag メソッドでタッチポイントに割り当てられる整数です。 タッチ対応デバイスで使用する startTouchDrag() メソッドを終了します。startTouchDrag() メソッドによってドラッグ可能になったスプライトは、stopTouchDrag() メソッドを追加するか、他のスプライトがドラッグ可能になるまで、ドラッグ可能のままです。一度に 1 つのスプライトのみドラッグ可能です。 次の例は、startTouchDrag と stopTouchDrag を使用して touchBegin イベントと touchEnd イベントを処理する関数を示しています。touchPointID の値は、イベントオブジェクトに割り当てられた値です。bounds パラメーターは矩形を表し、親の表示オブジェクト(bg は MySprite を含む表示オブジェクト)の境界を定義しています。 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"); } dropTargetstartTouchDrag()flash.ui.Multitouchflash.events.TouchEventbuttonMode このスプライトのボタンモードを指定します。Booleanこのスプライトのボタンモードを指定します。 このスプライトのボタンモードを指定します。true の場合、このスプライトはボタンとして動作します。この場合、このスプライトは、ポインターがこのスプライト上を通るとハンドカーソルの表示をトリガーし、このスプライトにフォーカスがあるときに Enter キーまたはスペースキーが押されると click イベントを受け取ることができます。useHandCursor プロパティを false に設定することにより、ハンドカーソルの表示を抑制することができます。この場合はポインターが表示されます。

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

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

次の例では、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);
ButtonSprite.useHandCursorInteractiveObject.tabEnabledDisplayObjectContainer.mouseChildren
dropTarget スプライトのドラッグ先またはスプライトがドロップされた先の表示オブジェクトを指定します。flash.display:DisplayObjectスプライトのドラッグ先またはスプライトがドロップされた DisplayObject を指定します。 スプライトのドラッグ先またはスプライトがドロップされた先の表示オブジェクトを指定します。 次の例では、circle スプライトおよび 2 つの target スプライトを作成します。ユーザーがスプライト上にカーソルを置き、マウスボタンを押したとき、startDrag() メソッドが circle スプライト上に呼び出され、ユーザーがマウスボタンを離したときには、stopDrag() メソッドが呼び出されます。これによって、ユーザーはスプライトをドラッグできるようになります。マウスボタンが離された時点で、mouseRelease() メソッドが呼び出されます。このメソッドは、namedropTarget オブジェクトのもの)、つまり、ユーザーが 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); } startDrag()stopDrag()graphics ベクターの描画コマンドが発生するこのスプライトに属する Graphics オブジェクトを指定します。flash.display:GraphicsGraphics オブジェクトを指定します。 ベクターの描画コマンドが発生するこのスプライトに属する 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 スプライトのヒット領域となる別のスプライトを指定します。flash.display:Sprite スプライトのヒット領域となる別のスプライトを指定します。hitArea プロパティが存在しないか、このプロパティの値が null または undefined の場合は、スプライト自体がヒット領域として使用されます。hitArea プロパティの値は、Sprite オブジェクトへの参照である場合があります。

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

注意:false に、ヒット領域として指定したスプライトの mouseEnabled プロパティを設定する必要があります。そうしないと、ヒット領域として指定したスプライトが、スプライトボタンの代わりにユーザー入力イベントを受け取るので、スプライトボタンが機能しない可能性があります。

次の例では、circle スプライトおよび square スプライトを作成します。square スプライトは hitAreacircle スプライトのもの)です。したがって、ユーザーが 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 このスプライト内のサウンドを制御します。flash.media:SoundTransform このスプライト内のサウンドを制御します。

注意:Adobe AIR では、このプロパティが HTMLControl オブジェクト内の HTML コンテンツに影響を及ぼすことはありません。

次の例では、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."); }
flash.media.SoundTransform
useHandCursor buttonMode プロパティが true に設定されたスプライト上にポインターが移動したときに、指差しハンドポインター(ハンドカーソル)を表示するかどうかを示すブール値です。BooleanbuttonMode プロパティが true に設定されたスプライト上にポインターが移動したときに、指差しハンドポインター(ハンドカーソル)を表示するかどうかを示すブール値です。 buttonMode プロパティが true に設定されたスプライト上にポインターが移動したときに、指差しハンドポインター(ハンドカーソル)を表示するかどうかを示すブール値です。useHandCursor プロパティのデフォルト値は true です。useHandCursortrue に設定すると、ポインターがボタンスプライト上に移動したときに、指差しハンドカーソルが表示されます。useHandCursorfalse に設定すると、代わりに矢印のポインターが使用されます。

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

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

次の例では、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);
buttonModeDisplayObjectContainer.mouseChildren
GraphicsBitmapFill ビットマップ塗りを定義します。flash.display:IGraphicsFillflash.display:IGraphicsDataObject ビットマップ塗りを定義します。ビットマップは、スムージング、繰り返し、またはタイリング表示して領域を塗りつぶしたり、変換マトリックスを使用して操作できます。

GraphicsBitmapFill オブジェクトは、Graphics.drawGraphicsData() メソッドと共に使用します。GraphicsBitmapFill オブジェクトの描画は、Graphics.beginBitmapFill() メソッドの呼び出しに相当します。

flash.display.Graphics.drawGraphicsData()flash.display.Graphics.beginBitmapFill()GraphicsBitmapFill 新しい GraphicsBitmapFill オブジェクトを作成します。bitmapDataflash.display:BitmapDatanull表示されるビットを含む透明または不透明ビットマップイメージです。 matrixflash.geom:Matrixnullflash.geom.Matrix クラスのマトリックスオブジェクトです。これを使用してビットマップ上に変形を定義します。 repeatBooleantruetrue の場合、ビットマップイメージが一定のパターンでタイル状に表示されます。false の場合、ビットマップイメージは繰り返されません。ビットマップからはみ出す塗り領域にはビットマップのエッジが使用されます。 smoothBooleanfalsefalse の場合、拡大ビットマップイメージは最近傍アルゴリズムを使用してレンダリングされ、ピクセル化されたように見えます。true の場合、拡大ビットマップイメージは双線形アルゴリズムを使用してレンダリングされます。通常は、最近傍アルゴリズムを使用したレンダリングの方が高速です。 新しい GraphicsBitmapFill オブジェクトを作成します。 flash.display.Graphics.beginBitmapFill()bitmapData 透明または不透明なビットマップイメージです。flash.display:BitmapData 透明または不透明なビットマップイメージです。 flash.display.BitmapDatamatrix ビットマップ上の変形を定義する、(flash.geom.Matrix クラスの)マトリックスオブジェクトです。flash.geom:Matrix ビットマップ上の変形を定義する、(flash.geom.Matrix クラスの)マトリックスオブジェクトです。例えば、次のマトリックスは、ビットマップを 45 度(π/4 ラジアン)回転します。 matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4); flash.geom.Matrixrepeat ビットマップイメージを一定のパターンでタイル状に表示するかどうかを指定します。Boolean ビットマップイメージを一定のパターンでタイル状に表示するかどうかを指定します。

true の場合、ビットマップイメージが一定のパターンでタイル状に表示されます。false の場合、ビットマップイメージは繰り返されません。ビットマップ境界からはみ出す塗り領域には、ビットマップのエッジの一番外側のピクセルが使用されます。

例えば、次のビットマップ(20 x 20 ピクセルのチェッカーボードのパターン)を考えます。

次の例のように repeattrue に設定されている場合、ビットマップの塗りでビットマップが繰り返されます。

repeatfalse に設定されている場合、エッジのピクセルがビットマップの外側の塗り領域に使用されます。

smooth ビットマップイメージにスムージングアルゴリズムを適用するかどうかを指定します。Boolean ビットマップイメージにスムージングアルゴリズムを適用するかどうかを指定します。

false の場合、拡大ビットマップイメージは最近傍アルゴリズムを使用してレンダリングされ、ピクセル化されたように見えます。true の場合、拡大ビットマップイメージは双線形アルゴリズムを使用してレンダリングされます。通常は、最近傍アルゴリズムを使用したレンダリングの方が高速です。

GraphicsStroke 線のスタイルを定義します。flash.display:IGraphicsStrokeflash.display:IGraphicsDataObject 線のスタイルを定義します。

GraphicsStroke オブジェクトは、Graphics.drawGraphicsData() メソッドと共に使用します。GraphicsStroke オブジェクトの描画は、線スタイルを設定する Graphics クラスのメソッドの呼び出しに相当します。例えば、Graphics.lineStyle() メソッド、Graphics.lineBitmapStyle() メソッド、Graphics.lineGradientStyle() メソッドなどがあります。

flash.display.Graphics.lineStyle()flash.display.Graphics.lineBitmapStyle()flash.display.Graphics.lineGradientStyle()flash.display.Graphics.drawGraphicsData()GraphicsStroke 新しい GraphicsStroke オブジェクトを作成します。thicknessNumberunknown線の太さをポイント単位で示す整数。有効な値は 0 ~ 255 です。パラメーターが undefined である場合は、線は描画されません。0 未満の値を指定した場合は、デフォルトで 0 が適用されます。0 は極細線です。最大の太さは 255 です。255 を超える値を指定した場合は、デフォルトで 255 が適用されます。 pixelHintingBooleanfalseピクセル全体に対して線をヒンティングするかどうかを指定するブール値。この値は、曲線のアンカーの位置と線のサイズ自身の両方に影響を与えます。pixelHintingtrue に設定すると、全ピクセル幅に線幅がヒンティングされます。pixelHintingfalse に設定すると、曲線と直線で非連続が発生することがあります。例えば、次の図は、pixelHinting パラメーター(lineStyle() メソッドで使用)の設定が異なるだけで他はまったく同じ 2 つの角丸矩形がどのようにレンダリングされるかを示したものです(違いが分かるようにイメージは 200% に拡大されています)。

値を指定しない場合、線でピクセルのヒンティングが使用されません。

scaleModeStringnormal使用する拡大・縮小モードを指定する LineScaleMode クラスの値です。
  • LineScaleMode.NORMAL — オブジェクトが拡大 / 縮小される場合、常に線の太さが拡大 / 縮小されます(デフォルト)。
  • LineScaleMode.NONE — 線の太さを拡大 / 縮小しません。
  • LineScaleMode.VERTICAL — オブジェクトを垂直方向にのみ拡大 / 縮小する場合は、線の太さを拡大 / 縮小しません。例えば、次に示す各円は、1 ピクセルの線で描画され、それぞれ scaleMode パラメーターが LineScaleMode.VERTICAL に設定されているとします。左側の円は垂直方向にのみ拡大または縮小され、右側の円は垂直と水平の両方向に拡大または縮小されたものです。

  • LineScaleMode.HORIZONTAL — オブジェクトを水平方向にのみ拡大 / 縮小する場合は、線の太さを拡大 / 縮小しません。例えば、次に示す各円は、1 ピクセルの線で描画され、それぞれ scaleMode パラメーターが LineScaleMode.HORIZONTAL に設定されているとします。左側の円は水平方向にのみ拡大または縮小され、右側の円は垂直と水平の両方向に拡大または縮小されたものです。

capsStringnone線の終端のキャップの種類を指定する CapsStyle クラスの値です。有効な値は次のとおりです。CapsStyle.NONECapsStyle.ROUND、および CapsStyle.SQUARE。この値を指定しない場合は、丸いキャップが使用されます。

例えば、次の図は capsStyle のさまざまな設定を示します。それぞれの設定で、図の青い線は太さ 30 で、capsStyle が適用されています。重ね合わせた黒い線は太さ 1 で、capsStyle は適用されていません。

jointsStringround角で使用する接合点の外観の種類を指定する JointStyle クラスの値です。有効な値は次のとおりです。JointStyle.BEVELJointStyle.MITER、および JointStyle.ROUND。この値を指定しないと、角丸("round")の接合点が使用されます。

例えば、次の図は joints のさまざまな設定を示します。それぞれの設定で、角のある青い線は太さ 30 で、jointStyle が適用されています。重ね合わせた黒い線は太さ 1 で、jointStyle は適用されていません。

注意:jointsJointStyle.MITER に設定すると、miterLimit パラメーターを使用して、マイターの長さを制限できます。

miterLimitNumber3.0マイターが切り取られる限度を示す数値です。有効な値の範囲は 1 ~ 255 で、この範囲を超えた値は 1 または 255 に丸められます。この値は、jointStyle"miter" に設定した場合にのみ有効です。miterLimit の値により、線の接合点を越えてマイターを延長できる長さが決定します。マイターを延長できる長さは、この値と線の thickness が乗算されたものです。例えば、miterLimit の値が 2.5 で、thickness が 10 ピクセルの場合、マイターは 25 ピクセルで切り取られます。

例として、次のような角のある線を考えます。どの線も thickness を 20 に設定して描画されていますが、miterLimit はそれぞれ 1、2、4 に設定されています。重ね合わされた黒の基準線は、接合点を示しています。

miterLimit のそれぞれの値には、マイターが切り取られる独自の最大角度があります。次の表に、いくつかの例を示します。

miterLimit の値:角度が以下より小さい場合は切り取られる1.41490 度260 度430 度815 度
fillflash.display:IGraphicsFillnull線を塗りつぶすためのデータを格納している IGraphicsFill インスタンス。IGraphicsFill インスタンスは、一連の塗りコマンドを表す場合があります。
新しい GraphicsStroke オブジェクトを作成します。
flash.display.LineScaleModeflash.display.CapsStyleflash.display.JointStyleflash.display.IGraphicsFill
fill 線を塗りつぶすためのデータを格納しているインスタンスを表します。flash.display:IGraphicsFill 線を塗りつぶすためのデータを格納しているインスタンスを表します。IGraphicsFill インスタンスは、一連の塗りコマンドを表す場合があります。 flash.display.IGraphicsFillmiterLimit マイターが切り取られる限度を示します。Number マイターが切り取られる限度を示します。有効な値の範囲は 1 ~ 255 で、この範囲を超えた値は 1 または 255 に丸められます。この値は、jointStyle"miter" に設定した場合にのみ有効です。miterLimit の値により、線の接合点を越えてマイターを延長できる長さが決定します。マイターを延長できる長さは、この値と線の thickness が乗算されたものです。例えば、miterLimit の値が 2.5 で、thickness が 10 ピクセルの場合、マイターは 25 ピクセルで切り取られます。

例として、次のような角のある線を考えます。どの線も thickness を 20 に設定して描画されていますが、miterLimit はそれぞれ 1、2、4 に設定されています。重ね合わされた黒の基準線は、接合点を示しています。

miterLimit のそれぞれの値には、マイターが切り取られる独自の最大角度があります。次の表に、いくつかの例を示します。

miterLimit の値:角度が以下より小さい場合は切り取られる1.41490 度260 度430 度815 度
pixelHinting ピクセル全体に対して線をヒンティングするかどうかを指定します。Boolean ピクセル全体に対して線をヒンティングするかどうかを指定します。この値は、曲線のアンカーの位置と線のサイズ自身の両方に影響を与えます。pixelHintingtrue に設定すると、全ピクセル幅に線幅がヒンティングされます。pixelHintingfalse に設定すると、曲線と直線で非連続が発生することがあります。例えば、次の図は、pixelHinting パラメーター(lineStyle() メソッドで使用)の設定が異なるだけで他はまったく同じ 2 つの角丸矩形がどのようにレンダリングされるかを示したものです(違いが分かるようにイメージは 200% に拡大されています)。

thickness 線の太さをポイント単位で示します。有効な値は 0 ~ 255 です。Number 線の太さをポイント単位で示します。有効な値は 0 ~ 255 です。パラメーターが undefined である場合は、線は描画されません。0 未満の値を指定した場合は、デフォルトで 0 が適用されます。0 は極細線です。最大の太さは 255 です。255 を超える値を指定した場合は、デフォルトで 255 が適用されます。 caps 線の終端のキャップの種類を指定します。String 線の終端のキャップの種類を指定します。有効な値は次のとおりです。CapsStyle.NONECapsStyle.ROUND、および CapsStyle.SQUARE。この値を指定しない場合は、丸いキャップが使用されます。

例えば、次の図は capsStyle のさまざまな設定を示します。それぞれの設定で、図の青い線は太さ 30 で、capsStyle が適用されています。重ね合わせた黒い線は太さ 1 で、capsStyle は適用されていません。

flash.display.CapsStyle
joints 角で使用する接合点の外観の種類を指定します。String 角で使用する接合点の外観の種類を指定します。有効な値は次のとおりです。JointStyle.BEVELJointStyle.MITER、および JointStyle.ROUND。この値を指定しないと、角丸("round")の接合点が使用されます。

例えば、次の図は joints のさまざまな設定を示します。それぞれの設定で、角のある青い線は太さ 30 で、jointStyle が適用されています。重ね合わせた黒い線は太さ 1 で、jointStyle は適用されていません。

注意:jointsJointStyle.MITER に設定すると、miterLimit パラメーターを使用して、マイターの長さを制限できます。

flash.display.JointStyle
scaleMode 線の太さの拡大 / 縮小を表します。String 線の太さの拡大 / 縮小を表します。有効な値は次のとおりです。
  • LineScaleMode.NORMAL — オブジェクトが拡大 / 縮小される場合、常に線の太さが拡大 / 縮小されます(デフォルト)。
  • LineScaleMode.NONE — 線の太さを拡大 / 縮小しません。
  • LineScaleMode.VERTICAL — オブジェクトを垂直方向にのみ拡大 / 縮小する場合は、線の太さを拡大 / 縮小しません。例えば、次に示す各円は、1 ピクセルの線で描画され、それぞれ scaleMode パラメーターが LineScaleMode.VERTICAL に設定されているとします。左側の円は垂直方向にのみ拡大または縮小され、右側の円は垂直と水平の両方向に拡大または縮小されたものです。

  • LineScaleMode.HORIZONTAL — オブジェクトを水平方向にのみ拡大 / 縮小する場合は、線の太さを拡大 / 縮小しません。例えば、次に示す各円は、1 ピクセルの線で描画され、それぞれ scaleMode パラメーターが LineScaleMode.HORIZONTAL に設定されているとします。左側の円は水平方向にのみ拡大または縮小され、右側の円は垂直と水平の両方向に拡大または縮小されたものです。

flash.display.LineScaleMode
GraphicsEndFill グラフィック塗りの最後を示します。flash.display:IGraphicsFillflash.display:IGraphicsDataObject グラフィック塗りの最後を示します。GraphicsEndFill オブジェクトは、Graphics.drawGraphicsData() メソッドと共に使用します。

GraphicsEndFill オブジェクトの描画は、Graphics.endFill() メソッドの呼び出しに相当します。

flash.display.Graphics.drawGraphicsData()flash.display.Graphics.endFill()GraphicsEndFill 塗りを明示的に終了するために、Graphics.drawGraphicsData() メソッドと共に使用するオブジェクトを作成します。 塗りを明示的に終了するために、Graphics.drawGraphicsData() メソッドと共に使用するオブジェクトを作成します。 flash.display.Graphics.drawGraphicsData()flash.display.Graphics.endFill()
ShaderPrecision このクラスによって、Shader クラスの precisionHint プロパティの有効な値を表す定数が定義されます。Object このクラスによって、Shader クラスの precisionHint プロパティの有効な値を表す定数が定義されます。定数はそれぞれシェーダー操作を実行する精度モードのいずれかを表します。

精度モードの選択は、次のシェーダー操作に影響します。これらの操作は、SSE 命令セットを内蔵する Intel プロセッサーでは高速になります。

  • sin(x)
  • cos(x)
  • tan(x)
  • asin(x)
  • acos(x)
  • atan(x)
  • atan(x, y)
  • exp(x)
  • exp2(x)
  • log(x)
  • log2(x)
  • pow(x, y)
  • reciprocal(x)
  • sqrt(x)
flash.display.Shader.precisionHintFAST fast 精度モードを表します。fastString fast 精度モードを表します。

fast 精度モードは処理速度を最大にするように設計されていますが、異なるプラットフォームや個々の CPU 構成で一貫した結果が得られません。多くの場合、グラフィックエフェクトの作成にはアーティファクトが見えることもなく、この精度レベルで十分です。

fast 精度モードの方が、ルックアップテーブルを使用するよりも高速です。

flash.display.Shader.precisionHint
FULL full 精度モードを表します。fullString full 精度モードを表します。

full 精度モードでは、シェーダーはすべての算術演算を完全桁の IEEE 32 ビット浮動少数規格で計算します。このモードでは、すべてのプラットフォームで一貫した動作が得られます。このモードでは、三角関数や指数関数などの一部の算術演算について処理速度が低下することがあります。

flash.display.Shader.precisionHint
BlendMode ブレンドモードの視覚効果のために定数値を提供するクラスです。Object ブレンドモードの視覚効果のために定数値を提供するクラスです。これらの定数は以下で使用されます。
  • flash.display.DisplayObject クラスの blendMode プロパティです。
  • blendMode パラメーター(flash.display.BitmapData クラスの draw() メソッドのパラメーター)です。
flash.display.DisplayObject.blendModeflash.display.BitmapData.draw()ADD 表示オブジェクトの要素カラーの値を背景色に加算し、その際に上限 0xFF を適用します。addString 表示オブジェクトの要素カラーの値を背景色に加算し、その際に上限 0xFF を適用します。この設定は、2 つのオブジェクト間で色を明るくするディゾルブをアニメーションにするときによく使用されます。

例えば、表示オブジェクトのピクセルの RGB 値が 0xAAA633 で、背景のピクセルの RGB 値が 0xDD2200 の場合、0xAA + 0xDD > 0xFF、0xA6 + 0x22 = 0xC8、および 0x33 + 0x00 = 0x33 であるので、表示されるピクセルの RGB 値は 0xFFC833 になります。

ALPHA 表示オブジェクトの各ピクセルのアルファ値を背景に適用します。alphaString 表示オブジェクトの各ピクセルのアルファ値を背景に適用します。このためには、親表示オブジェクトの blendMode プロパティを flash.display.BlendMode.LAYER に設定する必要があります。

GPU レンダリングではサポートされません。

DARKEN 表示オブジェクトの要素カラーと背景色のうち暗い方(値が小さい方)の色を選択します。darkenString 表示オブジェクトの要素カラーと背景色のうち暗い方(値が小さい方)の色を選択します。この設定は、重ね合わせタイプによく使用されます。

例えば、表示オブジェクトのピクセルの RGB 値が 0xFFCC33 で、背景のピクセルの RGB 値が 0xDDF800 の場合、0xFF > 0xDD、0xCC < 0xF8、0x33 > 0x00 = 33 であるので、表示されるピクセルの RGB 値は 0xDDCC00 になります。

GPU レンダリングではサポートされません。

DIFFERENCE 表示オブジェクトの要素カラーと背景色を比較し、2 つの要素カラーのうち明るい方の値から暗い方の値を差し引きます。differenceString 表示オブジェクトの要素カラーと背景色を比較し、2 つの要素カラーのうち明るい方の値から暗い方の値を差し引きます。この設定は、明るい色によく使用されます。

例えば、表示オブジェクトの 1 つのピクセルの RGB 値が 0xFFCC33 で、背景のピクセルの RGB 値が 0xDDF800 の場合、0xFF - 0xDD = 0x22、0xF8 - 0xCC = 0x2C、0x33 - 0x00 = 0x33 であるため、表示されるピクセルの RGB 値は 0x222C33 になります。

ERASE 表示オブジェクトのアルファ値に基づいて背景を消去します。eraseString 表示オブジェクトのアルファ値に基づいて背景を消去します。この処理では、親表示オブジェクトの blendMode プロパティを flash.display.BlendMode.LAYER に設定する必要があります。

GPU レンダリングではサポートされません。

HARDLIGHT 表示オブジェクトの暗さに基づいて、各ピクセルの色を調整します。hardlightString 表示オブジェクトの暗さに基づいて、各ピクセルの色を調整します。表示オブジェクトが 50% グレーよりも明るい場合、表示オブジェクトと背景の色が網がけされ、より明るくなります。表示オブジェクトが 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。

GPU レンダリングではサポートされません。

INVERT 背景を反転します。invertString 背景を反転します。 LAYER 表示オブジェクトに関する透明度グループを強制的に作成します。layerString 表示オブジェクトに関する透明度グループを強制的に作成します。つまり、表示オブジェクトが処理される前に、一時バッファー内で表示オブジェクトが事前に構成されます。ビットマップキャッシュを使って表示オブジェクトが事前キャッシュされる場合、または表示オブジェクトが、blendMode"normal" 以外に設定された子オブジェクトを少なくとも 1 つ含む表示オブジェクトコンテナである場合には、この事前構成の処理が自動的に実行されます。

GPU レンダリングではサポートされません。

LIGHTEN 表示オブジェクトの要素カラーと背景色のうち明るい方(値が大きい方)の色を選択します。lightenString 表示オブジェクトの要素カラーと背景色のうち明るい方(値が大きい方)の色を選択します。この設定は、重ね合わせタイプによく使用されます。

例えば、表示オブジェクトのピクセルの RGB 値が 0xFFCC33 で、背景のピクセルの RGB 値が 0xDDF800 の場合、0xFF > 0xDD、0xCC < 0xF8、および 0x33 > 0x00 = 33 であるので、表示されるピクセルの RGB 値は 0xFFF833 になります。

GPU レンダリングではサポートされません。

MULTIPLY 表示オブジェクトの要素カラーの値と背景色の要素カラーの値を乗算した後、0xFF で割って正規化し、色を暗くします。multiplyString 表示オブジェクトの要素カラーの値と背景色の要素カラーの値を乗算した後、0xFF で割って正規化し、色を暗くします。この設定は、シャドウや深度効果によく使用されます。

例えば、表示オブジェクトのピクセルの要素カラー(赤など)と背景のピクセルの対応するカラーの値が共に 0x88 の場合、乗算した結果は 0x4840 です。0xFF で除算すると、その要素カラーの値は 0x48 になります。これは、表示オブジェクトまたは背景の色よりも暗くなります。

NORMAL 表示オブジェクトは、背景の前に表示されます。normalString 表示オブジェクトは、背景の前に表示されます。表示オブジェクトのピクセル値は、背景のピクセル値より優先されます。表示オブジェクトが透明な部分では、背景が表示されます。 OVERLAY 背景の暗さに基づいて、各ピクセルの色を調整します。overlayString 背景の暗さに基づいて、各ピクセルの色を調整します。背景が 50% グレーよりも明るい場合、表示オブジェクトと背景の色が網がけされ、より明るくなります。背景が 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。

GPU レンダリングではサポートされません。

SCREEN 表示オブジェクトの色の補数(逆)と背景色の補数を乗算して、ブリーチ効果を得ます。screenString 表示オブジェクトの色の補数(逆)と背景色の補数を乗算して、ブリーチ効果を得ます。この設定は、ハイライトや、表示オブジェクトの黒い領域の削除によく使用されます。 SHADER シェーダーを使用して、オブジェクト間のブレンドを定義します。shaderString シェーダーを使用して、オブジェクト間のブレンドを定義します。

Shader インスタンスに blendShader プロパティを設定すると、表示オブジェクトの blendMode プロパティが BlendMode.SHADER に自動的に設定されます。blendShader プロパティを先に設定しないで blendMode プロパティを BlendMode.SHADER に設定すると、blendMode プロパティは BlendMode.NORMAL に設定されます。blendMode プロパティが BlendMode.SHADER に設定される blendShader プロパティを設定した後で blendMode プロパティの値を変更すると、ブレンドモードがリセットされ、blendMode プロパティを BlendMode.SHADER に設定するだけでブレンドシェーダーを使用できます。ブレンドモードの定義に使用したシェーダーを変更する場合を除いて、blendShader プロパティを再度設定する必要はありません。

GPU レンダリングではサポートされません。

flash.display.DisplayObject.blendModeflash.display.DisplayObject.blendShaderflash.display.Shader
SUBTRACT 結果の下限を 0 として、表示オブジェクトの要素カラーの値をその背景色の値から減算します。subtractString 下限を 0 として、表示オブジェクトの要素カラーの値をその背景色の値から減算します。この設定は、2 つのオブジェクト間で色を暗くするディゾルブをアニメーションにするときによく使用されます。

例えば、表示オブジェクトの 1 つのピクセルの RGB 値が 0xAA2233 で、背景のピクセルの RGB 値が 0xDDA600 の場合、0xDD - 0xAA = 0x33、0xA6 - 0x22 = 0x84、0x00 - 0x33 < 0x00 であるので、表示されるピクセルの RGB 値は 0x338400 になります。

Graphics Graphics クラスには、ベクターシェイプの作成に使用できる一連のメソッドがあります。Object Graphics クラスには、ベクターシェイプの作成に使用できる一連のメソッドがあります。描画をサポートする表示オブジェクトには、Sprite および Shape オブジェクトがあります。これらの各クラスには、Graphics オブジェクトである graphics プロパティがあります。以下は、簡単に使用できるように用意されているヘルパー関数の一例です。drawRect()drawRoundRect()drawCircle()、および drawEllipse()

ActionScript コードから直接 Graphics オブジェクトを作成することはできません。new Graphics() を呼び出すと、例外がスローされます。

Graphics クラスは final クラスであるため、サブクラス化することはできません。

次の例では、GraphicsExample クラスを使用して、円、角丸矩形、および四角形を描画します。これを行うには、以下の手順を実行します。
  1. 後で各シェイプのサイズを決定する際に使用する size プロパティを宣言します。
  2. 背景色をオレンジ色、境界線色を濃い灰色、境界線のサイズを 0 ピクセル、角丸の半径を 9 ピクセル、ステージの端と他のオブジェクトの間のスペースを 5 ピクセルに、それぞれ設定するプロパティを宣言します。
  3. 上記の手順で宣言したプロパティを Graphics クラスのビルトインメソッドと共に使用して、円、角丸矩形、および四角形を、座標 x = 0、y = 0 に描画します。
  4. ステージの一番上に配置された各シェイプを、x = 5、y = 5 から、シェイプ間のスペースを 5 ピクセルにして再描画します。
package { import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.Shape; import flash.display.Sprite; public class GraphicsExample extends Sprite { private var size:uint = 80; private var bgColor:uint = 0xFFCC00; private var borderColor:uint = 0x666666; private var borderSize:uint = 0; private var cornerRadius:uint = 9; private var gutter:uint = 5; public function GraphicsExample() { doDrawCircle(); doDrawRoundRect(); doDrawRect(); refreshLayout(); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = gutter; lastChild.y = gutter; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = gutter; lastChild = child; } } private function doDrawCircle():void { var child:Shape = new Shape(); var halfSize:uint = Math.round(size / 2); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawCircle(halfSize, halfSize, halfSize); child.graphics.endFill(); addChild(child); } private function doDrawRoundRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRoundRect(0, 0, size, size, cornerRadius); child.graphics.endFill(); addChild(child); } private function doDrawRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); addChild(child); } } }
beginBitmapFill 描画領域をビットマップイメージで塗りつぶします。bitmapflash.display:BitmapData表示されるビットを含む透明または不透明ビットマップイメージです。 matrixflash.geom:Matrixnullflash.geom.Matrix クラスのマトリックスオブジェクトです。これを使用してビットマップ上に変形を定義できます。例えば、次のマトリックスを使用すると、ビットマップを 45 度(π/4 ラジアン)回転できます。 matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4); repeatBooleantruetrue の場合、ビットマップイメージが一定のパターンでタイル状に表示されます。false の場合、ビットマップイメージは繰り返されません。ビットマップからはみ出す塗り領域にはビットマップのエッジが使用されます。

例えば、次のビットマップ(20 x 20 ピクセルのチェッカーボードのパターン)を考えます。

次の例のように repeattrue に設定されている場合、ビットマップの塗りでビットマップが繰り返されます。

repeatfalse に設定されている場合、エッジのピクセルがビットマップの外側の塗り領域に使用されます。

smoothBooleanfalsefalse の場合、拡大ビットマップイメージは最近傍アルゴリズムを使用してレンダリングされ、ピクセル化されたように見えます。true の場合、拡大ビットマップイメージは双線形アルゴリズムを使用してレンダリングされます。最近傍アルゴリズムを使用したレンダリングの方が高速です。 ビットマップ塗りのシェイプを開始します。
描画領域をビットマップイメージで塗りつぶします。ビットマップを繰り返すか、タイリング表示して、領域を塗りつぶすことができます。beginFill()beginBitmapFill()beginGradientFill()、または beginShaderFill() メソッドを呼び出すまで、塗りは有効です。clear() メソッドを呼び出すと、塗りがクリアされます。

アプリケーションでは、3 つ以上の点が描画されたとき、または endFill() メソッドが呼び出されたときに、塗りをレンダリングします。

次の例では、イメージ(image1.jpg)を使用し、回転させながら繰り返して矩形を塗りつぶします。
  1. イメージファイル(image1.jpg)は、Loader オブジェクトおよび URLRequest オブジェクトを使用してロードされます。ここでは、ファイルは SWF ファイルと同じディレクトリにあります。SWF ファイルは、「ローカルでの再生に関するセキュリティ」を「ローカルファイルにのみアクセスする」に設定してコンパイルする必要があります。
  2. イメージをロード(イベントが完了)すると、drawImage() メソッドが呼び出されます。イメージが適切にロードされなかった場合、ioErrorHandler() メソッドがトレースコメントを書き出します。
  3. drawImage() メソッドで、BitmapData オブジェクトがインスタンス化され、その幅と高さがイメージ(image1.jpg)に設定されます。その後、ソースイメージが BitmapData オブジェクトに描画されます。次に、矩形が mySprite Sprite オブジェクトに描画され、BitmapData オブジェクトを使用して塗りつぶされます。Matrix オブジェクトを使用して、beginBitmapFill() メソッドがイメージを 45 度回転し、イメージによる矩形の塗りつぶしを開始し、完全に塗りつぶします。
package { import flash.display.Sprite; import flash.display.BitmapData; import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; import flash.events.IOErrorEvent; import flash.geom.Matrix; public class Graphics_beginBitmapFillExample extends Sprite { private var url:String = "image1.jpg"; private var loader:Loader = new Loader(); public function Graphics_beginBitmapFillExample() { var request:URLRequest = new URLRequest(url); loader.load(request); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function drawImage(event:Event):void { var mySprite:Sprite = new Sprite(); var myBitmap:BitmapData = new BitmapData(loader.width, loader.height, false); myBitmap.draw(loader, new Matrix()); var matrix:Matrix = new Matrix(); matrix.rotate(Math.PI/4); mySprite.graphics.beginBitmapFill(myBitmap, matrix, true); mySprite.graphics.drawRect(100, 50, 200, 90); mySprite.graphics.endFill(); addChild(mySprite); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
endFill()beginFill()beginGradientFill()
beginFill 描画のときに他の Graphics メソッド(lineTo() や drawCircle() など)に対する今後の呼び出しに使用する単純な一色塗りを指定します。coloruint塗りのカラーです(0xRRGGBB)。 alphaNumber1.0塗りのアルファ値です(0.0 ~ 1.0)。 単色の塗りを指定します。 描画のときに他の Graphics メソッド(lineTo()drawCircle() など)に対する今後の呼び出しに使用する単純な一色塗りを指定します。 beginFill()beginBitmapFill()beginGradientFill()、または beginShaderFill() メソッドを呼び出すまで、塗りは有効です。clear() メソッドを呼び出すと、塗りがクリアされます。

アプリケーションでは、3 つ以上の点が描画されたとき、または endFill() メソッドが呼び出されたときに、塗りをレンダリングします。

このメソッドの使用方法の詳細については、このクラスの末尾のを参照してください。
endFill()beginBitmapFill()beginGradientFill()
beginGradientFill Graphics の他のメソッド(lineTo()、drawCircle() など)に対する、オブジェクトの後続の呼び出しに使用するグラデーション塗りを指定します。type パラメーターが有効でない場合 ArgumentErrorArgumentErrortypeString使用するグラデーションのタイプを指定する GradientType クラスの値は、次のとおりです。GradientType.LINEAR または GradientType.RADIALcolorsArrayグラデーションで使用する RGB 16 進カラー値の配列(赤 0xFF0000、青 0x0000FF など)。最大 15 色まで指定できます。 各色について、alphas パラメーターと ratios パラメーターで対応する値を指定してください。 alphasArraycolors 配列内の各色に対応するアルファ値の配列。有効な値は 0 ~ 1 です。 0 未満の値を指定した場合、デフォルトで 0 が適用されます。1 より大きい値を指定した場合、デフォルトで 1 が適用されます。 ratiosArray色分布比率の配列です。0 ~ 255 の範囲の値を指定できます。この値は、100%でサンプリングされる色の幅の割合をパーセントで定義します。 値 0 はグラデーションボックスの左の位置を表し、255 はグラデーションボックスの右の位置を表します。

注意:この値は、グラデーションボックス内の位置を表すもので、最終グラデーションの座標空間を表すものではありません。最終グラデーションは、グラデーションボックスより広くなったり狭くなったりする場合があります。colors パラメーターの値ごとに、値を指定してください。

例えば、青と緑の 2 色を含む線状グラデーションの場合、次の例は、ratios 配列のさまざまな値に基づいて配置される色を示します。

ratiosグラデーション[0, 127][0, 255][127, 255]

配列内の値は、[0, 63, 127, 190, 255] のように順に増やしていく必要があります。

matrixflash.geom:Matrixnullflash.geom.Matrix クラスで定義される変換マトリックスです。flash.geom.Matrix クラスには、createGradientBox() メソッドがあります。このメソッドを使用すると、beginGradientFill() メソッドで使用できるマトリックスを容易に設定できます。 spreadMethodStringpad使用する spread メソッドを指定する SpreadMethod クラスの値は、次のいずれかです。SpreadMethod.PADSpreadMethod.REFLECT、または SpreadMethod.REPEAT

例えば、2 つの色の間にシンプルな線状グラデーションがあるとします。

import flash.geom.* import flash.display.* var fillType:String = GradientType.LINEAR; var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [1, 1]; var ratios:Array = [0x00, 0xFF]; var matr:Matrix = new Matrix(); matr.createGradientBox(20, 20, 0, 0, 0); var spreadMethod:String = SpreadMethod.PAD; this.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod); this.graphics.drawRect(0,0,100,100);

この例では spread メソッドに SpreadMethod.PAD を使用しているため、グラデーションの塗りは次のようになります。

spread メソッドに SpreadMethod.REFLECT を使用する場合、グラデーションの塗りは次のようになります。

spread メソッドに SpreadMethod.REPEAT を使用する場合、グラデーションの塗りは次のようになります。

interpolationMethodStringrgb使用する値を指定する InterpolationMethod クラスの値は、InterpolationMethod.LINEAR_RGB または InterpolationMethod.RGB です。

例えば、2 つの色の間に、spreadMethod パラメーターが SpreadMethod.REFLECT に設定されたシンプルな線状グラデーションがあるとします。それぞれの補間方法で、外観に次のような影響があります。

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
focalPointRatioNumber0グラデーションの焦点の位置を制御する数値です。0 は焦点が中央にあること、1 は焦点がグラデーション円のいずれかの境界にあること、-1 は焦点がグラデーション円のもう一方の境界にあることを示します。-1 未満または 1 より大きい値は、-1 または 1 に丸められます。例えば、次の例では、focalPointRatio が 0.75 に設定されています。

グラデーションの塗りを指定します。
そのオブジェクトに対して以後実行する他の Graphics メソッド呼び出し(lineTo()drawCircle() など)で使用するグラデーション塗りを指定します。beginFill()beginBitmapFill()beginGradientFill()、または beginShaderFill() メソッドを呼び出すまで、塗りは有効です。clear() メソッドを呼び出すと、塗りがクリアされます。

アプリケーションでは、3 つ以上の点が描画されたとき、または endFill() メソッドが呼び出されたときに、塗りをレンダリングします。

endFill()beginFill()beginBitmapFill()flash.geom.Matrix.createGradientBox()flash.display.GradientTypeflash.display.SpreadMethod
beginShaderFill Graphics の他のメソッド(lineTo()、drawCircle() など)に対する、オブジェクトの後続の呼び出しに使用するシェーダー塗りを指定します。シェーダー出力タイプがこの操作に対応しない場合(シェーダーは pixel3 または pixel4 出力を指定する必要があります)。 ArgumentErrorArgumentErrorシェーダーが指定したイメージ入力が存在しない場合。 ArgumentErrorArgumentErrorByteArray または Vector の場合。<Number> インスタンスが入力として使用され、ShaderInput の width および height プロパティが指定されていない、または指定された値が入力オブジェクトのデータ量と一致しない場合。詳しくは、ShaderInput.input プロパティを参照してください。 ArgumentErrorArgumentErrorshaderflash.display:Shader塗りに使用するシェーダーです。この Shader インスタンスはイメージ入力の指定には必要ありません。ただし、シェーダーでイメージ入力が指定されている場合は、手動で入力を指定する必要があります。入力を指定するには、Shader.data プロパティについて、対応する ShaderInput プロパティの input プロパティを設定します。

Shader インスタンスを引数として渡すと、シェーダーが内部的にコピーされます。描画塗り操作は、元のシェーダーを参照するのではなく、その内部コピーを使用します。パラメーター値、入力、バイトコードの変更などの変更をシェーダーに加えたとしても、塗りつぶしに使用したコピーシェーダーにはその変更は適用されません。

matrixflash.geom:Matrixnullflash.geom.Matrix クラスのマトリックスオブジェクトです。これを使用してシェーダー上に変形を定義できます。例えば、次のマトリックスを使用すると、シェーダーを 45 度(π/4 ラジアン)回転できます。 matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4);

シェーダーで受け取る座標は、matrix パラメーターに対して指定したマトリックスに基づきます。デフォルトの(null)のマトリックスの場合、シェーダーの座標は入力のサンプリングが可能なローカルピクセル座標になります。

シェーダー塗りを指定します。
そのオブジェクトに対して以後実行する他の Graphics メソッド呼び出し(lineTo()drawCircle() など)で使用するシェーダー塗りを指定します。beginFill()beginBitmapFill()beginGradientFill()、または beginShaderFill() メソッドを呼び出すまで、塗りは有効です。clear() メソッドを呼び出すと、塗りがクリアされます。

アプリケーションでは、3 つ以上の点が描画されたとき、または endFill() メソッドが呼び出されたときに、塗りをレンダリングします。

シェーダー塗りは、GPU レンダリングではサポートされません。塗られる領域はシアン色になります。

endFill()beginFill()beginBitmapFill()beginGradientFill()flash.display.ShaderInput
clear この Graphics オブジェクトに描画されているグラフィックをクリアし、塗りと線のスタイルの設定をリセットします。 この Graphics オブジェクトに描画されているグラフィックをクリアし、塗りと線のスタイルの設定をリセットします。 copyFrom すべての描画コマンドをソース Graphics オブジェクトから、呼び出し Graphics オブジェクトにコピーします。sourceGraphicsflash.display:Graphics描画コマンドのコピー元の Graphics オブジェクトです。 すべての描画コマンドをソース Graphics オブジェクトから、呼び出し Graphics オブジェクトにコピーします。 curveTo (controlX, controlY) で指定されたコントロールポイントを使用し、現在の描画位置から (anchorX, anchorY) まで、現在の線のスタイルで曲線を描画します。controlXNumber親表示オブジェクトの基準点からの相対的なコントロールポイントの水平座標を指定する数値。 controlYNumber親表示オブジェクトの基準点からの相対的なコントロールポイントの垂直座標を指定する数値。 anchorXNumber親表示オブジェクトの基準点からの相対的な次のアンカーポイントの水平座標を指定する数値。 anchorYNumber親表示オブジェクトの基準点からの相対的な次のアンカーポイントの垂直座標を指定する数値。 (controlX, controlY) で指定されたコントロールポイントを使用し、現在の描画位置から (anchorX, anchorY) まで曲線を描画します。 (controlX, controlY) で指定されたコントロールポイントを使用し、現在の描画位置から (anchorX, anchorY) まで、現在の線のスタイルで曲線を描画します。その後、現在の描画位置は (anchorX, anchorY) に設定されます。描画先のムービークリップに Flash の描画ツールで作成したコンテンツが含まれている場合は、curveTo() メソッドへの呼び出しの結果はこのコンテンツの下に描画されます。curveTo() メソッドを呼び出してから moveTo() メソッドを呼び出すと、現在の描画位置はデフォルトで (0,0) になります。いずれかのパラメーターを省略すると、このメソッドは失敗し、現在の描画位置は変更されません。

描画される曲線は、二次ベジェ曲線です。二次ベジェ曲線は、2 つのアンカーポイントと 1 つのコントロールポイントで構成されています。曲線は、2 つのアンカーポイントを補間し、コントロールポイントに向かいます。

次の例では、幅と高さが 100 ピクセル、Sprite 表示オブジェクトの基準点 (0, 0) から右に 250 ピクセルの緑の丸いオブジェクトを描画します。

4 本の曲線を描いて円を作成し、緑で塗りつぶします。

二次ベジェ方程式の性質上、これは完全な円ではありません。円を描画する最善の方法は、Graphics クラスの drawCircle() メソッドを使用することです。

package { import flash.display.Sprite; import flash.display.Shape; public class Graphics_curveToExample1 extends Sprite { public function Graphics_curveToExample1():void { var roundObject:Shape = new Shape(); roundObject.graphics.beginFill(0x00FF00); roundObject.graphics.moveTo(250, 0); roundObject.graphics.curveTo(300, 0, 300, 50); roundObject.graphics.curveTo(300, 100, 250, 100); roundObject.graphics.curveTo(200, 100, 200, 50); roundObject.graphics.curveTo(200, 0, 250, 0); roundObject.graphics.endFill(); this.addChild(roundObject); } } }
次の例では、curveTo() メソッドを使用して新月を描画します。

1 ピクセルの 2 本の曲線を描画し、その曲線の間のスペースを白で塗りつぶします。moveTo() メソッドを使用して、現在の描画位置を座標 (100, 100) に配置します。最初の曲線の描画位置がターゲットポイント (100, 200) に移動します。2 番目の曲線の描画位置がターゲットポイントである開始位置 (100, 100) に戻ります。水平方向のコントロールポイントで、異なる曲線サイズが指定されています。

package { import flash.display.Sprite; import flash.display.Shape; public class Graphics_curveToExample2 extends Sprite { public function Graphics_curveToExample2() { var newMoon:Shape = new Shape(); newMoon.graphics.lineStyle(1, 0); newMoon.graphics.beginFill(0xFFFFFF); newMoon.graphics.moveTo(100, 100); newMoon.graphics.curveTo(30, 150, 100, 200); newMoon.graphics.curveTo(50, 150, 100, 100); graphics.endFill(); this.addChild(newMoon); } } }
drawCircle 円を描画します。xNumber親表示オブジェクトの基準点からの円の中心の相対 x 座標(ピクセル単位)。 yNumber親表示オブジェクトの基準点からの円の中心の相対 y 座標(ピクセル単位)。 radiusNumber円の半径(ピクセル単位)。 円を描画します。 円を描画します。drawCircle() メソッドを呼び出す前に、線のスタイルまたは塗り、あるいはその両方を設定します。そのためには、linestyle()lineGradientStyle()beginFill()beginGradientFill()、または beginBitmapFill() メソッドを呼び出します。 このメソッドの使用方法の詳細については、このクラスの末尾のを参照してください。 drawEllipse()lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()drawEllipse 楕円を描画します。xNumber親表示オブジェクトの基準点からの楕円の境界ボックスの左上の相対 x 座標(ピクセル単位)です。 yNumber親表示オブジェクトの基準点に対して相対的な、楕円の境界ボックスの左上の y 座標(ピクセル単位)です。 widthNumber楕円の幅(ピクセル単位)。 heightNumber楕円の高さ(ピクセル単位)。 楕円を描画します。 楕円を描画します。drawEllipse() メソッドを呼び出す前に、線のスタイルまたは塗り、あるいはその両方を設定します。そのためには、linestyle()lineGradientStyle()beginFill()beginGradientFill()、または beginBitmapFill() メソッドを呼び出します。 次の例では、drawEgg() 関数を使用し、eggSize パラメーターに応じて 3 つの異なるサイズの卵(3 種類のサイズの楕円)を描画します。
  1. コンストラクターが drawEgg() 関数を呼び出し、卵を描画する領域に対する水平方向および垂直方向のパラメーターと卵の種類(eggSize)を渡します。卵(楕円)の高さと幅は、描画する領域を決定するために使用できます。
  2. drawEgg() 関数が、それぞれのサイズの楕円を描画し、beginFill() メソッドを使用して白く塗りつぶします。この関数に対して事前に記述されたエラー処理はありません。
package { import flash.display.Sprite; import flash.display.Shape; public class Graphics_drawEllipseExample extends Sprite { public static const SMALL:uint = 0; public static const MEDIUM:uint = 1; public static const LARGE:uint = 2; public function Graphics_drawEllipseExample() { drawEgg(SMALL, 0, 100); drawEgg(MEDIUM, 100, 60); drawEgg(LARGE, 250, 35); } public function drawEgg(eggSize:uint, x:Number, y:Number):void { var myEgg:Shape = new Shape(); myEgg.graphics.beginFill(0xFFFFFF); myEgg.graphics.lineStyle(1); switch(eggSize) { case SMALL: myEgg.graphics.drawEllipse(x, y, 60, 70); break; case MEDIUM: myEgg.graphics.drawEllipse(x, y, 120, 150); break; case LARGE: myEgg.graphics.drawEllipse(x, y, 150, 200); break; default: trace ("Wrong size! There is no egg."); break; } myEgg.graphics.endFill(); this.addChild(myEgg); } } }
drawCircle()lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()
drawGraphicsData 描画用の一連の IGraphicsData インスタンスを送信します。graphicsDataグラフィックオブジェクトを含む Vector です。IGraphicsData インターフェイスを実装します。 描画用の一連の IGraphicsData インスタンスを送信します。このメソッドでは、IGraphicsData インターフェイスを実装する、パス、塗り、線などのオブジェクトを含む Vector を使用できます。IGraphicsData インスタンスの Vector は、図形の一部を表す場合と、図形全体を描画するための複雑な定義済みデータセットを表す場合があります。

グラフィックパスには別のグラフィックパスを含めることができます。 この操作では、graphicsData Vector にパスが含まれる場合、そのパスとサブパスがすべてレンダリングされます。

以下の例では、GraphicsGradientFill オブジェクトを作成して、四角形の塗りプロパティを設定します。次に、GraphicsStroke オブジェクト(線の太さ用)クラスと GraphicsSolidFill オブジェクト(線のカラー用)を作成して、四角形の境界線のプロパティを設定します。その後、GraphicsPath オブジェクトを作成して、図形描画用の値を含めます。これらのオブジェクトはすべて 1 つの IGraphicsData オブジェクトに格納され、図形をレンダリングする drawGraphicsData コマンドに渡されます。 package{ import flash.display.*; import flash.geom.*; public class DrawGraphicsDataExample extends Sprite { public function DrawGraphicsDataExample(){ // establish the fill properties var myFill:GraphicsGradientFill = new GraphicsGradientFill(); myFill.colors = [0xEEFFEE, 0x0000FF]; myFill.matrix = new Matrix(); myFill.matrix.createGradientBox(100, 100, 0); // establish the stroke properties var myStroke:GraphicsStroke = new GraphicsStroke(2); myStroke.fill = new GraphicsSolidFill(0x000000); // establish the path properties var myPath:GraphicsPath = new GraphicsPath(new Vector.<int>(), new Vector.<Number>()); myPath.commands.push(1,2,2,2,2); myPath.data.push(10,10, 10,100, 100,100, 100,10, 10,10); // populate the IGraphicsData Vector array var myDrawing:Vector.<IGraphicsData> = new Vector.<IGraphicsData>(); myDrawing.push(myFill, myStroke, myPath); // render the drawing graphics.drawGraphicsData(myDrawing); } } }
flash.display.IGraphicsDataflash.display.GraphicsBitmapFillflash.display.GraphicsEndFillflash.display.GraphicsGradientFillflash.display.GraphicsPathflash.display.GraphicsShaderFillflash.display.GraphicsSolidFillflash.display.GraphicsStrokeflash.display.GraphicsTrianglePath
drawPath 描画用の一連のコマンドを送信します。commandsGraphicsPathCommand クラスで定義されているコマンドを表す整数の Vector です。GraphicsPathCommand クラスは、コマンドをこのベクター配列の数値識別子にマッピングします。 dataNumber の Vector で、数値の各ペアは座標位置(x と y のペア)として扱われます。x 座標と y 座標の値のペアは Point オブジェクトではありません。data ベクターは一連の数値であり、2 つの数値からなる各グループは 1 つの座標位置を表します。 windingStringevenOddGraphicsPathWinding クラスで定義されている値を使用して、湾曲規則を指定します。 描画用の一連のコマンドを送信します。 drawPath() メソッドでは、ベクター配列を使用して、個別の moveTo()lineTo()、および curveTo() 描画コマンドを 1 回の呼び出しに統合できます。drawPath() メソッドのパラメーターは、描画コマンドと、x 座標と y 座標の値のペアおよび描画方向の組み合わせです。描画コマンドは、GraphicsPathCommand クラスの値です。x 座標と y 座標の値のペアは配列の Number であり、各ペアによって座標位置が定義されます。描画方向は、GraphicsPathWinding クラスの値です。

一般に、描画では、drawPath() を使用する方が、一連の個別の lineTo() メソッドと curveTo() メソッドを使用するよりもレンダリングが高速です。

drawPath() メソッドでは、浮動小数点の計算を使用するため、シェイプの回転と拡大 / 縮小がより正確で、よりよい結果が得られます。ただし、drawPath() メソッドを使用して送信された曲線は、lineTo() メソッドおよび curveTo() メソッドと組み合わせて使用された場合、小さなサブピクセルの配置誤差が発生することがあります。

drawPath() メソッドは、線の塗りおよび描画に少し異なる規則も使用します。異なる規則を以下に示します。

  • 塗りがパスをレンダリングするのに適用される場合:
    • 3 ポイント未満のサブパスはレンダリングされません(ただし、線のレンダリングは発生し、線に対する規則は以下と同じになります)。
    • 閉じていないサブパス(始まりと終わりの端点が同じでない)は、暗黙的に閉じられます。
  • 線がパスをレンダリングするのに適用される場合:
    • サブパスは、任意の数のポイントで構成できます。
    • サブパスが暗黙的に閉じられることはありません。
次の例では、2 つの Vector オブジェクトを作成し、これを drawPath() メソッドに渡して青い星をレンダリングします。1 つ目の Vector である star_commands には、flash.display.GraphicsPathCommand クラスの描画コマンドを表す一連の整数が格納されています。ここで、値 1 は MoveTo() コマンドであり、値 2 は LineTo() コマンドです。2 つ目の Vector である star_coord には、x 座標と y 座標のペアが 5 組格納されています。drawPath() メソッドは、これらのコマンドを位置と対応させて、星を描画します。 package{ import flash.display.*; public class DrawPathExample extends Sprite { public function DrawPathExample(){ var star_commands:Vector.<int> = new Vector.<int>(5, true); star_commands[0] = 1; star_commands[1] = 2; star_commands[2] = 2; star_commands[3] = 2; star_commands[4] = 2; var star_coord:Vector.<Number> = new Vector.<Number>(10, true); star_coord[0] = 66; //x star_coord[1] = 10; //y star_coord[2] = 23; star_coord[3] = 127; star_coord[4] = 122; star_coord[5] = 50; star_coord[6] = 10; star_coord[7] = 49; star_coord[8] = 109; star_coord[9] = 127; graphics.beginFill(0x003366); graphics.drawPath(star_commands, star_coord); } } } 上記の例では、座標のペアとコマンドをそれぞれ個別に割り当てて配列に位置を表示していますが、単一のステートメントで割り当てることもできます。以下の例では、単一の push() ステートメント内で各配列に値を割り当てることにより、同じ星を描画しています。 package{ import flash.display.*; public class DrawPathExample extends Sprite { public function DrawPathExample(){ var star_commands:Vector.<int> = new Vector.<int>(); star_commands.push(1, 2, 2, 2, 2); var star_coord:Vector.<Number> = new Vector.<Number>(); star_coord.push(66,10, 23,127, 122,50, 10,49, 109,127); graphics.beginFill(0x003366); graphics.drawPath(star_commands, star_coord); } } } 注意:デフォルトでは、drawPath() メソッドは奇数 / 偶数の湾曲タイプを使用します。このため、星の中心は塗りつぶされません。次のように、3 つ目のパラメーターにゼロ以外の湾曲タイプを指定すると、星の中心が塗りつぶされます。 graphics.drawPath(star_commands, star_coord, GraphicsPathWinding.NON_ZERO);
flash.display.GraphicsPathCommandflash.display.GraphicsPathWinding
drawRect 矩形を描画します。width または height パラメーターが数値(Number.NaN)でない場合 ArgumentErrorArgumentErrorxNumber親表示オブジェクトの基準点からの相対的な水平座標を示す数値(ピクセル単位)。 yNumber親表示オブジェクトの基準点からの相対的な垂直座標を示す数値(ピクセル単位)。 widthNumber矩形の幅(ピクセル単位)。 heightNumber矩形の高さ(ピクセル単位)。 角丸矩形を描画します。 矩形を描画します。drawRect() メソッドを呼び出す前に、線のスタイルまたは塗り、あるいはその両方を設定します。そのためには、linestyle()lineGradientStyle()beginFill()beginGradientFill()、または beginBitmapFill() メソッドを呼び出します。 次の例では、ActionScript 3.0 でシェイプを描画する方法を示します。この例は ActionScriptExamples.com で提供されています。 var movieClip:MovieClip = new MovieClip(); movieClip.graphics.beginFill(0xFF0000); movieClip.graphics.drawRect(0, 0, 100, 80); movieClip.graphics.endFill(); movieClip.x = 10; movieClip.y = 10; addChild(movieClip); lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()drawRoundRect()drawRoundRect 角丸矩形を描画します。widthheightellipseWidth、または ellipseHeight パラメーターが数値(Number.NaN)でない場合 ArgumentErrorArgumentErrorxNumber親表示オブジェクトの基準点からの相対的な水平座標を示す数値(ピクセル単位)。 yNumber親表示オブジェクトの基準点からの相対的な垂直座標を示す数値(ピクセル単位)。 widthNumber角丸矩形の幅(ピクセル単位)。 heightNumber角丸矩形の高さ(ピクセル単位)。 ellipseWidthNumber丸角の描画に使用される楕円の幅(ピクセル単位)。 ellipseHeightNumberunknown丸角の描画に使用される楕円の高さ(ピクセル単位)。(オプション)値を指定しない場合は、ellipseWidth パラメーターに指定された値がデフォルトで適用されます。 角丸矩形を描画します。 角丸矩形を描画します。drawRoundRect() メソッドを呼び出す前に、線のスタイルまたは塗り、あるいはその両方を設定します。そのためには、linestyle()lineGradientStyle()beginFill()beginGradientFill()、または beginBitmapFill() メソッドを呼び出します。 このメソッドの使用方法の詳細については、このクラスの末尾のを参照してください。 lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()drawRect()drawTriangles 一連の三角形をレンダリングします。通常は、ビットマップを歪曲させて、3 次元の外観にします。verticesNumber の Vector で、数値の各ペアは座標位置(x と y のペア)として扱われます。vertices パラメーターを指定する必要があります。 indicesnull整数またはインデックスの Vector です。3 つのインデックスごとに三角形が定義されます。indexes パラメーターが null の場合、3 つの頂点(vertices Vector 内の 6 つの x、y ペア)ごとに三角形が定義されます。null でない場合、各インデックスは頂点(vertices Vector 内の数値のペア)を参照します。例えば、indexes[1] は(vertices[2], vertices[3])を参照します。indexes パラメーターはオプションですが、インデックスを使用すると、通常、送信されるデータ量と計算されるデータ量が減少します。 uvtDatanullテクスチャマッピングを適用するために使用される正規化座標の Vector です。各座標は、塗りに使用されるビットマップ上のポイントを参照します。頂点ごとに 1 つの UV 座標または 1 つの UVT 座標が必要です。UV 座標では、(0,0)はビットマップの左上隅で、(1,1)はビットマップの右下隅です。

このベクターの長さが vertices ベクターの 2 倍である場合、外見上の修正を行うことなく、正規化座標が使用されます。

このベクターの長さが vertices ベクターの 3 倍である場合、3 番目の座標は、「t」(視点空間における視点からテクスチャまでの距離)として解釈されます。これにより、3D でテクスチャをマッピングする場合に、レンダリングエンジンが外観を正しく適用できるようになります。

uvtData パラメーターが null の場合、通常の塗り規則(およびいずれかの塗りタイプ)が適用されます。

cullingStringnone特定の方向に面する三角形をレンダリングするかどうかを指定します。このパラメーターは、現在のビューで見えない三角形のレンダリングを避けるのに使用します。このパラメーターは、TriangleCulling クラスで定義された任意の値に設定できます。
一連の三角形をレンダリングします。通常は、ビットマップを歪曲させて、3 次元の外観にします。drawTriangles() メソッドは、(u,v) 座標を使用して現在の塗りまたはビットマップ塗りを三角形の各面にマッピングします。

どのタイプの塗りでも使用できます。ただし、その塗りに変換マトリックスがある場合でも、その変換マトリックスは無視されます。

ビットマップ塗りを使用する場合、uvtData パラメーターを使用すると、テクスチャマッピングを改善できます。

flash.display.TriangleCullingflash.display.GraphicsTrianglePath
endFill beginFill()、beginGradientFill()、または beginBitmapFill() メソッドへの最後の呼び出し以降に追加された線と曲線に塗りを適用します。線と曲線に塗りを適用します。 beginFill()beginGradientFill()、または beginBitmapFill() メソッドへの最後の呼び出し以降に追加された線と曲線に塗りを適用します。適用される塗りは、beginFill()beginGradientFill()、または beginBitmapFill() メソッドの前回の呼び出しで指定されたものです。現在の描画位置が moveTo() メソッドの直前の呼び出しで指定された座標と等しくない場合、塗りが定義されていれば、パスが線で閉じられた後、塗りが適用されます。 beginFill()beginBitmapFill()beginGradientFill()lineBitmapStyle 線の描画で、線として使用するビットマップを指定します。bitmapflash.display:BitmapData線を描画するときに使用するビットマップです。 matrixflash.geom:Matrixnullflash.geom.Matrix クラスで定義されるオプションの変換マトリックスです。マトリックスを使用して拡大 / 縮小できます。または、線スタイルに適用する前にビットマップを操作します。 repeatBooleantrueビットマップをタイル状に繰り返すかどうか。 smoothBooleanfalseビットマップにスムージングを適用するかどうか。 線の描画で、線として使用するビットマップを指定します。

ビットマップ線スタイルは、lineTo() メソッドや drawCircle() メソッドなど、Graphics のメソッドの後続の呼び出しに使用されます。線のスタイルは、lineStyle() メソッド、lineGradientStyle() メソッド、または lineBitmapStyle() メソッドを再度異なるパラメーターで呼び出すまで有効です。

パスの描画中に lineBitmapStyle() メソッドを呼び出し、パス内の線のセグメントごとに異なるスタイルを指定できます。

線を有効にするには、先に lineStyle() メソッドを呼び出してから lineBitmapStyle() メソッドを呼び出します。そうでないと、線スタイルの値は undefined になります。

clear() メソッドを呼び出すと、線スタイルの設定が undefined に戻ります。

lineStyle()lineGradientStyle()flash.geom.Matrix
lineGradientStyle 線の描画で使用するグラデーションを指定します。typeString使用するグラデーションのタイプを指定する GradientType クラスの値は、GradientType.LINEAR または GradientType.RADIAL のいずれかです。 colorsArrayグラデーションで使用する RGB 16 進カラー値の配列(赤 0xFF0000、青 0x0000FF など)。 alphasArraycolors 配列内の各色に対応するアルファ値の配列。有効な値は 0 ~ 1 です。0 未満の値の場合は、デフォルトで 0 が適用されます。1 より大きい値の場合は、デフォルトで 1 が適用されます。 ratiosArray色分布比率の配列です。0 ~ 255 の範囲の値を指定できます。この値は、100% でサンプリングされる色の幅の割合をパーセントで定義します。値 0 はグラデーションボックスの左の位置を表し、255 はグラデーションボックスの右の位置を表します。この値は、グラデーションボックス内の位置を表すもので、最終グラデーションの座標空間を表すものではありません。最終グラデーションは、グラデーションボックスより広くなったり狭くなったりする場合があります。colors パラメーターの値ごとに、値を指定してください。

例えば、青と緑の 2 色を含む線状グラデーションの場合、次の図は、ratios 配列のさまざまな値に基づいて配置される色を示します。

ratiosグラデーション[0, 127][0, 255][127, 255]

配列内の値は、[0, 63, 127, 190, 255] のように順に増やしていく必要があります。

matrixflash.geom:Matrixnullflash.geom.Matrix クラスで定義される変換マトリックスです。flash.geom.Matrix クラスには、createGradientBox() メソッドがあります。このメソッドを使用すると、lineGradientStyle() メソッドで使用できるマトリックスを容易に設定できます。 spreadMethodStringpad使用する spread メソッドを指定する SpreadMethod クラスの値は、次のとおりです。

SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT

interpolationMethodStringrgb使用する値を指定する InterpolationMethod クラスの値です。 例えば、2 つの色の間に、spreadMethod パラメーターが SpreadMethod.REFLECT に設定されたシンプルな線状グラデーションがあるとします。それぞれの補間方法で、外観に次のような影響があります。

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB

focalPointRatioNumber0グラデーションの焦点の位置を制御する数値です。0 は焦点が中央にあること、1 は焦点がグラデーション円のいずれかの境界にあること、-1 は焦点がグラデーション円のもう一方の境界にあることを示します。-1 未満の値は -1 に、1 より大きい値は 1 に丸められます。次のイメージは、focalPointRatio を -0.75 に設定したグラデーションを示しています。

線の描画で使用するグラデーションを指定します。

lineTo() メソッドや drawCircle() メソッドなど、Graphics のメソッドの後続の呼び出しにはグラデーション線スタイルが使用されます。線のスタイルは、lineStyle() メソッド、lineBitmapStyle() メソッド、または lineGradientStyle() メソッドを再度別のパラメーターで呼び出すまで有効のままです。

パスの描画中に lineGradientStyle() メソッドを呼び出し、パス内の線のセグメントごとに異なるスタイルを指定できます。

線を有効にするには、先に lineStyle() メソッドを呼び出してから lineGradientStyle() メソッドを呼び出します。そうでないと、線スタイルの値は undefined になります。

clear() メソッドを呼び出すと、線スタイルの設定が undefined に戻ります。

次の例では、赤から緑、青へのグラデーションの境界線を使用する矩形と円を描画します。

Matrix クラスの createGradientBox() メソッドを使用して、グラデーションボックスが幅 200、高さ 40 に定義されます。線の太さは 5 ピクセルに設定されます。境界線の太さを、lineGradientStyle() メソッドに対して定義する必要があります。グラデーションは線状に設定されます。グラデーションの色は赤、緑、および青に設定されます。色の透明度(アルファ値)は 1(不透明)に設定されます。グラデーションの分布は均等です。つまり、値 0(グラデーションボックスの左の位置)、128(ボックスの中央の位置)、255(ボックスの右の位置)の各位置で 100% で色がサンプリングされます。矩形の幅はグラデーションのすべての領域を包含します。一方、円は領域の中央から 50% を包含します。

package { import flash.display.Sprite; import flash.display.Shape; import flash.geom.Matrix; import flash.display.GradientType; public class Graphics_lineGradientStyleExample extends Sprite { public function Graphics_lineGradientStyleExample() { var myShape:Shape = new Shape(); var gradientBoxMatrix:Matrix = new Matrix(); gradientBoxMatrix.createGradientBox(200, 40, 0, 0, 0); myShape.graphics.lineStyle(5); myShape.graphics.lineGradientStyle(GradientType.LINEAR, [0xFF0000, 0x00FF00, 0x0000FF], [1, 1, 1], [0, 128, 255], gradientBoxMatrix); myShape.graphics.drawRect(0, 0, 200, 40); myShape.graphics.drawCircle(100, 120, 50); this.addChild(myShape); } } }
lineStyle()lineBitmapStyle()flash.geom.Matrix.createGradientBox()flash.display.GradientTypeflash.display.SpreadMethod
lineShaderStyle 線の描画で、線として使用するシェーダーを指定します。shaderflash.display:Shader線を描画するときに使用するシェーダーです。 matrixflash.geom:Matrixnullflash.geom.Matrix クラスで定義されるオプションの変換マトリックスです。マトリックスを使用して拡大 / 縮小できます。または、線スタイルに適用する前にビットマップを操作します。 線の描画で、線として使用するシェーダーを指定します。

ビットマップ線スタイルは、lineTo() メソッドや drawCircle() メソッドなど、Graphics のメソッドの後続の呼び出しに使用されます。線のスタイルは、lineStyle() メソッド、lineGradientStyle() メソッド、または lineBitmapStyle() メソッドを再度異なるパラメーターで呼び出すまで有効です。

パスの描画中に lineShaderStyle() メソッドを呼び出し、パス内の線のセグメントごとに異なるスタイルを指定できます。

線を有効にするには、先に lineStyle() メソッドを呼び出してから lineShaderStyle() メソッドを呼び出します。そうでないと、線スタイルの値は undefined になります。

clear() メソッドを呼び出すと、線スタイルの設定が undefined に戻ります。

lineStyle()lineBitmapStyle()flash.geom.Matrix
lineStyle lineTo() メソッドや drawCircle() メソッドなど、Graphics のメソッドの後続の呼び出しに使用する線スタイルを指定します。thicknessNumberunknown線の太さをポイント単位で示す整数。有効な値は 0 ~ 255 です。パラメーターが undefined である場合は、線は描画されません。0 未満の値を指定した場合は、デフォルトで 0 が適用されます。0 は極細線です。最大の太さは 255 です。255 を超える値を指定した場合は、デフォルトで 255 が適用されます。 coloruint0線の色を表す 16 進値。例えば、赤は 0xFF0000、青は 0x0000FF で表します。値を指定しない場合は、デフォルトで 0x000000(黒)が適用されます。オプション。 alphaNumber1.0線の色のアルファ値を示す数値。有効な値は 0 ~ 1 です。値を指定しない場合は、デフォルトで 1(ソリッド)が適用されます。0 未満の値を指定した場合、デフォルトで 0 が適用されます。1 より大きい値を指定した場合、デフォルトで 1 が適用されます。 pixelHintingBooleanfalse(Flash Lite 4 ではサポートされません)ピクセル全体に対して線をヒンティングするかどうかを指定するブール値。この値は、曲線のアンカーの位置と線のサイズ自身の両方に影響を与えます。pixelHintingtrue に設定すると、線幅が全ピクセル幅に調整されます。 pixelHintingfalse に設定すると、曲線と直線で非連続が発生することがあります。例えば、次の図は、Flash Player または Adobe AIR で、pixelHinting パラメーター(lineStyle() メソッドで使用)の設定が異なるだけで他はまったく同じ 2 つの角丸矩形がどのようにレンダリングされるかを示したものです(違いが分かるようにイメージは 200% に拡大されています)。

値を指定しない場合、線でピクセルのヒンティングが使用されません。

scaleModeStringnormal(Flash Lite 4 ではサポートされません)使用する拡大・縮小モードを指定する LineScaleMode クラスの値です。
  • LineScaleMode.NORMAL — オブジェクトが拡大 / 縮小される場合、常に線の太さが拡大 / 縮小されます(デフォルト)。
  • LineScaleMode.NONE — 線の太さを拡大 / 縮小しません。
  • LineScaleMode.VERTICAL — オブジェクトを垂直方向にのみ拡大 / 縮小する場合は、線の太さを拡大 / 縮小しません。例えば、次に示す各円は、1 ピクセルの線で描画され、それぞれ scaleMode パラメーターが LineScaleMode.VERTICAL に設定されているとします。左側の円は垂直方向にのみ拡大または縮小され、右側の円は垂直と水平の両方向に拡大または縮小されたものです。

  • LineScaleMode.HORIZONTAL — オブジェクトを水平方向にのみ拡大 / 縮小する場合は、線の太さを拡大 / 縮小しません。例えば、次に示す各円は、1 ピクセルの線で描画され、それぞれ scaleMode パラメーターが LineScaleMode.HORIZONTAL に設定されているとします。左側の円は水平方向にのみ拡大または縮小され、右側の円は垂直と水平の両方向に拡大または縮小されたものです。

capsStringnull(Flash Lite 4 ではサポートされません)線の終端のキャップの種類を指定する CapsStyle クラスの値です。有効な値は次のとおりです。CapsStyle.NONECapsStyle.ROUND、および CapsStyle.SQUARE。この値を指定しない場合は、丸いキャップが使用されます。

例えば、次の図は capsStyle のさまざまな設定を示します。それぞれの設定で、図の青い線は太さ 30 で、capsStyle が適用されています。重ね合わせた黒い線は太さ 1 で、capsStyle は適用されていません。

jointsStringnull(Flash Lite 4 ではサポートされません)角で使用する接合点の外観の種類を指定する JointStyle クラスの値です。有効な値は次のとおりです。JointStyle.BEVELJointStyle.MITER、および JointStyle.ROUND。この値を指定しないと、角丸("round")の接合点が使用されます。

例えば、次の図は joints のさまざまな設定を示します。それぞれの設定で、角のある青い線は太さ 30 で、jointStyle が適用されています。重ね合わせた黒い線は太さ 1 で、jointStyle は適用されていません。

注意:jointsJointStyle.MITER に設定すると、miterLimit パラメーターを使用して、マイターの長さを制限できます。

miterLimitNumber3(Flash Lite 4 ではサポートされません)マイターが切り取られる限度を示す数値です。有効な値の範囲は 1 ~ 255 で、この範囲を超えた値は 1 または 255 に丸められます。この値は、jointStyle"miter" に設定した場合にのみ有効です。miterLimit の値により、線の接合点を越えてマイターを延長できる長さが決定します。マイターを延長できる長さは、この値と線の thickness が乗算されたものです。例えば、miterLimit の値が 2.5 で、thickness が 10 ピクセルの場合、マイターは 25 ピクセルで切り取られます。

例として、次のような角のある線を考えます。どの線も thickness を 20 に設定して描画されていますが、miterLimit はそれぞれ 1、2、4 に設定されています。重ね合わされた黒の基準線は、接合点を示しています。

miterLimit のそれぞれの値には、マイターが切り取られる独自の最大角度があります。次の表に、いくつかの例を示します。

miterLimit の値:角度が以下より小さい場合は切り取られる1.41490 度260 度430 度815 度
線の描画に使用する線のスタイルを指定します。
lineTo() メソッドや drawCircle() メソッドなど、Graphics のメソッドの後続の呼び出しに使用する線スタイルを指定します。線のスタイルは、lineGradientStyle() メソッド、lineBitmapStyle() メソッド、または lineStyle() メソッドを再度別のパラメーターで呼び出すまで有効のままです。

パスの描画中に lineStyle() メソッドを呼び出し、パス内の線のセグメントごとに異なるスタイルを指定できます。

注意:clear() メソッドを呼び出すと、線のスタイルが undefined に戻ります。

注意:Flash Lite 4 では、最初の 3 つのパラメーター(thicknesscolor および alpha)のみがサポートされます。

lineTo() または moveTo() メソッドの例を参照して、getStyle() メソッドの使用方法を確認してください。
lineBitmapStyle()lineGradientStyle()LineScaleModeCapsStyleJointStyle
lineTo 現在の描画位置から (x, y) まで、現在の線のスタイルを使用して線を描画します。その後で、現在の描画位置は (x, y) に設定されます。xNumber親表示オブジェクトの基準点からの相対的な水平座標を示す数値(ピクセル単位)。 yNumber親表示オブジェクトの基準点からの相対的な垂直座標を示す数値(ピクセル単位)。 現在の描画位置から (x, y) 地点まで線を描画します。 現在の描画位置から (x, y) まで、現在の線のスタイルを使用して線を描画します。その後で、現在の描画位置は (x , y) に設定されます。描画先の表示オブジェクトに Flash の描画ツールで作成したコンテンツが含まれている場合、lineTo() メソッドへの呼び出しの結果はこのコンテンツの下に描画されます。lineTo() を呼び出してから moveTo() メソッドを呼び出すと、現在の描画位置はデフォルトで (0,0) になります。いずれかのパラメーターを省略すると、このメソッドは失敗し、現在の描画位置は変更されません。 次の例では、lineTo() メソッドを使用して、ピクセル (100, 100) で始まる台形を描画します。

線の太さが 10 ピクセル、色が金色で不透明、線の先端のキャップがなし(すべての線が結合されるため)に設定され、線の継ぎ目はマイター限度が 10、尖った鋭角の MITER に設定されます。

package { import flash.display.Sprite; import flash.display.LineScaleMode; import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.Shape; public class Graphics_lineToExample extends Sprite { public function Graphics_lineToExample() { var trapezoid:Shape = new Shape(); trapezoid.graphics.lineStyle(10, 0xFFD700, 1, false, LineScaleMode.VERTICAL, CapsStyle.NONE, JointStyle.MITER, 10); trapezoid.graphics.moveTo(100, 100); trapezoid.graphics.lineTo(120, 50); trapezoid.graphics.lineTo(200, 50); trapezoid.graphics.lineTo(220, 100); trapezoid.graphics.lineTo(100, 100); this.addChild(trapezoid); } } }
moveTo 現在の描画位置を (x, y) に移動します。xNumber親表示オブジェクトの基準点からの相対的な水平座標を示す数値(ピクセル単位)。 yNumber親表示オブジェクトの基準点からの相対的な垂直座標を示す数値(ピクセル単位)。 現在の描画位置を (x, y) に移動します。 現在の描画位置を (x, y) に移動します。いずれかのパラメーターを省略すると、このメソッドは失敗し、現在の描画位置は変更されません。 次の例では、moveTo() メソッドおよび lineTo() メソッドを使用して、3 ピクセルの太さの破線を描画します。

lineStyle() メソッドを使用して、線の太さが 3 ピクセルに設定されます。また、拡大 / 縮小しないよう設定されます。透明度が 25% の赤に色が設定されます。CapsStyle プロパティは四角形に設定されます(デフォルトは円形)。

Graphics_moveToExampleSprite クラスのインスタンスであるため、すべての Graphics クラスのメソッドへのアクセス権があります。Graphics クラスのメソッドを使用して、Graphic_moveToExample Sprite オブジェクト上に直接描画できます。ただし、Shape にベクター描画オブジェクトを配置しないと、管理、移動、または変更できる方法が制限されます。

package { import flash.display.Sprite; import flash.display.CapsStyle; import flash.display.LineScaleMode; public class Graphics_moveToExample extends Sprite { public function Graphics_moveToExample() { graphics.lineStyle(3, 0x990000, 0.25, false, LineScaleMode.NONE, CapsStyle.SQUARE); graphics.moveTo(10, 20); graphics.lineTo(20, 20); graphics.moveTo(30, 20); graphics.lineTo(50, 20); graphics.moveTo(60, 20); graphics.lineTo(80, 20); graphics.moveTo(90, 20); graphics.lineTo(110, 20); graphics.moveTo(120, 20); graphics.lineTo(130, 20); } } }
NativeWindowType NativeWindowType クラスは、ネイティブウィンドウを作成するために使用される NativeWindowInitOptions オブジェクトの type プロパティの定数を定義します。サポートされているウィンドウタイプの定数を定義します。 Object NativeWindowType クラスは、ネイティブウィンドウを作成するために使用される NativeWindowInitOptions オブジェクトの type プロパティの定数を定義します。

注意:type 値は、ウィンドウが作成されて変更できないときに指定されます。

flash.display.NativeWindowflash.display.NativeWindowInitOptionsLIGHTWEIGHT 最小ウィンドウです。lightweightString 最小ウィンドウです。 NORMAL 一般的なウィンドウです。normalString 一般的なウィンドウです。 UTILITY ユーティリティウィンドウです。utilityString ユーティリティウィンドウです。
StageAspectRatio StageAspectRatio クラスは、Stage.setAspectRatio() メソッドの値を提供します。Object StageAspectRatio クラスは、Stage.setAspectRatio() メソッドの値を提供します。 flash.display.Stage.setAspectRatio()LANDSCAPE 横向き UI を表示するデバイスの方向を指定します。 landscapeString 横向き UI を表示するデバイスの方向を指定します。 PORTRAIT 縦向き UI を表示するデバイスの方向を指定します。 portraitString 縦向き UI を表示するデバイスの方向を指定します。 Screen Screen クラスは、このアプリケーションで使用可能な表示画面に関する情報を提供します。flash.events:EventDispatcher Screen クラスは、このアプリケーションで使用可能な表示画面に関する情報を提供します。

画面は、それよりも大きい可能性のある「仮想デスクトップ」内の独立したデスクトップ領域です。この仮想デスクトップの起点はオペレーティングシステムで設計されたメイン画面の左上隅になります。そのため、各表示画面の境界の座標は、負の値になる場合があります。また、どの表示画面の範囲にも含まれない仮想デスクトップの領域が存在する場合もあります。

Screen クラスには、利用可能な画面オブジェクトにアクセスするための静的なクラスメンバーと、個別の画面のプロパティにアクセスするためのインスタンスメンバーが用意されています。画面情報は、ユーザーによって常に変更される可能性があるので、キャッシュされません。

画面と、コンピューターに接続されている実際のモニターとの間には 1 対 1 の対応は必要ありません。例えば、2 つのモニターが同一の画面を表示することもあります。

Screen クラスを直接インスタンス化することはできません。new Screen() コンストラクターを呼び出すと、ArgumentError 例外がスローされます。

次の例では、DockingWindow クラスを使用して、画面の側面にドッキングするウィンドウを定義します。これを行うには、以下の手順を実行します。
  1. キーボードイベントに応答して、ドッキングする画面の側面を決定します。
  2. 静的な Screen クラスのメソッド getScreensForRectangle() にアクセスして、ウィンドウが現在表示されている画面の Screen オブジェクトを取得します。
  3. 画面のサイズに基づいて、ウィンドウの境界をリセットします。
  4. 新しいウィンドウのサイズに基づいて、ウィンドウのコンテンツを再描画します。

このクラスは、SystemChrome="none" および transparent="true" の設定を持つ AIR アプリケーションのルートクラスとして使用することを目的としていることに注意してください。 システムクロムを使用するウィンドウでこのクラスを使用するには、ウィンドウの位置とサイズを計算するときに、クロムの幅とウィンドウの最小幅を考慮する必要があります。

package { import flash.display.Screen; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.KeyboardEvent; import flash.geom.Rectangle; import flash.ui.Keyboard; public class DockingWindow extends Sprite { private const dockedWidth:uint = 80; private const dockedHeight:uint = 80; public function DockingWindow():void{ stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey); dockLeft(); } private function onKey(event:KeyboardEvent):void{ switch(event.keyCode){ case Keyboard.LEFT : dockLeft(); break; case Keyboard.RIGHT : dockRight(); break; case Keyboard.UP : dockTop(); break; case Keyboard.DOWN : dockBottom(); break; case Keyboard.SPACE : stage.nativeWindow.close(); } } public function dockLeft():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.height = screen.visibleBounds.height; stage.stageWidth = dockedWidth; drawContent(); } public function dockRight():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.width - dockedWidth; stage.nativeWindow.y = screen.visibleBounds.top; stage.stageWidth = dockedWidth; stage.nativeWindow.height = screen.visibleBounds.height; drawContent(); } public function dockTop():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } public function dockBottom():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.height - dockedHeight; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } private function getCurrentScreen():Screen{ return Screen.getScreensForRectangle(stage.nativeWindow.bounds)[0]; } private function drawContent():void{ const size:int = 60; const pad:int = 10; var numHSquares:int = Math.floor(stage.stageWidth/(size + pad)); var numVSquares:int = Math.floor(stage.stageHeight/(size + pad)); with (graphics){ clear(); lineStyle(1); beginFill(0x3462d5,.7); for(var i:int = 0; i < numHSquares; i++){ for(var j:int = 0; j < numVSquares; j++){ drawRect((i * (size + pad)) + pad, (j * (size + pad)) + pad, size, size); } } endFill(); } } } }
getScreensForRectangle 指定された矩形と交差する画面のセット(空の場合もあります)を返します。rect パラメーターで定義されている領域の一部を含む画面が含まれている Screen オブジェクトの配列です。 Arrayrectflash.geom:Rectangle仮想デスクトップの起点(主画面の左上隅)を基準とした座標を持つ矩形です。 指定された矩形と交差する画面のセット(空の場合もあります)を返します。 次の例は、少なくとも指定された矩形の一部を含む画面の配列を取得する方法を示したものです。 import flash.display.Screen; import flash.geom.Rectangle; var rect:Rectangle = new Rectangle(-200, 100, 1000, 600); var intersectedScreens:Array = Screen.getScreensForRectangle(rect); bounds この画面の境界です。flash.geom:Rectangle この画面の境界です。

画面の位置は、仮想デスクトップを基準としています。

特定のウィンドウマネージャーを使用している Linux システムでは、このプロパティは、表示画面の境界ではなく、デスクトップ画面の境界を返します。

次の例は、画面の境界(ここでは主表示画面)を取得する方法を示したものです。 import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.bounds;
colorDepth ビット数で表した、この画面の色深度です。int ビット数で表した、この画面の色深度です。 次の例は、画面の色深度 (ここでは主表示画面) を取得する方法を示したものです。 var mainScreen:Screen = Screen.mainScreen; var colors:uint = mainScreen.colorDepth; mainScreen 主表示です。flash.display:Screen 主表示です。 次の例は、このコンピューターの [メイン] 画面を表す Screen オブジェクトを取得する方法を示したものです。 var primaryScreen:Screen = Screen.mainScreen; screens 現在使用可能な画面の配列です。Array 現在使用可能な画面の配列です。

返された配列を変更しても、使用可能な画面には影響しません。

次の例は、使用可能な画面を含む配列を取得する方法を示したものです。 var screenArray:Array = Screen.screens;
visibleBounds この画面上にウィンドウを表示できる領域の境界です。flash.geom:Rectangle この画面上にウィンドウを表示できる領域の境界です。

画面の visibleBounds は、Windows の場合はタスクバー(およびその他のドッキングデスクバー)を除いた領域、Mac OS X の場合はメニューバーと、システムの設定によってはドックを除いた領域です。Linux の場合、構成によっては表示境界を特定できないことがあります。その場合、visibleBounds プロパティは screenBounds プロパティと同じ値を返します。

次の例は、使用可能な画面の境界(ここでは主表示画面)を取得する方法を示したものです。 import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.visibleBounds;
NativeWindowDisplayState NativeWindowDisplayState クラスは、ウィンドウ表示状態の名前の定数を定義します。Object NativeWindowDisplayState クラスは、ウィンドウ表示状態の名前の定数を定義します。

注意: フルスクリーンモードは Stage オブジェクトの displayState プロパティを使用して設定されます。ウィンドウの displaySate ではありません。

flash.display.Stage.displayStateflash.display.StageDisplayStateMAXIMIZED 最大化された表示状態です。maximizedString 最大化された表示状態です。 MINIMIZED 最小化された表示状態です。minimizedString 最小化された表示状態です。 NORMAL 通常の表示状態です。normalString 通常の表示状態です。
Bitmap Bitmap クラスはビットマップイメージを表す表示オブジェクトを表します。イメージが派生する表示オブジェクトを表します。 flash.display:DisplayObject Bitmap クラスはビットマップイメージを表す表示オブジェクトを表します。これらは flash.display.Loader クラスによってロードするイメージか、Bitmap() コンストラクターによって作成するイメージです。

Bitmap() コンストラクターを使用すると、BitmapData オブジェクトへの参照を含んだビットマップオブジェクトを作成できます。ビットマップオブジェクトの作成後、親 DisplayObjectContainer インスタンスの addChild() メソッドまたは addChildAt() メソッドを使用して表示リスト上にビットマップを配置できます。

Bitmap オブジェクトの BitmapData への参照は、translation プロパティまたは rotation プロパティと関係なく、複数の Bitmap オブジェクトで共有できます。作成した複数のビットマップオブジェクトで同じ BitmapData オブジェクトを参照することができるため、各表示オブジェクトインスタンスに関する BitmapData オブジェクトのメモリのオーバーヘッドを避けつつ、複数の表示オブジェクトで同一の複雑な BitmapData オブジェクトを使用することができます。

Bitmap オブジェクトを使用して BitmapData オブジェクトを画面に描画するには、ベクターレンダラーをビットマップ塗りつぶしのシェイプとして使用するか、高速なピクセルコピールーチンを使用します。ピクセルコピールーチンはベクターレンダラーよりも高速ですが、使用する際には、ビットマップオブジェクトに以下の特定の条件が適用されます。

  • ビットマップオブジェクトには、伸縮、回転、傾斜は適用されません。
  • ビットマップオブジェクトにはカラー変換は適用されません。
  • ビットマップオブジェクトにはブレンドモードは適用されません。
  • マスクレイヤーまたは setMask() メソッドでクリッピングは行われません。
  • イメージ自体はマスクできません。
  • 宛先の座標は全体がピクセル境界内になければなりません。

ロードする Bitmap オブジェクトの置かれているドメインが、イメージのロードに使用する Loader オブジェクトのドメインと異なる場合は、Loader オブジェクトのドメインへのアクセスを許可する URL ポリシーファイルが用意されていないと、そのドメイン内のスクリプトは Bitmap オブジェクトやそのプロパティとメソッドにアクセスできません。詳細については、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

注意:Bitmap クラスは InteractiveObject クラスのサブクラスではないため、マウスイベントを送出できません。しかし、ビットマップオブジェクトを格納した表示オブジェクトコンテナの addEventListener() メソッドを使用できます。

次の例では、BitmapExample クラスを使用して、"Image.gif" イメージをデフォルトの位置(x = 0、y = 0)にある DisplayObject にロードします。"Image.gif" のコピーを下のイメージの右に配置します。このコピーでは、threshold() メソッドを使用するテストに合格したピクセルに新しい色が適用されています。これを行うには、以下の手順を実行します。
  1. プロパティ url を作成します。これはイメージファイルの場所と名前です。
  2. クラスコンストラクターが configureAssets() メソッドを呼び出します。続いて、このメソッドでは completeHandler() メソッドを呼び出します。
  3. configureAssets() が Loader オブジェクトを作成します。これは、completeHandler() がイメージ操作を完了したときに送出されるイベントリスナーをインスタンス化します。
  4. 次に、buildChild() が URLRequest オブジェクト request の新しいインスタンスを作成しますが、その前に、ファイル名と場所が分かるように url を渡します。
  5. request オブジェクトが loader.load() メソッドに渡されます。このメソッドは、イメージを表示オブジェクト経由でメモリにロードします。
  6. 次にイメージが表示リストに配置され、イメージは直ちに画面の座標 x = 0、y = 0 に表示されます。
  7. 続いて、completeHandler() メソッドで、次の処理が実行されます。
    1. 2 番目の Loader オブジェクトと Bitmap オブジェクトを作成します。Bitmap オブジェクトは、この Loader オブジェクトで
    2. 2 番目の Bitmap オブジェクトである duplicate を作成します。これは、duplicateImage() メソッドを呼び出し、元のイメージを複製します。
    3. BitmapData オブジェクトを作成します。これは、duplicate オブジェクトの BitmapData オブジェクトに割り当てられます。
    4. 元のイメージと同じ座標、幅、高さで初期化された新しい Rectangle オブジェクトを作成します。
    5. 新しい Point オブジェクトを作成します。デフォルトでは x = 0、y = 0 に作成されます。
    6. 次に示す変数を作成します。
      • operation:しきい値が元の値以上である場合に、新しい色を適用します。
      • threshold:各ピクセルの比較対象の値です。アルファ 0xCC の明るい灰色に設定されます。
      • color:しきい値のテストに合格したピクセルに設定する色です。この場合は黄色です。
      • mask:正反対の色に設定します。この場合は透明色の青色です。
      • copySource:false に設定されます。これは、しきい値を満たさなかった場合にピクセル値がコピーされないことを示します。しきい値のテストに合格したピクセルだけが変更されるため、この値に意味はありません。
    7. 上記の変数を使用して threshold() メソッドを呼び出します。結果のしきい値の等式は、if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00 のようになります。

注意:

  • 「ローカルでの再生に関するセキュリティ」を「ローカルファイルにのみアクセスする」に設定して SWF ファイルをコンパイルする必要があります。
  • この例では、"Image.gif" という名前のファイルが SWF ファイルと同じディレクトリに配置されている必要があります。
  • イメージは、幅が 80 ピクセル以内のものを使用することをお勧めします。

package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.Loaderflash.display.BitmapDataBitmap 指定された BitmapData オブジェクトを参照するようにビットマップオブジェクトを初期化します。bitmapDataflash.display:BitmapDatanullBitmapData オブジェクトが参照されます。 pixelSnappingStringautoビットマップオブジェクトが最も近いピクセルに吸着されるかどうかを示します。 smoothingBooleanfalseビットマップを拡大 / 縮小するときにスムージングするかどうかを示します。例えば、次の例は同じビットマップを 3 倍に拡大した場合に、smoothingfalse に設定したもの(左)と true に設定したもの(右)です。

指定された BitmapData オブジェクトを参照するようにビットマップオブジェクトを初期化します。 次の例では、ActionScript 3.0 の Loader クラスを使用して、実行時にイメージを動的にロードしてから、Loader インスタンスの content プロパティと bitmapData プロパティを使用して、表示リストにある 4 つの個別 Bitmap オブジェクトインスタンスにイメージのピクセルをコピーする方法を示します。ActionScriptExamples.com で作成された例。 const IMAGE_URL:String = "http://www.helpexamples.com/flash/images/logo.png"; var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete); ldr.load(new URLRequest(IMAGE_URL)); var bitmap1:Bitmap; var bitmap2:Bitmap; var bitmap3:Bitmap; var bitmap4:Bitmap; function ldr_complete(evt:Event):void { var bmp:Bitmap = ldr.content as Bitmap; bitmap1 = new Bitmap(bmp.bitmapData); bitmap1.x = 100; bitmap1.y = 100; bitmap1.rotation = 0; addChild(bitmap1); bitmap2 = new Bitmap(bmp.bitmapData); bitmap2.x = 200; bitmap2.y = 100; bitmap2.rotation = 90; addChild(bitmap2); bitmap3 = new Bitmap(bmp.bitmapData); bitmap3.x = 300; bitmap3.y = 100; bitmap3.rotation = 180; addChild(bitmap3); bitmap4 = new Bitmap(bmp.bitmapData); bitmap4.x = 400; bitmap4.y = 100; bitmap4.rotation = 270; addChild(bitmap4); }
bitmapData BitmapData オブジェクトが参照されます。flash.display:BitmapData BitmapData オブジェクトが参照されます。 pixelSnapping Bitmap オブジェクトが最も近いピクセルに吸着されるかどうかを指定します。String Bitmap オブジェクトが最も近いピクセルに吸着されるかどうかを指定します。PixelSnapping クラスには正の値が入ります。
  • PixelSnapping.NEVER — ピクセルは吸着されません。
  • PixelSnapping.ALWAYS — イメージは、変換とは関係なく常に最も近いピクセルに吸着されます。
  • PixelSnapping.AUTO — イメージが回転または傾斜なしで描画され、しかも 99.9% ~ 100.1% の倍率で描画される場合、イメージは最も近いピクセルに吸着されます。これらの条件が満たされる場合、ビットマップイメージは 100% の倍率で描画され、最も近いピクセルに吸着されます。内部的には、この値によって、ベクターレンダラーを使ってイメージが可能な限り高速に描画されます。
smoothing ビットマップを拡大 / 縮小するときにスムージングするかどうかを指定します。Boolean ビットマップを拡大 / 縮小するときにスムージングするかどうかを指定します。true である場合、ビットマップは拡大 / 縮小時にスムージングされます。false である場合、ビットマップは拡大 / 縮小時にスムージングされません。
Scene Scene クラスには、シーン内のフレームの名前、ラベル、数を識別できるプロパティがあります。Object Scene クラスには、シーン内のフレームの名前、ラベル、数を識別できるプロパティがあります。Scene オブジェクトインスタンスは Flash Professional で作成します。ActionScript コードでは記述しません。MovieClip クラスの currentScene プロパティは、MovieClip インスタンスのタイムライン内の再生ヘッドが置かれているシーンを識別する Scene オブジェクトです。MovieClip クラスの scenes プロパティは、Scene オブジェクトの配列です。また、MovieClip クラスの gotoAndPlay() および gotoAndStop() メソッドは、Scene オブジェクトをパラメーターとして使用します。 MovieClip.currentSceneMovieClip.scenesMovieClip.gotoAndPlay()MovieClip.gotoAndStop()labels シーンの FrameLabel オブジェクトの配列です。Array シーンの FrameLabel オブジェクトの配列です。各 FrameLabel オブジェクトには、ラベルに対応するフレーム数を指定する frame プロパティ、および name プロパティがあります。 FrameLabelname シーン名です。String シーン名です。 numFrames シーン内のフレームの数です。int シーン内のフレームの数です。 StageDisplayState StageDisplayState クラスは、Stage.displayState プロパティの値を提供します。Object StageDisplayState クラスは、Stage.displayState プロパティの値を提供します。 flash.display.Stage.displayStateFULL_SCREEN_INTERACTIVE ステージがフルスクリーンモードで、キーボード操作が有効であることを指定します。fullScreenInteractiveString ステージがフルスクリーンモードで、キーボード操作が有効であることを指定します。AIR アプリケーションだけが、この機能をサポートしています。 FULL_SCREEN ステージがフルスクリーンモードであることを指定します。fullScreenString ステージがフルスクリーンモードであることを指定します。このモードでは、キーボード操作は無効になります。 NORMAL ステージが標準モードであることを指定します。normalString ステージが標準モードであることを指定します。 ShaderData ShaderData オブジェクトには、シェーダーカーネルのパラメーターと入力を表すプロパティ、シェーダーに指定されたメタデータを含むプロパティがあります。Object ShaderData オブジェクトには、シェーダーカーネルのパラメーターと入力を表すプロパティ、シェーダーに指定されたメタデータを含むプロパティがあります。

これらのプロパティは、ShaderData オブジェクトの作成時に追加されます。プロパティ名はシェーダーのソースコードで指定された名前と一致します。各プロパティのデータ型は、そのプロパティがシェーダーの何を表すかによって異なります。それぞれのデータ型に対応して、シェーダーパラメーターを表すプロパティは ShaderParameter インスタンス、入力イメージを表すプロパティは ShaderInput インスタンス、シェーダーメタデータを表すプロパティは ActionScript クラスのインスタンスとなります。例えば、テキストメタデータの場合は String インスタンス、uint メタデータの場合は uint となります。

例えば、1 つの入力イメージ(src)、2 つのパラメーター(sizeradius)、3 つのメタデータ値(nameSpaceversiondescription)で定義されるシェーダーがあるとします。

<languageVersion : 1.0;> kernel DoNothing < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "A shader that does nothing, but does it well."; > { input image4 src; output pixel4 dst; parameter float2 size < description: "The size of the image to which the kernel is applied"; minValue: float2(0.0, 0.0); maxValue: float2(100.0, 100.0); defaultValue: float2(50.0, 50.0); >; parameter float radius < description: "The radius of the effect"; minValue: 0.0; maxValue: 50.0; defaultValue: 25.0; >; void evaluatePixel() { float2 one = (radius / radius) ∗ (size / size); dst = sampleNearest(src, outCoord()); } }

このシェーダーのバイトコードを読み込んで Shader インスタンスを作成すると、data プロパティの ShaderData インスタンスには次のプロパティが含まれます。

プロパティデータ型nameString"DoNothing"nameSpaceString"Adobe::Example"versionString"1"descriptionString"A shader that does nothing, but does it well."srcShaderInput[ShaderInput インスタンス]sizeShaderParameter[ShaderParameter インスタンスとパラメーターメタデータのプロパティ]radiusShaderParameter[ShaderParameter インスタンスとパラメーターメタデータのプロパティ]

シェーダーソースコードで定義されていても、シェーダーの evaluatePixel() 関数で使用されなかった入力イメージやパラメーターは、シェーダーがバイトコードにコンパイルされるときに削除されます。その場合、対応する ShaderInput と ShaderParameter インスタンスは ShaderData インスタンスのプロパティとして追加されません。

一般に、開発者コードでは ShaderData インスタンスは作成されません。シェーダーのデータ、パラメーター、および入力を含む ShaderData インスタンスは、Shader インスタンスの data プロパティとして使用できます。

次の例では、シェーダーをロードし、ShaderData インスタンスを data プロパティで列挙し、シェーダーの入力、パラメーター、メタデータの各プロパティを表示します。

この例では、"donothing.pbj" という名前のシェーダーバイトコードファイルが、アプリケーションの出力先と同じディレクトリにあるものとします。

// // Source code for the shader: // <languageVersion : 1.0;> kernel DoNothing < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "A shader that does nothing, but does it well."; > { input image4 src; output pixel4 dst; parameter float2 size < description: "The size of the image to which the shader is applied"; minValue: float2(0.0, 0.0); maxValue: float2(100.0, 100.0); defaultValue: float2(50.0, 50.0); >; parameter float radius < description: "The radius of the effect"; minValue: float(0.0); maxValue: float(50.0); defaultValue: float(25.0); >; void evaluatePixel() { float2 one = (radius / radius) * (size / size); dst = sampleNearest(src, outCoord()); } } // // ActionScript source code: // package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class ShaderDataExample extends Sprite { private var loader:URLLoader; public function ShaderDataExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("donothing.pbj")); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(); shader.byteCode = loader.data; for (var p:String in shader.data) { trace(p, ":", shader.data[p]); for (var d:String in shader.data[p]) { trace("\t", d, ":", shader.data[p][d]); } } } } }
flash.display.Shader.dataflash.display.ShaderInputflash.display.ShaderParameterShaderData ShaderData インスタンスを作成します。byteCodeflash.utils:ByteArrayシェーダーのバイトコードです。 ShaderData インスタンスを作成します。一般に、ShaderData コンストラクターは開発者コードでは直接呼び出されません。Shader インスタンスのデータ、パラメーター、入力を含む ShaderData インスタンスは、data プロパティを使用してアクセスします。 flash.display.Shader.data
ShaderJob スタンドアローンモードでシェーダー操作を実行するには、ShaderJob インスタンスを使用します。flash.events:EventDispatcher スタンドアローンモードでシェーダー操作を実行するには、ShaderJob インスタンスを使用します。シェーダー操作が実行されて、その結果のデータが返されます。その結果の使用方法は開発者が決めます。

シェーダーをスタンドアローンモードで使用する主な理由が 2 つあります。

  • イメージ以外のデータの処理:ShaderJob インスタンスを使用して入力値を制御し、シェーダーの結果の使用方法を制御できます。シェーダーは、イメージデータの代わりにバイナリデータまたは数値データとして結果を返すことができます。
  • バックグラウンド処理:一部の複雑なシェーダーは、実行するのに著しく時間がかかります。アプリケーションのメイン実行で複雑なシェーダーを実行すると、ユーザー入力や画面の更新など、アプリケーションの他の部分が減速する場合があります。ShaderJob インスタンスを使用すると、シェーダーをバックグラウンドで実行できます。この方法でシェーダーを実行すると、シェーダー操作はアプリケーションのメイン実行とは別個に実行されます。

shader プロパティ(またはコンストラクターパラメーター)は、操作に使用するシェーダーを表す Shader インスタンスを指定します。シェーダーに必要なパラメーターや入力を指定するには、関連する ShaderParameter や ShaderInput インスタンスを使用します。

ShaderJob 操作の実行前に、結果の書き込み先のオブジェクトを target プロパティの値として設定します。シェーダー操作が終了すると、結果が target オブジェクトに書き込まれます。

バックグラウンドでのシェーダー操作を開始するには、start() メソッドを呼び出します。操作が終了すると、結果が target オブジェクトに書き込まれます。その時点で、ShaderJob インスタンスは complete イベントを送出し、結果が出ていることをリスナーに通知します。

シェーダーをバックグラウンドで実行せずに同期的に実行するには、start() メソッドを呼び出して true を引数として渡します。シェーダーはメイン実行のスレッドで実行され、この操作が完了するまでコードが一時停止します。終了すると、結果が target オブジェクトに書き込まれます。その後にアプリケーションの実行が次のコード行から続行されます。

ShaderShaderInputShaderParameterShaderEventcomplete ShaderJob を非同期的に実行したときに、シェーダーによるデータ処理が終了すると送出されます。flash.events.ShaderEvent.COMPLETEflash.events.ShaderEvent ShaderJob を非同期的に実行したときに、シェーダーによるデータ処理が終了すると送出されます。ShaderJob インスタンスを非同期的に実行するには、start() メソッドを呼び出して waitForCompletion パラメーターに値として false を渡します。 ShaderJob shaderflash.display:Shadernull操作に使用するシェーダーです。 targetObjectnullシェーダー操作の結果が書き込まれるオブジェクトです。この引数は、BitmapData、ByteArray、または Vector のいずれかでなければなりません。<Number> インスタンスです。 widthint0ByteArray または Vector の場合は、target の結果データの幅です。<Number> インスタンスです。ByteArray または Vector のサイズです。<Number> インスタンスは必要に応じて拡大され、既存のデータは上書きされます。 heightint0ByteArray または Vector の場合は、target の結果データの高さです。<Number> インスタンスです。ByteArray または Vector のサイズです。<Number> インスタンスは必要に応じて拡大され、既存のデータは上書きされます。 cancel 現在実行中のシェーダー操作をキャンセルします。 現在実行中のシェーダー操作をキャンセルします。既に計算済みの結果データがある場合、そのデータは破棄されます。complete イベントは送出されません。

cancel() を複数回呼び出しても効果はありません。

start waitForCompletion パラメーターの値に従って、シェーダー操作を同期モードまたは非同期モードで開始します。target プロパティが null または BitmapData、ByteArray、Vector でない場合。<Number> インスタンスです。 ArgumentErrorArgumentErrorシェーダーが指定したイメージ入力が存在しない場合。 ArgumentErrorArgumentErrorByteArray または Vector の場合。<Number> インスタンスが入力として使用され、ShaderInput の width および height プロパティが指定されていない、または指定された値が入力オブジェクトのデータ量と一致しない場合。詳しくは、ShaderInput.input プロパティを参照してください。 ArgumentErrorArgumentErrorwaitForCompletionBooleanfalseシェーダーの実行をバックグラウンド(false、デフォルト)で行うか、プログラムのメイン実行(true)で行うかを指定します。 waitForCompletion パラメーターの値に従って、シェーダー操作を同期モードまたは非同期モードで開始します。

waitForCompletionfalse(デフォルト)の場合は、非同期モードになり、ShaderJob はバックグラウンドで実行されます。シェーダー操作は、表示の応答性や他の操作には影響しません。非同期モードでは、start() 呼び出しが即座に戻り、プログラムの実行が次のコード行から続行されます。非同期のシェーダー操作が終了すると、結果が出て complete イベントが送出されます。

バックグラウンドでは一度に 1 つの ShaderJob 操作のみが実行されます。シェーダー操作は実行されるまでキューに入ります。シェーダー操作の実行中に start() メソッドを呼び出すと、追加の操作がキューの末尾に追加されます。後で順番が来ると、その操作が実行されます。

シェーダー操作を同期モードで実行するには、start() を呼び出して waitForCompletion パラメーター(唯一のパラメーター)に true を渡します。シェーダー操作が完了するまでは、コードの実行が start() を呼び出した箇所で一時停止します。操作が完了すると、結果が出て次のコード行から実行が続行されます。

start() メソッドを呼び出すと、shader プロパティの Shader インスタンスの内部的にコピーされます。シェーダー操作は、元のシェーダーを参照するのではなく、その内部コピーを使用します。パラメーター値、入力、バイトコードの変更などの変更をシェーダーに加えたとしても、シェーダーの処理で使用したコピーシェーダーにはその変更は適用されません。シェーダーの変更をシェーダーの処理に適用するには、(必要に応じて)cancel() メソッドを呼び出し、もう一度 start() メソッドを呼び出して、シェーダーの処理を再開します。

シェーダー操作の実行中、target オブジェクトの値は変わりません。操作が終了すると(非同期モードで complete イベントが送出されると)、結果全体が一度に target オブジェクトに書き込まれます。target オブジェクトが BitmapData インスタンスで、操作が終了する前にその dispose() メソッドが呼び出された場合でも、非同期モードでは complete イベントが送出されます。ただし、結果データは破棄状態にあるため、BitmapData オブジェクトには書き込まれません。

completeflash.events:ShaderEventstart() メソッドを呼び出して waitForCompletion 引数に true を渡した場合は、操作の終了時に送出されます。 start() メソッドを呼び出して waitForCompletion 引数に true を渡した場合は、操作の終了時に送出されます。
height ByteArray または Vector の場合は、target の結果データの高さです。&lt;Number&gt; インスタンスです。int ByteArray または Vector の場合は、target の結果データの高さです。<Number> インスタンスです。ByteArray または Vector のサイズです。<Number> インスタンスは必要に応じて拡大され、既存のデータは上書きされます。 progress 実行中のシェーダーの進行状況です。Number 実行中のシェーダーの進行状況です。このプロパティは 0 から 1 までの値です。初期値は 0 です(0 %完了)。1 はシェーダー操作が完了したことを示します。

cancel() メソッドが呼び出されると、このプロパティは undefined になります。シェーダー操作が再開されるまで、このプロパティの値を信頼して使用することはできません。

shader 操作に使用したシェーダーです。flash.display:Shader 操作に使用したシェーダーです。Shader インスタンスの data プロパティで、ShaderInput または ShaderParameter プロパティを使用して、目的のシェーダーの入力またはパラメーターを指定する必要があります。対応する ShaderInput が target オブジェクトと同じ場合でも、これを使用して入力を指定する必要があります。

線形データ配列(イメージデータではなく)を含む ByteArray を処理するには、ByteArray 内の対応する ShaderInput インスタンスの height を 1 に、width を 32 ビット浮動小数点の値に設定します。その場合、シェーダーの入力は image1 データ型で定義する必要があります。

flash.display.ShaderDataflash.display.ShaderInputflash.display.ShaderParameter
target シェーダー操作の結果が書き込まれるオブジェクトです。Object シェーダー操作の結果が書き込まれるオブジェクトです。このオブジェクトは、BitmapData、ByteArray、または Vector のいずれかでなければなりません。<Number> インスタンスです。 width ByteArray または Vector の場合は、target の結果データの幅です。&lt;Number&gt; インスタンスです。int ByteArray または Vector の場合は、target の結果データの幅です。<Number> インスタンスです。ByteArray または Vector のサイズです。<Number> インスタンスは必要に応じて拡大され、既存のデータは上書きされます。
NativeWindowSystemChrome NativeWindowSystemChrome クラスは、ネイティブウィンドウを作成するために使用される NativeWindowInitOptions オブジェクトの systemChrome プロパティの定数を定義します。サポートされているウィンドウクロームのタイプを表す定数を定義します。 Object NativeWindowSystemChrome クラスは、ネイティブウィンドウを作成するために使用される NativeWindowInitOptions オブジェクトの systemChrome プロパティの定数を定義します。

システムクロムは、タイトルバー、最小化ボタン、最大化ボタン、閉じるボタンなど、オペレーティングシステムに固有のウィンドウエレメントを参照します。

注意:使用されるシステムクロムのタイプは、ウィンドウが作成されて変更できないときに指定されます。

flash.display.NativeWindowflash.display.NativeWindowInitOptionsALTERNATE 将来の使用のために予約されています。alternateString 将来の使用のために予約されています。

使用しないでください。

NONE システムクロムはありません。noneString システムクロムはありません。 STANDARD ホストオペレーティングシステムの標準クロムです。standardString ホストオペレーティングシステムの標準クロムです。

この設定を使用して、ネイティブオペレーティングシステムの外観と使用感をエミュレートします。

IGraphicsStroke このインターフェイスは、flash.display.Graphics のメソッドおよび描画クラスの線パラメーターとして使用されるオブジェクトを定義するために使用します。 このインターフェイスは、flash.display.Graphics のメソッドおよび描画クラスの線パラメーターとして使用されるオブジェクトを定義するために使用します。線プロパティデータの作成と管理、および異なるインスタンスでの同じデータの再利用には、このインターフェイスの実装者クラスを使用します。 flash.display.Graphics.drawGraphicsData()SimpleButton SimpleButton クラスを使用すると、SWF ファイル内のボタンシンボルのすべてのインスタンスを制御することができます。SimpleButton クラスを使用すると、SWF ファイル内のボタンシンボルのすべてのインスタンスを制御することができます。 flash.display:InteractiveObject SimpleButton クラスを使用すると、SWF ファイル内のボタンシンボルのすべてのインスタンスを制御することができます。

Flash Professional では、プロパティインスペクターでもボタンにインスタンス名を付けることができます。SimpleButton インスタンスの名前は、ムービーエクスプローラーに表示されます。また、アクションパネルのターゲットパスの挿入ダイアログボックスにも表示されます。Flash Professional 内のボタンのインスタンスを作成した後は、SimpleButton クラスのメソッドとプロパティを使用して、ActionScript でボタンを操作できます。

ActionScript 3.0 では、new SimpleButton() コンストラクターを使用して SimpleButton インスタンスを作成します。

SimpleButton クラスは、InteractiveObject クラスから継承します。

次の例では、SimpleButtonExample クラスを使用します。これは、CustomSimpleButton クラスを使用し、次にこのクラスは 4 つの ButtonDisplayState オブジェクトをインスタンス化します。その結果として作成されるボタンは、形状が四角形で、背景色がマウスの状態に応じて変わります。これは、SimpleButton クラスのプロパティをオーバーライドすることによって行われます。ここでは以下の手順を実行します。
  1. SimpleButtonExample() コンストラクターで、SimpleButton タイプの新しい CustomSimpleButton オブジェクト(button と呼ばれる)が作成されます。これにより、CustomSimpleButton コンストラクターメソッドが呼び出されます。button オブジェクトが表示リストに追加されます。ボタンの色とサイズは、次の手順で決定されます。
  2. CustomSimpleButton クラスで、インスタンスのプロパティが宣言されます。これらは、後に button のサイズと背景色を制御するために使われます。その制御は、ボタンの状態に基づいて行われ、通常の状態ではオレンジ、マウスポインターが置かれた状態では暗い黄色、マウスボタンが押された状態では明るい青色になります。button がどの状態にあるときでも、四角形のサイズは、size プロパティを使用して 80 ピクセルに設定されます。
  3. CustomSimpleButton クラスのコンストラクター関数では、downStateoverStateupStatehitTestState、および useHandCursor プロパティに ButtonDisplayState クラスの 4 つのインスタンスを設定します。
  4. ButtonDisplayState クラスのコンストラクターでは、四角形のサイズと背景色の値を設定し、draw() メソッドを呼び出します。
  5. draw() メソッドは、ボタンの状態に基づき、コンストラクターで設定されたサイズと背景色で四角形を再描画します。
package { import flash.display.Sprite; public class SimpleButtonExample extends Sprite { public function SimpleButtonExample() { var button:CustomSimpleButton = new CustomSimpleButton(); addChild(button); } } } import flash.display.DisplayObject; import flash.display.Shape; import flash.display.SimpleButton; class CustomSimpleButton extends SimpleButton { private var upColor:uint = 0xFFCC00; private var overColor:uint = 0xCCFF00; private var downColor:uint = 0x00CCFF; private var size:uint = 80; public function CustomSimpleButton() { downState = new ButtonDisplayState(downColor, size); overState = new ButtonDisplayState(overColor, size); upState = new ButtonDisplayState(upColor, size); hitTestState = new ButtonDisplayState(upColor, size * 2); hitTestState.x = -(size / 4); hitTestState.y = hitTestState.x; useHandCursor = true; } } class ButtonDisplayState extends Shape { private var bgColor:uint; private var size:uint; public function ButtonDisplayState(bgColor:uint, size:uint) { this.bgColor = bgColor; this.size = size; draw(); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } }
InteractiveObject クラスSimpleButton 新しい SimpleButton インスタンスを作成します。upStateflash.display:DisplayObjectnullSimpleButton のアップ状態用の初期値です。 overStateflash.display:DisplayObjectnullSimpleButton のオーバー状態用の初期値です。 downStateflash.display:DisplayObjectnullSimpleButton のダウン状態用の初期値です。 hitTestStateflash.display:DisplayObjectnullSimpleButton の hitTest 状態用の初期値です。 新しい SimpleButton インスタンスを作成します。 新しい SimpleButton インスタンスを作成します。様々なボタンの状態を表す表示オブジェクトのいずれかまたはすべてを、コンストラクター内のパラメーターとして設定することができます。 downState ボタンの「ダウン」状態用のビジュアルオブジェクトとして使用される表示オブジェクトを指定します。ダウン状態とは、ユーザーが hitTestState オブジェクトを選択したときのボタンの状態です。flash.display:DisplayObjectボタンの「ダウン」状態用に使用する DisplayObject 値を指定します。 ボタンの「ダウン」状態用のビジュアルオブジェクトとして使用される表示オブジェクトを指定します。ダウン状態とは、ユーザーが hitTestState オブジェクトを選択したときのボタンの状態です。 hitTestStateoverStateupStateenabled ボタンが有効であるか無効であるかを指定するブール値です。Booleanボタンが有効(true)か無効(false)かを指定します。 ボタンが有効であるか無効であるかを指定するブール値です。ボタンが無効になっているとき(enabled プロパティが false に設定されているとき)、ボタンは表示されますが、クリックできません。デフォルト値は true です。このプロパティは、ナビゲーションの一部を無効にする場合に便利です。例えば、現在表示されているページのボタンを無効にしてクリックできないようにすることで、ページのリロードを禁止できます。

注意:ボタンに対して mouseClick が発生しないようにするには、enabled プロパティと mouseEnabled プロパティの両方を false に設定します。

hitTestState ボタンのヒットテストオブジェクトとして使用する表示オブジェクトを指定します。flash.display:DisplayObject ボタンのヒットテストオブジェクトとして使用する表示オブジェクトを指定します。基本的なボタンでは、hitTestState プロパティを overState プロパティと同じ表示オブジェクトに設定します。hitTestState プロパティを設定しない場合、SimpleButton は非アクティブになります。つまり、ユーザー入力イベントに反応しません。 downStateoverStateupStateoverState ボタンのオーバー状態用のビジュアルオブジェクトとして使用される表示オブジェクトを指定します。オーバー状態とは、ボタンの上にポインターが置かれている状態のことです。flash.display:DisplayObjectボタンの「オーバー」状態用に使用する DisplayObject 値を指定します。 ボタンのオーバー状態用のビジュアルオブジェクトとして使用される表示オブジェクトを指定します。オーバー状態とは、ボタンの上にポインターが置かれている状態のことです。 downStatehitTestStateupStatesoundTransform このボタンに割り当てられた SoundTransform オブジェクトです。flash.media:SoundTransform このボタンに割り当てられた SoundTransform オブジェクトです。SoundTransform オブジェクトには、ボリューム、パン、左スピーカーの割り当て、および右スピーカーの割り当てを設定するプロパティが含まれます。この SoundTransform オブジェクトはボタンのすべての状態に適用されます。この SoundTransform オブジェクトは埋め込みサウンドのみに影響します。 flash.media.SoundTransformtrackAsMenu SimpleButton または MovieClip オブジェクトである他の表示オブジェクトがユーザー入力解放イベントを受け取ることができるかどうかを示します。Boolean SimpleButton または MovieClip オブジェクトである他の表示オブジェクトがユーザー入力解放イベントを受け取ることができるかどうかを示します。trackAsMenu プロパティを使用してメニューを作成できます。trackAsMenu プロパティは、任意の SimpleButton または MovieClip オブジェクトに対して設定できます。trackAsMenu プロパティがない場合、デフォルトの動作は false です。

trackAsMenu プロパティは必要に応じていつでも変更できます。ボタンに対する変更は即座に反映されます。

upState ボタンの「アップ」状態用のビジュアルオブジェクトとして使用される表示オブジェクトを指定します。アップ状態とは、ボタンの上にポインターが置かれていない状態のことです。flash.display:DisplayObjectボタンの「アップ」状態用に使用する DisplayObject 値を指定します。 ボタンのアップ状態用のビジュアルオブジェクトとして使用される表示オブジェクトを指定します。アップ状態とは、ボタンの上にポインターが置かれていない状態のことです。 downStatehitTestStateoverStateuseHandCursor ポインターがボタン上に移動したときに、ハンドカーソルを表示するかどうかを示すブール値です。true に設定されると、ハンドカーソルを表示します。Booleantrue に設定すると、指差しハンドカーソルを表示します。 ポインターがボタン上に移動したときに、ハンドカーソルを表示するかどうかを示すブール値です。true に設定されると、ハンドカーソルを表示します。このプロパティを false に設定すると、代わりに矢印カーソルが表示されます。デフォルト値は true です。

useHandCursor プロパティは必要に応じていつでも変更できます。変更されたボタンでは新しいカーソルの動作が即座に使用されます。

TriangleCulling 三角形のパスを描画するときに、レンダリングしない三角形を決めるカリングアルゴリズムのコードを定義します。Object 三角形のパスを描画するときに、レンダリングしない三角形を決めるカリングアルゴリズムのコードを定義します。

POSITIVENEGATIVE は、三角形の z 軸法線の符号を示します。法線は、三角形の表面に対して垂直の 3D ベクターです。

三角形の頂点 0、1、2 が時計回りに並んでいる三角形の法線は、正の値になります。つまり、法線が現在のビューポイントから離れた正の z 軸方向を指します。TriangleCulling.POSITIVE アルゴリズムを使用すると、正の法線を持つ三角形はレンダリングされません。これをバックフェースカリングと呼ぶこともあります。

三角形の頂点が反時計回りに並んでいる場合は、法線が負の値になります。つまり、法線が現在のビューポイントに向かう負の z 軸方向を指します。TriangleCulling.NEGATIVE アルゴリズムを使用すると、負の法線を持つ三角形はレンダリングされません。

flash.display.Graphics.drawTriangles()flash.display.GraphicsTrianglePath3D ベクターの紹介3D バックフェースカリングNEGATIVE 現在のビューポイント方向の内向きにある三角形すべてのカリングを指定します。negativeString 現在のビューポイント方向の内向きにある三角形すべてのカリングを指定します。 NONE カリングなしを指定します。noneString カリングなしを指定します。パス内の三角形はすべてレンダリングされます。 POSITIVE 現在のビューポイントから外向きにある三角形すべてのカリングを指定します。positiveString 現在のビューポイントから外向きにある三角形すべてのカリングを指定します。こちらも、バックフェースカリングと呼ぶことがあります。
NativeWindow NativeWindow クラスは、ネイティブのデスクトップウィンドウを作成および制御するインターフェイスを提供します。flash.events:EventDispatcher NativeWindow クラスは、ネイティブのデスクトップウィンドウを作成および制御するインターフェイスを提供します。

AIR プロファイルのサポート:この機能はすべてのデスクトップオペレーティングシステムでサポートされますが、モバイルデバイスまたはテレビ用 AIR デバイスではサポートされません。デスクトップデバイスでは、NativeWindow.isSupported プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

NativeWindow インスタンスへの参照は、ウィンドウコンストラクターから返されます。NativeWindow インスタンスへの参照には、そのウィンドウのステージにある任意の表示オブジェクトの stage.nativeWindow プロパティを使用してアクセスすることもできます。

var window:NativeWindow = displayObject.stage.nativeWindow;

NativeWindow インスタンスのプロパティには、アプリケーションコンテンツからのみアクセスできます。アプリケーションコンテンツ以外が NativeWindow オブジェクトにアクセスしようとすると、セキュリティエラーがスローされます。

コンテンツは、Stage オブジェクトの DisplayObjectContainer メソッド(addChild() など)を使用してウィンドウに追加できます。

Flex コンポーネントを、NativeWindow インスタンスの表示リストに直接追加することはできません。この場合、Flex mx:WindowedApplication コンポーネントおよび mx:Window コンポーネントを使用してウィンドウを作成し、これらのオブジェクトに他の Flex コンポーネントを子として追加します。Flex ベースの SWF が、その SWF のアプリケーションドメインにロードされていて、アプリケーションコンテンツである場合は、この SWF を NativeWindow ウィンドウに直接追加することができます。

HTML コンテンツを表示するルート HTML ウィンドウを作成するには、通常は HTMLLoader.createRootWindow() を使用したほうが簡単です。この方法で作成されたウィンドウには、HTMLLoader オブジェクトが自動的に追加されます(JavaScript コードでは、JavaScript window.open() 関数も使用できます。ただし、この方法では、ウィンドウの外観と動作を制御することが難しくなります)。

NativeWindow オブジェクトに対する close()maximize()minimize()restore()、および bounds の変更などの操作は非同期的です。アプリケーションは、これらの操作が完了すると、該当するイベントを受け取って検出することができます。

NativeApplication.autoExit プロパティが true の場合(デフォルト)、最後のウィンドウが閉じられると(すべての close イベントハンドラーがイベントを返すと)、そのアプリケーションは終了します。autoExitfalse の場合は、NativeApplication.nativeApplication.exit() を呼び出してアプリケーションを終了する必要があります。

ウィンドウコンストラクターが呼び出され、まだ close() が呼び出されていない場合、NativeWindow オブジェクトはガベージコレクションされません。 アプリケーションのウィンドウを閉じるのは、そのアプリケーション自体が受け持つことになります。

flash.display.Stage.nativeWindowflash.display.NativeWindowInitOptionsflash.desktop.NativeApplicationflash.system.ApplicationDomainflash.html.HTMLLoader.createRootWindow()deactivate ウィンドウが非アクティブになると、この NativeWindow オブジェクトから送出されます。flash.events.Event.DEACTIVATEflash.events.Event ウィンドウが非アクティブになると、この NativeWindow オブジェクトから送出されます。 activate ウィンドウがアクティブになると、この NativeWindow オブジェクトから送出されます。flash.events.Event.ACTIVATEflash.events.Event ウィンドウがアクティブになると、この NativeWindow オブジェクトから送出されます。 close ウィンドウが閉じられると、この NativeWindow オブジェクトから送出されます。flash.events.Event.CLOSEflash.events.Event ウィンドウが閉じられると、この NativeWindow オブジェクトから送出されます。 closing ウィンドウが閉じられる直前に、この NativeWindow オブジェクトから送出されます。flash.events.Event.CLOSINGflash.events.Event ウィンドウが閉じられる直前に、この NativeWindow オブジェクトから送出されます。このイベントは、ウィンドウが閉じられないようにキャンセルできます。 displayStateChange ウィンドウの displayState プロパティが変化すると、この NativeWindow オブジェクトによって送出されます。flash.events.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGEflash.events.NativeWindowDisplayStateEvent ウィンドウの displayState プロパティが変化すると、この NativeWindow オブジェクトによって送出されます。

ウィンドウのサイズを変えたり、displayStateChange イベントハンドラーでのウィンドウの表示状態を変更しないでください。

displayStateChanging ウィンドウがその表示状態を変更する直前に、この NativeWindow オブジェクトから送出されます。flash.events.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGINGflash.events.NativeWindowDisplayStateEvent ウィンドウがその表示状態を変更する直前に、この NativeWindow オブジェクトから送出されます。このイベントは、変更されないようにキャンセルすることができます。 次の例では、displayStateChanging イベントをキャンセルする方法を示します。 function displayStateChanging_handler(displayStateEvent:NativeWindowDisplayStateEvent):void { //shouldStopStateChange is an application-defined Boolean indicating //that display state changes should be canceled if (displayStateEvent.type == NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING && shouldStopStateChange) { displayStateEvent.preventDefault(); } } resize ウィンドウのサイズが変更されると、この NativeWindow オブジェクトから送出されます。flash.events.NativeWindowBoundsEvent.RESIZEflash.events.NativeWindowBoundsEvent ウィンドウのサイズが変更されると、この NativeWindow オブジェクトから送出されます。ウィンドウのサイズが変更されると、常に resize イベントが送出されます。ウィンドウのサイズ(width プロパティまたは height プロパティ)変更は、システムによって制御されたウィンドウサイズの変更の場合、最小化、最大化またはウィンドウのサイズを元に戻した場合、widthheight または bounds の各プロパティを設定して変更した場合に行われます。NativeWindow の resize イベントは、システム制御のサイズ変更ループの場合に送出されます。一方、Stage オブジェクトの resize イベントは、ステージの描画の準備が整っている場合に送出されます。 Stage resize イベントresizing デスクトップ上でウィンドウのサイズが変更される直前に、この NativeWindow オブジェクトから送出されます。flash.events.NativeWindowBoundsEvent.RESIZINGflash.events.NativeWindowBoundsEvent デスクトップ上でウィンドウのサイズが変更される直前に、この NativeWindow オブジェクトから送出されます。このイベントは、サイズ変更を中止または変更するためにキャンセルすることができます。 次の例では、resizing イベントをキャンセルする方法を示します。 function boundsChanging_handler(boundsEvent:NativeWindowBoundsEvent):void { //shouldStopResize is an application-defined Boolean indicating //that resize operations should be canceled if (boundsEvent.type == NativeWindowBoundsEvent.RESIZING && shouldStopResize) { boundsEvent.preventDefault(); } } move デスクトップ上でウィンドウが移動されると、この NativeWindow オブジェクトから送出されます。flash.events.NativeWindowBoundsEvent.MOVEflash.events.NativeWindowBoundsEvent デスクトップ上でウィンドウが移動されると、この NativeWindow オブジェクトから送出されます。

ウィンドウの原点が変更されると、常に move イベントが送出されます。ウィンドウの原点(x プロパティまたは y プロパティ)の移動は、システムによって制御されたウィンドウの移動の場合、最小化、最大化またはウィンドウのサイズを元に戻した場合、または xy または bounds の各プロパティを設定して移動した場合に行われます。

注意: NativeWindow オブジェクトの moving イベントと move イベントの両方に対するハンドラー関数でオペレーティングシステムのダイアログボックスを同時に開くようなアクションは避けてください。これは、例えば、両方のハンドラー関数がエラーをスローする場合などに発生します。そのようなアクションが発生した場合、2 番目に開かれるダイアログボックスにはマウスのクリックが登録されないので、キーボードを使って閉じることが必要になります。

moving デスクトップ上でウィンドウが移動される直前に、NativeWindow オブジェクトから送出されます。flash.events.NativeWindowBoundsEvent.MOVINGflash.events.NativeWindowBoundsEvent デスクトップ上でウィンドウが移動される直前に、NativeWindow オブジェクトから送出されます。このイベントは、移動を中止または変更するためにキャンセルできます。

注意: NativeWindow オブジェクトの moving イベントと move イベントの両方に対するハンドラー関数でオペレーティングシステムのダイアログボックスを同時に開くようなアクションは避けてください。これは、例えば、両方のハンドラー関数がエラーをスローする場合などに発生します。そのようなアクションが発生した場合、2 番目に開かれるダイアログボックスにはマウスのクリックが登録されないので、キーボードを使って閉じることが必要になります。

NativeWindow NativeWindow インスタンスと、対応するオペレーティングシステムウィンドウを新たに作成します。initOptions パラメーターが有効でない場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorinitOptionsflash.display:NativeWindowInitOptionsこのウィンドウの初期化プロパティを格納するオブジェクトです。 NativeWindow インスタンスと、対応するオペレーティングシステムウィンドウを新たに作成します。

ウィンドウの作成後は、initOptions パラメーターで定義されている設定を変更することはできません。initOptions 設定が無効な場合、無効な操作を示すエラーがスローされます。現在のシステムで使用できなくても、設定が有効な場合は、例外はスローされません。現在のオペレーティングシステムに固有の機能は、必要に応じて、静的な NativeWindow メンバー(systemMaxSize など)を使用することで検出できます。

デフォルトのウィンドウサイズはオペレーティングシステムによって決まり、ウィンドウは不可視状態で作成されます。ウィンドウを可視状態のまま変更しないようにするために、ウィンドウの変更が終わるまで、ウィンドウの visible プロパティを true にしたり、activate() を呼び出したりしないでください。

次の例では、NativeWindow インスタンスを新たに作成し、アクティブ化します。 import flash.display.NativeWindowInitOptions; import flash.display.NativeWindowSystemChrome; import flash.display.NativeWindowType; import flash.display.NativeWindow; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.geom.Rectangle; var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD; windowOptions.type = NativeWindowType.NORMAL; var newWindow:NativeWindow = new NativeWindow(windowOptions); newWindow.stage.scaleMode = StageScaleMode.NO_SCALE; newWindow.stage.align = StageAlign.TOP_LEFT; newWindow.bounds = new Rectangle(100, 100, 800, 800); newWindow.activate();
flash.display.NativeWindowInitOptionsflash.html.HTMLLoader.createRootWindow()
activate このウィンドウをアクティブ化します。 このウィンドウをアクティブ化します。

ウィンドウをアクティブ化すると、次のようになります。

  • ウィンドウが可視になります。
  • ウィンドウが前面に移動します。
  • キーボードおよびマウスのフォーカスが、そのウィンドウに移動します。

Linux の場合、activate() は非同期的に実行される操作です。

NativeWindow オブジェクトは、どのプラットフォームでも activate イベントを送出します。

次の例は、ウィンドウをアクティブにする方法を示しています。

ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。

displayObject.stage.nativeWindow.activate();
NativeWindow クラスのインスタンスへの参照を使用する場合は、次のように処理します。 windowObj.activate(); ウィンドウにレンダリングされている HTML ページの JavaScript からは、次のように処理します(window は、グローバル JavaScript ウィンドウオブジェクト)。 window.nativeWindow.activate();
visibleorderToFront()
close このウィンドウを閉じます。 このウィンドウを閉じます。

閉じる操作が完了すると、close イベントが直ちに送出されます。closing イベントは送出されません。閉じる操作のキャンセルを許可する場合は、closing イベントを送出し、登録されているリスナーがデフォルトの動作をキャンセルするかどうかを、close() メソッドを呼び出す前にチェックします。

ウィンドウを閉じると、そのウィンドウが所有しているウィンドウもすべて閉じられます。所有されているウィンドウが closing イベントを送出することはありません。

現在ウィンドウにある表示オブジェクトのインスタンスが他の場所で参照されていない場合は、AIR によって作成された最初のアプリケーションウィンドウを除き、ガベージコレクションされて破棄されます。最初のウィンドウにある表示オブジェクトがガベージコレクションされるようにするには、ウィンドウステージからそれらを削除します。

閉じられた後でも NativeWindow オブジェクトは有効な参照として残りますが、プロパティやメソッドにアクセスすると、多くの場合は無効な操作を示すエラーがスローされます。

閉じたウィンドウを再び開くことはできません。ウィンドウが既に閉じられている場合、アクションは実行されず、イベントも送出されません。

注意:ウィンドウを閉じずに非表示にするには、ウィンドウの visible プロパティを false に設定します。

次の例は、ウィンドウを閉じる方法を示しています。

NativeWindow インスタンス(windowObj)への参照を使用した場合は、次のようになります。

windowObj.close();
ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObj.stage.nativeWindow.close(); HTMLLoader オブジェクト(または HTML ルートウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 window.close(); //overriddable in HTMLHost または window.nativeWindow.close(); //not overriddable 次の例は、閉じる操作のキャンセルを許可する方法を示したものです(windowObj が、閉じる NativeWindow インスタンスです)。 public function closeCommand():Boolean{ var closeEvent:Event = new Event(Event.CLOSING,true,true); windowObj.dispatchEvent(closeEvent); if(!closeEvent.isDefaultPrevented()){ windowObj.close(); return true; } else { return false; } } 次の例は、操作のキャンセルを許可しながら、HTMLLoader オブジェクト(または HTML ルートウィンドウ)で実行している JavaScript ルーチンからウィンドウを閉じる方法を示したものです。 <script src="AIRAliases.js" type="text/javascript"></script> <script type="text/javascript"> var dirtyData = false; function closeWindow(){ var closingEvent = new air.Event(air.Event.CLOSING,true,true); window.nativeWindow.dispatchEvent(closingEvent); if(!closingEvent.isDefaultPrevented()){ window.nativeWindow.close(); //or use: window.close(); return true; } else { return false; } } function onClosing(event){ if(dirtyData){ event.preventDefault(); //Save data... } } window.nativeWindow.addEventListener(air.Event.CLOSING,onClosing); </script>
flash.display.NativeWindow.closedflash.html.HTMLLoaderflash.html.HTMLHost
globalToScreen ウィンドウステージの起点を基準としたピクセル単位の座標のポイント(表示リストから見たグローバルポイント)を、仮想デスクトップのポイントに変換します。デスクトップを基準とした、指定されたグローバルポイントです。 flash.geom:PointglobalPointflash.geom:Point画面上のポイントに変換するステージ上のポイントです。 ウィンドウステージの起点を基準としたピクセル単位の座標のポイント(表示リストから見たグローバルポイント)を、仮想デスクトップのポイントに変換します。

仮想デスクトップの座標は、主モニターの左上隅を基準としています。

flash.display.Screen
listOwnedWindows このウィンドウが所有する NativeWindow オブジェクトのリストを返します。ゼロを格納した単一の Vector.<NativeWindow> オブジェクト、またはこのインスタンスに所有される複数の NativeWindow オブジェクト。 このウィンドウが所有する NativeWindow オブジェクトのリストを返します。

返されたベクトルにオブジェクトを追加したり、オブジェクトを削除することで NativeWindow オブジェクトの所有関係を変更することはできません。ウィンドウの作成後に、その所有関係を変更することはできません。

flash.display.NativeWindowInitOptions.owner
maximize このウィンドウを最大化します。このウィンドウが閉じられた後に、このメソッドが呼び出された場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウを最大化します。

maximize() を呼び出すと、displayStateChange イベントが送出されます。また、該当する場合は、move イベントおよび resize イベントも送出されます。ユーザーが maximize コマンドを発行すると、システムクロムがキャンセル可能な displayStateChanging イベントを送出しますが、必要に応じて、この動作を最大化ロジックに実装する必要があります。

maximize() メソッドは非同期に実行されます。状態変更の完了を検出するには、displayStateChange イベントを監視します。ウィンドウが既に最大化されている場合、アクションは実行されず、イベントも送出されません。

OS の動作に関する注意:

  • Mac OS X などのオペレーティングシステムでは、ウィンドウを最大化してもサイズ変更は禁止されません。そのため、maximize() を呼び出すとウィンドウが画面いっぱいに拡大されますが、その後でウィンドウのサイズを変更することができます。拡大されたウィンドウのサイズを変更すると、表示状態も元に戻ります。
  • Mac OS X などの一部のオペレーティングシステムおよび Linux の一部のウィンドウマネージャーでは、ウィンドウを最大化しても、maxSize プロパティで指定されている幅と高さより大きくは拡大しません。それ以外では、画面が maxSize よりも大きい場合でもウィンドウは画面いっぱいに拡大されます。
  • Linux の一部のウィンドウマネージャーでは、ユーティリティウィンドウを最大化できません。
次の例は、最大化操作のキャンセルを許可する方法を示したものです。 public function maximizeWindow(nativeWin:NativeWindow):Boolean{ if(nativeWin.displayState != NativeWindowDisplayState.MAXIMIZED){ var beforeState:String = nativeWin.displayState; var afterState:String = NativeWindowDisplayState.MAXIMIZED; var displayStateEvent:NativeWindowDisplayStateEvent = new NativeWindowDisplayStateEvent(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ nativeWin.maximize(); return true; } else { return false; } } return false; } 次の例は、ウィンドウ上の HTMLLoader オブジェクト(または HTML ウィンドウ)で実行される JavaScript ルーチンから最大化操作をキャンセルできるようにする方法を示したものです。 function maximizeWindow(nativeWin){ if(nativeWin.displayState != air.NativeWindowDisplayState.MAXIMIZED){ var beforeState = nativeWin.displayState; var afterState = air.NativeWindowDisplayState.MAXIMIZED; var displayStateEvent = new air.NativeWindowDisplayStateEvent(air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ nativeWin.maximize(); return true; } else { return false; } } return false; }
flash.display.NativeWindowDisplayStateflash.events.NativeWindowDisplayStateEvent
minimize このウィンドウを最小化します。このウィンドウが閉じられた後に、このメソッドが呼び出された場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウを最小化します。

minimize() を呼び出すと、displayStateChange イベントが送出されます。また、該当する場合は、move イベントおよび resize イベントも送出されます。ユーザーが minimize コマンドを発行すると、システムクロムがキャンセル可能な displayStateChanging イベントを送出するのに対し、minimize() を直接呼び出してもこのイベントは発行されません。必要に応じて、この動作を最小化ロジックに実装できます。

minimize() メソッドは非同期に実行されます。状態変更の完了を検出するには、displayStateChange イベントを監視します。これは、どのプラットフォームでも送出されるイベントです。ウィンドウが既に最小化されている場合、アクションは実行されず、イベントも送出されません。

このウィンドウが最小化されると、所有されているすべてのウィンドウは非表示になります。所有されているウィンドウが displayStateChanging または displayStateChange イベントを送出することはありません。

注意:

  • Windows では、不可視のウィンドウを最小化すると(visible == false)、ウィンドウを表示できます。
  • 一部の Linux ウィンドウマネージャーでは、ユーティリティウィンドウを最小化できません。
次の例は、minimize() 呼び出しを、displayStateChanging イベントを送出することによってキャンセルできるようにする方法を示したものです。 public function minimizeWindow(nativeWin:NativeWindow):Boolean{ if(nativeWin.displayState != NativeWindowDisplayState.MINIMIZED){ var beforeState:String = nativeWin.displayState; var afterState:String = NativeWindowDisplayState.MINIMIZED; var displayStateEvent:NativeWindowDisplayStateEvent = new NativeWindowDisplayStateEvent(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ nativeWin.minimize(); return true; } else { return false; } } return false; } 次の例は、minimize() 呼び出しを、HTMLLoader オブジェクト(または HTML ウィンドウ)で実行される JavaScript でキャンセルできるようにする方法を示したものです。 function minimizeWindow(){ if(window.nativeWindow.displayState != air.NativeWindowDisplayState.MINIMIZED){ var beforeState = window.nativeWindow.displayState; var afterState = air.NativeWindowDisplayState.MINIMIZED; var displayStateEvent = new air.NativeWindowDisplayStateEvent(air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); window.nativeWindow.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ window.nativeWindow.minimize(); return true; } else { return false; } } return false; }
flash.display.NativeWindowDisplayStateflash.events.NativeWindowDisplayStateEvent
notifyUser 該当するイベントが発生したオペレーティングシステムを通して、視覚的なキューをトリガーします。typeString通知の緊急性を表すストリングです。 該当するイベントが発生したオペレーティングシステムを通して、視覚的なキューをトリガーします。

NativeWindow.supportsNotificationtrue の場合、視覚的なキューは、ネイティブシステムのオペレーティングシステムの規則に従います。例えば、Windows では、タスクバーアイコンが点滅します。

キューの強度は、type パラメーターによって決定されます。有効な値の定数は NotificationType クラスで定義されていて、次のようになる場合があります。

  • NotificationType.INFORMATIONAL
  • NotificationType.CRITICAL

情報の通知を目的としたキューは、継続時間が短く設定されています。重要な通知のキューは、ユーザーがこのウィンドウをアクティブ化するまで継続します。一部の Linux ウィンドウマネージャーは、2 レベルの通知をサポートしていません。このようなウィンドウマネージャーでは、どのオプションを指定しても、notifyUser() は同じ動作をします。

注意:notifyUser() の呼び出しは、NativeWindow.supportsNotificationfalse の場合でも可能です。ただし、何も実行されません。

orderInBackOf このウィンドウを、指定されたウィンドウの背面に直接移動します。このウィンドウが正常に背面に移動された場合は true、このウィンドウが不可視であるか最小化されている場合は false になります。 Booleanwindowflash.display:NativeWindowアプリケーションウィンドウです。 このウィンドウを、指定されたウィンドウの背面に直接移動します。

ウィンドウまたはアプリケーションをアクティブ化したり、フォーカスを取得したりしません。最小化または非表示(visiblefalse)にされているウィンドウの順序は変更できません。

所有されているウィンドウを所有する側のウィンドウの背後に移動することはできません。このウィンドウに所有者がある場合、所有する側のウィンドウおよびそのウィンドウが所有するほかのウィンドウもターゲットの背後に順に配置されます。ターゲットウィンドウに所有者がある場合、このウィンドウはターゲットではなくその所有者の背後に配置されます。

一部の Linux ウィンドウマネージャーでは、ユーティリティウィンドウを標準ウィンドウよりも後に順序付けすることはできません。

次の例は、NativeWindow インスタンスへの参照を使用して、ウィンドウを他のウィンドウの真下に移動する方法を示したものです。 windowBehind.orderInBackOf(windowFront); ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObjBehind.stage.nativeWindow.orderInBackOf(displayObjectFront.stage.nativeWindow); HTMLLoader オブジェクト(または HTML ルートウィンドウ)で実行している JavaScript ルーチンから、2 つの JavaScript ウィンドウオブジェクトへの参照を使用する場合は、次のように処理します。 jsWindowObjBehind.nativeWindow.orderInBackOf(jsWindowObjFront.nativeWindow);
orderInFrontOf このウィンドウを、指定されたウィンドウの前面に直接移動します。このウィンドウが正常に前面に移動された場合は true、このウィンドウが不可視であるか最小化されている場合は false になります。 Booleanwindowflash.display:NativeWindowアプリケーションウィンドウです。 このウィンドウを、指定されたウィンドウの前面に直接移動します。

ウィンドウまたはアプリケーションをアクティブ化したり、フォーカスを取得したりしません。最小化または非表示(visiblefalse)にされているウィンドウの順序は変更できません。

ウィンドウを所有するウィンドウの前面に移動することはできません。このウィンドウに所有者がある場合、所有する側のウィンドウおよびそのウィンドウが所有するほかのウィンドウもターゲットの前面に順に配置されます。ターゲットウィンドウに所有者がある場合、このウィンドウはターゲットと同じ所有者に所有されるほかのすべてのウィンドウの前面に配置されます。

一部の Linux ウィンドウマネージャーでは、標準ウィンドウをユーティリティウィンドウよりも前に順序付けすることはできません。

次の例は、NativeWindow インスタンスへの参照を使用して、ウィンドウを他のウィンドウの真上に移動する方法を示したものです。 windowFront.orderInFrontOf(windowBehind); ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObjFront.stage.nativeWindow.orderInFrontOf(displayObjectBehind.stage.nativeWindow); HTMLLoader オブジェクト(または HTML ルートウィンドウ)で実行している JavaScript ルーチンから、2 つの JavaScript ウィンドウオブジェクトへの参照を使用する場合は、次のように処理します。 jsWindowObjFront.nativeWindow.orderInFrontOf(jsWindowObjBehind.nativeWindow);
orderToBack このウィンドウを他のすべての可視ウィンドウの背面に移動します。このウィンドウが正常に背面に移動された場合は true、このウィンドウが不可視であるか最小化されている場合は false になります。 Boolean このウィンドウを他のすべての可視ウィンドウの背面に移動します。

このウィンドウまたはアプリケーションをアクティブ化したり、フォーカスを取得したりしません。最小化または非表示(visiblefalse)にされているウィンドウの順序は変更できません。

alwaysInFronttrue の場合、このメソッドを呼び出しても、alwaysInFrontfalse に設定されているウィンドウの背面には移動しません。

所有されているウィンドウを所有する側のウィンドウの背後に移動することはできません。このウィンドウに所有者がある場合、所有する側のウィンドウおよびそのウィンドウが所有するほかのウィンドウもウィンドウ表示リストの末尾に順に配置されます。このウィンドウは同じウィンドウに所有されるほかのすべてのウィンドウの背後に移動します。このウィンドウがほかのウィンドウを所有している場合、それらのウィンドウも背後に移動され、現在のウィンドウ相互の位置関係が保持されます。

一部の Linux ウィンドウマネージャーでは、ユーティリティウィンドウを標準ウィンドウよりも後に順序付けすることはできません。

次の例は、アプリケーションの他のすべてのウィンドウ(同じ alwaysInFront 設定を持つもの)の背面にウィンドウを移動する方法を示したものです。 windowObj.orderToBack(); ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObj.stage.nativeWindow.orderToBack(); ウィンドウの HTMLLoader オブジェクト(またはルート HTML ウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 window.nativeWindow.orderToBack();
orderToFront このウィンドウを他の可視ウィンドウの前面に移動します。このウィンドウが正常に前面に移動された場合は true、このウィンドウが不可視であるか最小化されている場合は false になります。 Boolean このウィンドウを他の可視ウィンドウの前面に移動します。

このウィンドウまたはアプリケーションをアクティブ化したり、フォーカスを取得したりしません。最小化または非表示(visiblefalse)にされているウィンドウの順序は変更できません。

alwaysInFrontfalse の場合、このメソッドを呼び出しても、alwaysInFronttrue に設定されているウィンドウの前面には移動しません。

ウィンドウを所有するウィンドウの前面に移動することはできません。このウィンドウがほかのウィンドウを所有している場合、それらのウィンドウも前面に移動され、現在のウィンドウ相互の位置関係が保持されます。このウィンドウに所有者がある場合、所有する側のウィンドウおよびそのウィンドウが所有するほかのウィンドウもウィンドウ表示リストの先頭に順に配置されます。このウィンドウは同じ所有者に所有される他のウィンドウの前面に移動します。

一部の Linux ウィンドウマネージャーでは、標準ウィンドウをユーティリティウィンドウよりも前に順序付けすることはできません。

次の例は、アプリケーションの他のすべてのウィンドウ(同じ alwaysInFront 設定を持つもの)の前面にウィンドウを移動する方法を示したものです。 windowObj.orderToFront(); ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObj.stage.nativeWindow.orderToFront(); ウィンドウの HTMLLoader オブジェクト(またはルート HTML ウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 window.nativeWindow.orderToFront();
restore 最小化または最大化された状態から、このウィンドウを元の状態に戻します。このウィンドウが閉じられた後に、メソッドが呼び出された場合。 IllegalOperationErrorflash.errors:IllegalOperationError 最小化または最大化された状態から、このウィンドウを元の状態に戻します。

restore() を呼び出すと、displayStateChange イベントが送出されます。また、該当する場合は、move イベントおよび resize イベントも送出されます。ユーザーが restore コマンドを発行すると、システムクロムがキャンセル可能な displayStateChanging イベントを送出しますが、必要に応じて、この動作を元に戻すロジックに実装する必要があります。

ウィンドウが既に NativeWindowDisplayState.NORMAL の状態の場合、アクションは実行されず、イベントも送出されません。

状態変更の完了を検出するには、displayStateChange イベントを監視します。これは、どのプラットフォームでも送出されるイベントです。

次の例は、元に戻す操作のキャンセルを許可する方法を示したものです。 public function restoreWindow(nativeWin:NativeWindow):Boolean{ if(nativeWin.displayState != NativeWindowDisplayState.NORMAL){ var beforeState:String = nativeWin.displayState; var afterState:String = NativeWindowDisplayState.NORMAL; var displayStateChangingEvent:NativeWindowDisplayStateEvent = new NativeWindowDisplayStateEvent(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateChangingEvent); if(!displayStateChangingEvent.isDefaultPrevented()){ nativeWin.restore(); return true; } else { return false; } } return false; } 次の例は、ウィンドウ上の HTMLLoader オブジェクト(または HTML ウィンドウ)で実行される JavaScript ルーチンから元に戻す操作をキャンセルできるようにする方法を示したものです。 function restoreWindow(nativeWin){ if(window.nativeWindow.displayState != air.NativeWindowDisplayState.NORMAL){ var beforeState = window.nativeWindow.displayState; var afterState = air.NativeWindowDisplayState.NORMAL; var displayStateEvent = new air.NativeWindowDisplayStateEvent(air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); window.nativeWindow.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ window.nativeWindow.restore(); return true; } else { return false; } } return false; }
flash.display.NativeWindowDisplayStateflash.events.NativeWindowDisplayStateEvent
startMove このウィンドウのシステム制御による移動を開始します。このウィンドウが閉じられた後に、メソッドが呼び出された場合。 IllegalOperationErrorflash.errors:IllegalOperationError移動が正常に開始された場合は true、ウィンドウが最大化されている場合は false になります。 Boolean このウィンドウのシステム制御による移動を開始します。

mouseDown イベントから呼び出された場合、このメソッドはマウス操作による移動シーケンスを開始し、mouseUp イベントが発生するまで続行します。

その他のコードから呼び出された場合、このメソッドは、オペレーティングシステムのデフォルトのシーケンスに従い、キーボードまたはマウス操作による移動シーケンスを開始します。

移動シーケンスの間、ウィンドウの起点が移動すると、一連のイベントが送出されます。各増分移動について、最初に moving イベントが送出され、moving イベントがキャンセルされなかった場合は、ウィンドウの位置が更新されて move イベントが送出されます。moving イベントがキャンセルされた場合、移動シーケンスは直ちに終了します。

次の例は、mouseDown イベントに応答してウィンドウを移動する方法を示したものです。 var initOpts:NativeWindowInitOptions = new NativeWindowInitOptions(); var win:NativeWindow = new NativeWindow(initOpts); win.activate(); win.stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); function mouseDownHandler(event:MouseEvent):void { win.startMove(); }
startResize このウィンドウのシステム制御によるサイズ変更操作を開始します。このウィンドウが閉じられた後に、メソッドが呼び出された場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorサイズ変更が正常に開始された場合は true、ウィンドウが最大化されている場合は false になります。 BooleanedgeOrCornerStringBRこのウィンドウのサイズ変更する端または隅を指定する、NativeWindowResize クラスの定数です。使用できる値は次のとおりです。

垂直方向の配置水平方向の配置NativeWindowResize.TOP上揃え中央揃えNativeWindowResize.BOTTOM下揃え中央揃えNativeWindowResize.LEFT中央揃え左揃えNativeWindowResize.RIGHT中央揃え右揃えNativeWindowResize.TOP_LEFT上揃え左揃えNativeWindowResize.TOP_RIGHT上揃え右揃えNativeWindowResize.BOTTOM_LEFT下揃え左揃えNativeWindowResize.BOTTOM_RIGHT下揃え右揃えNativeWindowResize.NONE----

このウィンドウのシステム制御によるサイズ変更操作を開始します。

mouseDown イベントハンドラーから呼び出された場合、このメソッドはマウス操作によるサイズ変更シーケンスを開始し、mouseUp イベントが発生するまで続行します。

その他のコードから呼び出された場合、このメソッドは、オペレーティングシステムのデフォルトのシーケンスに従い、キーボードまたはマウス操作によるサイズ変更シーケンスを開始します。

サイズ変更シーケンスの間、ウィンドウのサイズが変化すると、一連のイベントが送出されます。各増分変化について、最初に resizing イベントが送出され、resizing イベントがキャンセルされなかった場合は、ウィンドウのサイズが更新されて resize イベントが送出されます。resizing イベントがキャンセルされた場合、サイズ変更シーケンスは直ちに終了します。

次の例は、mouseDown イベントに応答してウィンドウを移動する方法を示したものです。 stage.addEventListener(MouseEvent.MOUSE_DOWN, onResizeCommand); function onResizeCommand(event:MouseEvent):void { var win:NativeWindow = event.target.nativeWindow; var resizeFrom:String = ""; if (event.stageY < win.height * .33) { resizeFrom = NativeWindowResize.TOP; } else if (event.stageY > win.height * .66) { resizeFrom = NativeWindowResize.BOTTOM; } if (event.stageX < win.width * .33) { resizeFrom += NativeWindowResize.LEFT; } else if (event.stageX > win.width * .66) { resizeFrom += NativeWindowResize.RIGHT; } win.startResize(resizeFrom); }
flash.display.NativeWindowResize
active このウィンドウが、アクティブなアプリケーションウィンドウかどうかを示します。Boolean このウィンドウが、アクティブなアプリケーションウィンドウかどうかを示します。

activate() メソッドを使ってウィンドウをアクティブにします。

flash.display.NativeWindow.activate()flash.desktop.NativeApplication.activate()
alwaysInFront このウィンドウを、常に他のウィンドウ(他のアプリケーションのウィンドウも含む)よりも前面に表示するかどうかを指定します。Boolean このウィンドウを、常に他のウィンドウ(他のアプリケーションのウィンドウも含む)よりも前面に表示するかどうかを指定します。

システムでウィンドウが重なる順序において、各ウィンドウは 2 つのグループに分けられます。alwaysInFront に設定されているウィンドウのグループは、常に他のウィンドウよりも前面に表示されます。同じグループ内での重なりの順序は、通常の規則に従います。つまり、あるウィンドウをアクティブ化すると、そのウィンドウは同じグループの他のウィンドウよりも前面に表示されます。

alwaysInFrontfalse から true に変更すると、そのウィンドウは最前面に表示されます。このプロパティを true から false に変更すると、そのウィンドウは「alwaysInFront」ウィンドウの背面に表示されます。ただし、同じグループの他のウィンドウよりも前面に表示されたままになります。プロパティを現在の値に設定しても、ウィンドウの重なりの順序は変更されません。他のウィンドウに所有されるウィンドウの alwaysInFront プロパティを設定しても、影響はありません。

alwaysInFront プロパティが true に設定されているウィンドウは、他のアプリケーションのウィンドウがアクティブの場合でも、そのウィンドウより前面に表示されるので、このプロパティは慎重に設定する必要があります。

OS の動作に関する注意:

  • 一部の Linux ウィンドウマネージャーでは、alwaysInFront設定されているウィンドウはをフルスクリーンウィンドウの手前に表示することはできません。
  • Mac® OS X では、alwaysInFronttrue に設定しても、ウィンドウステージの displayState プロパティが fullScreen または fullScreenInteractive である場合には効果はありません。
次の例では、ウィンドウを強制的に他のウィンドウ(同様に強制的に前面に表示されていないウィンドウ)の前面に表示します。 windowObj.alwaysInFront = true; ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObject.stage.nativeWindow.alwaysInFront=true; ウィンドウの HTMLLoader オブジェクト(またはルート HTML ウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 window.nativeWindow.alwaysInFront = true;
bounds このウィンドウのサイズと位置です。flash.geom:Rectanglerectangle が null または無効な値を含んでいる場合。 ArgumentErrorArgumentErrorこのウィンドウが閉じられた後に、bounds プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウのサイズと位置です。

ウィンドウのサイズには、システムクロムが含まれます。ウィンドウのステージのサイズは、ウィンドウのサイズからシステムクロムのサイズを引いたものに等しくなります。ウィンドウの幅と高さを変更すると、ステージのstageWidth および stageHeight が変更されます。その逆も同様で、ステージのサイズを変更すると、ウィンドウのサイズが変更されます。

ルート HTML ウィンドウでは、outerWidth プロパティおよび outerHeight プロパティは、ウィンドウの height プロパティおよび width プロパティに等しくなります。innerWidth プロパティおよび innerHeight プロパティは、stage.stageWidth プロパティおよび stage.stageHeight プロパティから、ウィンドウに表示されている自動スクロールバーの幅および高さを引いた値に等しくなります。

resize イベントは、このウィンドウの幅または高さが変更されると常に送出されます。同様に、このウィンドウの起点(x,y)が変更されると、常に move イベントが送出されます。Mac OS および Windows では、bounds プロパティを直接に設定した場合 moving イベントや resizing イベントは送出されません。それに対し、Linux では、NativeWindow から moving イベントや resizing イベントが、bounds プロパティを直接に設定した場合でも送出されます。

ウィンドウの bounds プロパティを設定することは、ウィンドウの xywidth および height プロパティを設定することと同じです。同様に、個々の寸法のいずれかを設定することは、bounds プロパティを設定することと同じです。bounds プロパティを使用してすべてのサイズを同時に設定すると、送信されるイベントの数が少なくなります。

個々のサイズが設定される順序は保証されません。デスクトップ領域より大きくウィンドウを拡大できない Linux ウィンドウマネージャーでは、すべてのプロパティ変更を適用した最終的な結果が正規のウィンドウになる場合であっても、個別のプロパティに対する変更がブロックされる場合があります。

指定された幅または高さが、許容される幅または高さの下限よりも小さい場合や上限よりも大きい場合、許容される最も近い値にウィンドウの幅または高さが設定されます。幅と高さの下限および上限は、次の要因に基づいて決定されます。

  • NativeWindow オブジェクトの minSize および maxSize プロパティ。
  • オペレーティングシステムの制限による上限と下限。これは、NativeWindow.systemMinSizeNativeWindow.systemMaxSize の値です。
  • Adobe AIR におけるウィンドウ幅および高さの上限(4095 ピクセル)(AIR 1.5 以前では、ウィンドウの最大の幅と高さは各 2880 ピクセルです)。
  • 表示されているシステムクロムに必要な幅と高さの最小値

ウィンドウの位置またはサイズが変更されると、ピクセル値は最も近い整数に四捨五入されます。

次の例では、NativeWindow オブジェクトへの参照を含むウィンドウの境界を設定します。 windowObj.bounds = new Rectangle(200, 200, 1000, 800); ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObject.stage.nativeWindow.bounds = new Rectangle(20, 20, 800, 600); ウィンドウの HTMLLoader オブジェクト(またはルート HTML ウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 window.nativeWindow.bounds = new air.Rectangle(20, 20, 800, 600);
flash.display.NativeWindowInitOptions.resizable
closed このウィンドウが閉じられたかどうかを示します。Boolean このウィンドウが閉じられたかどうかを示します。

閉じられたウィンドウで次のプロパティにアクセスすると、無効な操作を示すエラーがスローされます。

  • title
  • bounds
  • xywidthheight
  • displayState
  • visible

同様に、閉じられたウィンドウで次のメソッドを呼び出すと、無効な操作を示すエラーがスローされます。

  • minimize()
  • maximize()
  • restore()
  • startResize()
  • startMove()
次の例は、ウィンドウの closed プロパティにアクセスする方法を示したものです。 var isWindowClosed:Boolean = windowObj.closed; ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 var isWindowClosed:Boolean = displayObject.stage.nativeWindow.closed; ウィンドウの HTMLLoader オブジェクト(またはルート HTML ウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 var isWindowClosed = window.nativeWindow.closed;
displayState このウィンドウの表示状態です。Stringこのウィンドウが閉じられた後に、displayState プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの表示状態です。

有効な値の定数は、NativeWindowDisplayState クラスで定義されています。

  • NativeWindowDisplayState.NORMAL
  • NativeWindowDisplayState.MINIMIZED
  • NativeWindowDisplayState.MAXIMIZED
次の例は、ウィンドウオブジェクトへの参照を指定して、現在のウィンドウの表示状態を取得する方法を示したものです。 var state:String = windowObj.displayState;
flash.display.NativeWindowDisplayState
height このウィンドウの高さ(ピクセル単位)です。Number値セットが null または無効な値の場合。 ArgumentErrorArgumentErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの高さ(ピクセル単位)です。

ウィンドウのサイズには、表示されているシステムウィンドウのクロムが含まれます。ウィンドウ内側の使用可能な表示領域の高さは、Stage.stageHeight プロパティから取得できます。

ウィンドウの height プロパティを変更すると、bounds プロパティから高さを変更した場合と同じ動作をします。

指定された高さが、許容される高さの下限よりも小さい場合や上限よりも大きい場合、許容される最も近い値にウィンドウの高さが設定されます。高さの下限および上限は、次の要因に基づいて決定されます。

  • NativeWindow オブジェクトの minSize.x および maxSize.x プロパティ
  • オペレーティングシステムの制限による上限と下限。これは、NativeWindow.systemMinSize.xNativeWindow.systemMaxSize.x の値です。
  • Adobe AIR でのウィンドウの最大の高さは 4095 ピクセルです(AIR 1.5 以前では 2880 ピクセルです)。

Linux の場合、height プロパティを設定する操作は非同期的に実行されます。

高さ変更の完了を検出するには、resize イベントを監視します。これは、どのプラットフォームでも送出されるイベントです。

ウィンドウの高さが変更されると、ピクセル値は最も近い整数に四捨五入されます。

flash.display.NativeWindow.boundsflash.display.Stage.stageHeight
isSupported クライアントシステムでネイティブウィンドウがサポートされているかどうかを示します。Boolean クライアントシステムでネイティブウィンドウがサポートされているかどうかを示します。 maxSize このウィンドウの最大サイズです。flash.geom:Point割り当てられているサイズが、オペレーティングシステムの最小および最大ウィンドウサイズの範囲外の場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorサイズが、そのコンテンツの現在の特権で禁止されている場合。 SecurityErrorSecurityErrorサイズが null または無効な値を含んでいる場合。 ArgumentErrorArgumentErrorこのウィンドウが閉じられた後に、maxSize プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの最大サイズです。

サイズ制限は、Point オブジェクトの座標として指定されます。ポイントの x プロパティはウィンドウの幅に相当し、y プロパティはウィンドウの高さに相当します。

maxSize の制限は、ActionScript コードとオペレーティングシステムの両方で呼び出されるウィンドウサイズの変更操作に対して強制的に設定されます。

現在の境界が新しい最大サイズよりも大きい場合、maxSize を設定すると、ウィンドウの境界が変化します。

指定された幅または高さが、許容される幅または高さの上限よりも大きい場合、許容される最も近い値にウィンドウの幅または高さが設定されます。幅と高さの下限および上限は、次の要因に基づいて決定されます。

  • オペレーティング システムによる上限。これは、NativeWindow.systemMaxSize の値です。
  • Adobe AIR におけるウィンドウ幅および高さの上限(各 4095 ピクセル)(AIR 1.5 以前では、ウィンドウの最大の幅と高さは各 2880 ピクセルです)。

注意:Mac OS X などの一部のオペレーティングシステムでは、ウィンドウを maxSize 値まで拡大しても、最大化したウィンドウはオペレーティングシステムの画面より小さくなります。このような場合でも、ウィンドウは最大化された表示状態となります。

次の例は、ウィンドウの許容最大サイズを設定する方法を示したものです。 windowObj.maxSize = new Point(1040,920); ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObject.stage.nativeWindow.maxSize = new Point(800,600); ウィンドウの HTMLLoader オブジェクト(またはルート HTML ウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 window.nativeWindow.maxSize = new air.Point(960,960);
flash.display.NativeWindow.systemMinSizeflash.display.NativeWindow.systemMaxSize
maximizable このウィンドウの作成に使用される最大化可能設定を報告します。Boolean十分な特権がない状態で false を設定しようとした場合。 SecurityErrorSecurityErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの作成に使用される最大化可能設定を報告します。

ウィンドウが作成された後で、maximizable 設定を変更することはできません。

注意:一部の Linux ウィンドウマネージャーでは、maximizable プロパティが false に設定されている場合でも、ユーザーがウィンドウを最大化できます。

flash.display.NativeWindowInitOptions.maximizable
menu このウィンドウのネイティブメニューです。flash.display:NativeMenu このウィンドウのネイティブメニューです。

NativeMenu オブジェクトがウィンドウの menu プロパティに割り当てられている場合、NativeWindow.supportsMenutrue に設定されていれば、ウィンドウにネイティブメニューが表示されます。ただし、ウィンドウの systemChrome プロパティが NativeWindowSystemChrome.NONE の場合は表示されません。

注意:NativeWindow.supportsMenufalse の場合、またはウィンドウの systemChrome プロパティが NativeWindowSystemChrome.NONE の場合も、メニューを割り当てることはできますが、効果はありません。使用しているオペレーティングシステムでウィンドウメニューがサポートされているか確認するには、必ず NativeWindow.supportsMenu プロパティを使用してください。その他の方法(Capabilities.os など)でサポートの有無を判断すると、プログラミングエラーの原因になる可能性があります(ターゲットとなり得るオペレーティングシステムの種類についての配慮が完全でない場合)。

flash.display.NativeWindow.supportsMenu
minSize このウィンドウの最小サイズです。flash.geom:Point割り当てられているサイズが、オペレーティングシステムの最小および最大ウィンドウサイズの範囲外の場合。 IllegalOperationErrorflash.errors:IllegalOperationErrorサイズが、そのコンテンツの現在の特権で禁止されている場合。 SecurityErrorSecurityErrorサイズが null または無効な値を含んでいる場合。 ArgumentErrorArgumentErrorこのウィンドウが閉じられた後に、minSize プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの最小サイズです。

サイズ制限は、Point オブジェクトの座標として指定されます。ポイントの x プロパティはウィンドウの幅に相当し、y プロパティはウィンドウの高さに相当します。

現在の境界が新しい最小サイズよりも小さい場合、minSize を設定すると、ウィンドウの境界が変化します。

minSize の制限は、ActionScript コードとオペレーティングシステムの両方で呼び出されるウィンドウサイズの変更操作に対して強制的に設定されます。

注意:表示されているシステムクロムの幅および高さによって、ウィンドウのサイズを指定された最小サイズにできない場合があります。

次の例は、ウィンドウの許容最小サイズを設定する方法を示したものです。 windowObj.minSize = new Point(200,80); ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObject.stage.nativeWindow.minSize = new Point(120,60); ウィンドウの HTMLLoader オブジェクト(またはルート HTML ウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 window.nativeWindow.minSize = new air.Point(80,60);
flash.display.NativeWindow.systemMinSizeflash.display.NativeWindow.systemMaxSize
minimizable このウィンドウの作成に使用される最小化可能設定を報告します。Boolean十分な特権がない状態で false を設定しようとした場合。 SecurityErrorSecurityErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの作成に使用される最小化可能設定を報告します。

ウィンドウが作成された後で、minimizable 設定を変更することはできません。

注意:一部の Linux ウィンドウマネージャーでは、minimizable プロパティが false に設定されている場合でも、ユーザーがウィンドウを最小化できます。

flash.display.NativeWindowInitOptions.minimizable
owner このウィンドウを所有する NativeWindow オブジェクトです。flash.display:NativeWindow このウィンドウを所有する NativeWindow オブジェクトです。

ウィンドウの所有関係は作成時に確立され、変更することはできません。所有者を持つウィンドウを作成するには、ウィンドウの作成時に使用した NativeWindowInitOptions オブジェクトの owner プロパティに所有者の NativeWindow オブジェクトを設定します。

注意:一部の Linux ウィンドウマネージャーでは、所有者ウィンドウがフルスクリーンモードの場合、所有されるウィンドウはその前面には表示されません。

flash.display.NativeWindowInitOptions.owner
resizable このウィンドウの作成に使用されるサイズ変更可能設定を報告します。Boolean十分な特権がない状態で false を設定しようとした場合。 SecurityErrorSecurityErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの作成に使用されるサイズ変更可能設定を報告します。

ウィンドウが作成された後で、resizable 設定を変更することはできません。

flash.display.NativeWindowInitOptions.resizable
stage このウィンドウの Stage オブジェクトです。flash.display:Stage このウィンドウの Stage オブジェクトです。Stage オブジェクトは、ActionScript 3.0 ベースの SWF コンテンツで使用されている表示リストアーキテクチャのルートオブジェクトです。

ステージは、ウィンドウの表示リストのルートです。ビジュアル表示オブジェクトをウィンドウに追加するには、そのオブジェクトをステージまたは既にこのステージの表示リストに存在する別のオブジェクトに追加します。ステージのサイズは、ウィンドウがシステムクロムを使用する場合のウィンドウクライアント領域のサイズです。システムクロムが使用されていない場合、ステージのサイズはウィンドウのサイズと等しくなります。

次の例は、NativeWindow インスタンスの stage プロパティを設定する方法を示したものです。 import flash.display.StageAlign; windowObj.stage.align = StageAlign.TOP_LEFT;
flash.display.Stage
supportsMenu AIR が現在のコンピューターシステムのネイティブのウィンドウメニューをサポートするかどうかを示します。Boolean AIR が現在のコンピューターシステムのネイティブのウィンドウメニューをサポートするかどうかを示します。

NativeWindow.supportsMenutrue の場合、NativeMenu オブジェクトがウィンドウの menu プロパティに割り当てられると、そのウィンドウにネイティブメニューが表示されます。ただし、ウィンドウの systemChrome プロパティが NativeWindowSystemChrome.NONE の場合は表示されません。使用しているオペレーティングシステムでネイティブウィンドウメニューがサポートされているか確認するには、必ず NativeWindow.supportsMenu プロパティを使用してください。その他の方法(Capabilities.os など)でサポートの有無を判断すると、プログラミングエラーの原因になる可能性があります(ターゲットとなり得るオペレーティングシステムの種類についての配慮が完全でない場合)。

注意:NativeWindow.supportsMenufalse の場合、またはウィンドウの systemChrome プロパティが NativeWindowSystemChrome.NONE の場合にメニューを割り当てることも可能ですが、何も実行されません。

flash.display.NativeMenuflash.desktop.NativeApplication.supportsMenu
supportsNotification AIR が現在のコンピューターシステムのウィンドウ通知キュー送信をサポートするかどうかを示します。Boolean AIR が現在のコンピューターシステムのウィンドウ通知キュー送信をサポートするかどうかを示します。

NativeWindow.supportsNotificationtrue の場合、ウィンドウの notifyUser() メソッドを呼び出すと、該当するイベントが発生したユーザーに対して視覚的なキューを表示します。この視覚的なキューは、ネイティブシステムのオペレーティングシステムの規則に従います。例えば、Windows® では、タスクバーアイコンが点滅します。

注意:notifyUser() の呼び出しは、NativeWindow.supportsNotificationfalse の場合でも可能です。ただし、何も実行されません。

flash.display.NativeWindow.notifyUser()
supportsTransparency AIR が透明なピクセルを含むネイティブのウィンドウをサポートするかどうかを示します。Boolean AIR が透明なピクセルを含むネイティブのウィンドウをサポートするかどうかを示します。

NativeWindow.supportsTransparencytrue である場合、ウィンドウの transparent プロパティが true に設定されていれば、ネイティブのウィンドウのピクセル透過性が適用されます。ウィンドウの transparent プロパティの値にかかわらず、NativeWindow.supportsTransparencyfalse であれば、すべてのピクセルの不透明度が 1 に設定されます。NativeWindow.supportsTransparencyfalse の場合、完全に透明なピクセルは黒としてレンダリングされます。使用しているオペレーティングシステムで透明度がサポートされているか確認するには、必ず NativeWindow.supportsTransparency プロパティを使用してください。その他の方法(Capabilities.os など)でサポートの有無を判断すると、プログラミングエラーの原因になる可能性があります(ターゲットとなり得るオペレーティングシステムの種類についての配慮が完全でない場合)。

注意:このプロパティの値は、オペレーティングシステムで設定されるユーザー環境設定に基づいて、アプリケーションの実行中に変化する可能性があります。

flash.display.NativeWindow.transparent
systemChrome このウィンドウの作成に使用されるシステムクロム設定を報告します。String十分な特権がない状態で false を設定しようとした場合。 SecurityErrorSecurityErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの作成に使用されるシステムクロム設定を報告します。

NativeWindow.systemChrome から返される値は、NativeWindowSystemChrome クラスで定義されている定数のいずれかになります。

ウィンドウが作成された後で、システムクロムの設定を変更することはできません。

次の例は、ウィンドウのシステムクロムタイプを取得する方法を示したものです。 var sysChromeType:String = windowObj.systemChrome; ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 var sysChromeType:String = displayObject.stage.nativeWindow.systemChrome; ウィンドウの HTMLLoader オブジェクト(またはルート HTML ウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 var sysChromeType = window.nativeWindow.systemChrome; 次の例は、新しいウィンドウを作成し、すべての子表示オブジェクトを新しいウィンドウに移動して、外見上のシステムクロムの設定と透明度の設定を変更する方法を示したものです。 import flash.display.NativeWindow; import flash.display.NativeWindowSystemChrome; import flash.display.NativeWindowInitOptions; public function deChromeWindow(oldWindow:NativeWindow):NativeWindow{ if(oldWindow.systemChrome != NativeWindowSystemChrome.NONE){ var newOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); newOptions.systemChrome = NativeWindowSystemChrome.NONE; newOptions.transparent = true; var newWindow:NativeWindow = new NativeWindow(newOptions); newWindow.stage.stageWidth = oldWindow.stage.stageWidth; newWindow.stage.stageHeight = oldWindow.stage.stageHeight; newWindow.stage.align = oldWindow.stage.align; newWindow.stage.scaleMode = oldWindow.stage.scaleMode; for(var i:int = 0; i < oldWindow.stage.numChildren; i++){ newWindow.stage.addChild(oldWindow.stage.getChildAt(i)); } newWindow.activate(); oldWindow.close(); return newWindow; } return oldWindow; }
flash.display.NativeWindowSystemChromeflash.display.NativeWindowInitOptions.systemChrome
systemMaxSize オペレーティングシステムで許可されている最大のウィンドウサイズです。flash.geom:Point オペレーティングシステムで許可されている最大のウィンドウサイズです。

サイズ制限は、Point オブジェクトの座標として指定されます。ポイントの x プロパティはウィンドウの幅に相当し、y プロパティはウィンドウの高さに相当します。

オペレーティングシステムのサイズ制限のほかに、AIR には 4095 x 4095 ピクセルの最大ウィンドウサイズ制限(AIR 1.5 以前では、2880 x 2880 ピクセル)があります。また、アプリケーションが NativeWindow オブジェクトの maxSize プロパティを使用して制限を設定することもできます。

systemMinSize オペレーティングシステムで許可されている最小のウィンドウサイズです。flash.geom:Point オペレーティングシステムで許可されている最小のウィンドウサイズです。

サイズ制限は、Point オブジェクトの座標として指定されます。ポイントの x プロパティはウィンドウの幅に相当し、y プロパティはウィンドウの高さに相当します。

title ウィンドウのタイトルです。Stringこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError ウィンドウのタイトルです。

タイトルを表示する場合は、ウィンドウのシステムクロムに加え、その他のシステムに依存した場所(タスクバーなど)に表示されます。

次の例では、ウィンドウオブジェクトのタイトルを設定します。 windowObj.title = "Window Title";
transparent このウィンドウの作成に使用される透明度設定を報告します。Boolean十分な特権がない状態で false を設定しようとした場合。 SecurityErrorSecurityErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの作成に使用される透明度設定を報告します。

ウィンドウが作成された後で、transparent プロパティを変更することはできません。透明度は、ウィンドウの視覚的な外観とマウス動作に影響します。Windows および Mac OS X の場合、ピクセルのアルファ値が特定のしきい値を下回っている場合、ウィンドウでマウスイベントはキャプチャされません。この値は、オペレーティングシステムによってはおよそ .06 ~ .01 の間で変わります。Linux の場合、このウィンドウでは完全に透明な領域の上のマウスイベントがキャプチャされます。したがって、ユーザーはデスクトップ上のその他のウィンドウおよびアイテムにアクセスすることができません。

注意:ウィンドウの透明度は必ずしもサポートされているとは限りません。ユーザーのオペレーティングシステムの設定で透明度が使用できない場合、ウィンドウは透明度なしで作成されます。透明にしている領域は、黒と合成されます。NativeWindow.supportsTransparency プロパティを使用して、ウィンドウの透明度をサポートするかどうかを指定します。

flash.display.NativeWindowInitOptions.transparent
type このウィンドウの作成に使用されるウィンドウタイプの設定を報告します。String十分な特権がない状態で false を設定しようとした場合。 SecurityErrorSecurityErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの作成に使用されるウィンドウの type の設定を報告します。

NativeWindow.type から返される値は、NativeWindowType クラスで定義されている定数のいずれかになります。

ウィンドウが作成された後で、type 設定を変更することはできません。

flash.display.NativeWindowTypeflash.display.NativeWindowInitOptions.type
visible このウィンドウが可視かどうかを指定します。Boolean十分な特権がない状態で false を設定しようとした場合。 SecurityErrorSecurityErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウが可視かどうかを指定します。

不可視のウィンドウはデスクトップに表示されませんが、ウィンドウのプロパティとメソッドはすべて有効です。

デフォルトでは、visiblefalse に設定されています。ウィンドウを表示するには、visibletrue に設定するか、NativeWindow.activate() を呼び出します。

このウィンドウに所有者がある場合、このウィンドウが表示されるかどうかは、所有側ウィンドウの可視状態によって決まります。所有側ウィンドウが非表示であれば、所有されている各ウィンドウの visible プロパティが true かどうかに関係なく、それらのウィンドウはすべて非表示になります。

注意:Mac OS X では、最小化されたウィンドウで visible=false に設定しても、ウィンドウアイコンはドックから削除されません。その後、ユーザーがドックアイコンをクリックするとウィンドウは可視状態に戻り、デスクトップに表示されます。

次の例は、ウィンドウの visible プロパティにアクセスする方法を示したものです。 windowObj.visible = true; ウィンドウステージの表示オブジェクトへの参照を使用した場合は、次のようになります。 displayObj.stage.nativeWindow.visible = true; ウィンドウの HTMLLoader オブジェクト(またはルート HTML ウィンドウ)で実行している JavaScript ルーチンからは、次のように処理します。 window.nativeWindow.visible = true;
activate()
width このウィンドウの幅(ピクセル単位)です。Number値セットが null または無効な値の場合。 ArgumentErrorArgumentErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError このウィンドウの幅(ピクセル単位)です。

ネイティブウィンドウの通知されるサイズには、表示されているシステムウィンドウのクロムが含まれます。ウィンドウ内側の使用可能な表示領域の幅は、Stage.stageWidth プロパティから取得できます。

ウィンドウの width プロパティを変更すると、bounds プロパティから幅を変更した場合と同じ動作をします。

指定された幅が、許容される幅の下限よりも小さい場合や上限よりも大きい場合、許容される最も近い値にウィンドウの幅が設定されます。幅の下限および上限は、次の要因に基づいて決定されます。

  • NativeWindow オブジェクトの minSize.y および maxSize.y プロパティ
  • オペレーティングシステムの制限による上限と下限。これは、NativeWindow.systemMinSize.yNativeWindow.systemMaxSize.y の値です。
  • Adobe AIR での最大ウィンドウ幅は 4095 ピクセルです(AIR 1.5 以前では 2880 ピクセルです)。

Linux の場合、width プロパティを設定する操作は非同期的に実行されます。

幅変更の完了を検出するには、resize イベントを監視します。これは、どのプラットフォームでも送出されるイベントです。

ウィンドウの幅が変更されると、ピクセル値は最も近い整数に四捨五入されます。

flash.display.NativeWindow.boundsflash.display.Stage.stageWidth
x オペレーティングシステムのデスクトップの起点を基準とした、このウィンドウの左上隅の水平軸座標です。Number値セットが null または無効な値の場合。 ArgumentErrorArgumentErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError オペレーティングシステムのデスクトップの起点を基準とした、このウィンドウの左上隅の水平軸座標です。

複数のモニターがあるシステムでは、x が負の値になることがあります。ウィンドウを以前の場所に再位置付けするために値を保存した場合、位置を復元したときにウィンドウが使用可能な場所に配置されていることを常に検証する必要があります。画面の解像度やモニターの配置を変更すると、ウィンドウが画面外に配置されることがあります。Screen クラスを使用して、デスクトップジオメトリに関する情報を取得してください。

ウィンドウの x プロパティを変更すると、bounds プロパティから位置を変更した場合と同じ動作をします。

Linux の場合、x プロパティを設定する操作は非同期的に実行されます。

位置変更の完了を検出するには、move イベントを監視します。これは、どのプラットフォームでも送出されるイベントです。

ウィンドウ の x 座標が変更されると、ピクセル値は最も近い整数に四捨五入されます。

flash.display.NativeWindow.boundsflash.display.Screen
y オペレーティングシステムのデスクトップの左上隅を基準とした、このウィンドウの左上隅の垂直軸座標です。Number値セットが null または無効な値の場合。 ArgumentErrorArgumentErrorこのウィンドウが閉じられた後に、プロパティがアクセスされた場合。 IllegalOperationErrorflash.errors:IllegalOperationError オペレーティングシステムのデスクトップの左上隅を基準とした、このウィンドウの左上隅の垂直軸座標です。

複数のモニターがあるシステムでは、y が負の値になることがあります。ウィンドウを以前の場所に再位置付けするために値を保存した場合、位置を復元したときにウィンドウが使用可能な場所に配置されていることを常に検証する必要があります。画面の解像度やモニターの配置を変更すると、ウィンドウが画面外に配置されることがあります。Screen クラスを使用して、デスクトップジオメトリに関する情報を取得してください。

ウィンドウの y プロパティを変更すると、bounds プロパティから位置を変更した場合と同じ動作をします。

Linux の場合、y プロパティを設定する操作は非同期的に実行されます。

位置変更の完了を検出するには、move イベントを監視します。これは、どのプラットフォームでも送出されるイベントです。

ウィンドウ の y 座標が変更されると、ピクセル値は最も近い整数に四捨五入されます。

flash.display.NativeWindow.boundsflash.display.Screen
Stage Stage クラスはメイン描画領域を表します。flash.display:DisplayObjectContainer Stage クラスはメイン描画領域を表します。

ブラウザー(Flash® Player)で実行されている SWF コンテンツの場合、Stage は Flash コンテンツが表示されている全体の領域を表します。デスクトップオペレーティングシステムの AIR で実行されているコンテンツの場合、各 NativeWindow オブジェクトが、対応する Stage オブジェクトを持ちます。

Stage オブジェクトはグローバルにアクセスすることはできません。アクセスするには、DisplayObject インスタンスの stage プロパティを介する必要があります。

Stage クラスには、DisplayObjectContainer、InteractiveObject、DisplayObject、EventDispatcher などの祖先クラスがあり、これらからプロパティやメソッドを継承します。これらのプロパティおよびメソッドの多くは、Stage オブジェクトに適用できないか、Stage オブジェクトで呼び出す際にセキュリティチェックを必要とします。セキュリティチェックを必要とするプロパティとメソッドについては、Stage クラスの一部として記述されています。

加えて、以下に示す継承プロパティは Stage オブジェクトに適用できません。これらを設定しようとすると、IllegalOperationError がスローされます。これらのプロパティは読み取ることはできますが、設定することはできないため、常にデフォルト値となります。

  • accessibilityProperties
  • alpha
  • blendMode
  • cacheAsBitmap
  • contextMenu
  • filters
  • focusRect
  • loaderInfo
  • mask
  • mouseEnabled
  • name
  • opaqueBackground
  • rotation
  • scale9Grid
  • scaleX
  • scaleY
  • scrollRect
  • tabEnabled
  • tabIndex
  • transform
  • visible
  • x
  • y

enterFrameexitFrameframeConstructedrender など、Stage クラスの一部であると予想される一部のイベントは、これらのイベントが使用されるすべての状況において Stage オブジェクトへの参照が存在するわけではないため、Stage のイベントにすることができません。Stage オブジェクトはこれらのイベントを送出できないため、これらのイベントは、代わりに、各 DisplayObject インスタンスによって送出されます。このため、任意の DisplayObject インスタンスにイベントリスナーを追加して、これらのイベントを監視できます。DisplayObject クラスの一部であるこれらのイベントはブロードキャストイベントと呼ばれ、特定の DisplayObject インスタンスをターゲットとするイベントとは区別されます。これ以外のブロードキャストイベントである activatedeactivate の 2 つは、DisplayObject のスーパークラスである EventDispatcher に属します。activate イベントと deactivate イベントは DisplayObject のブロードキャストイベントと同じように動作します。ただし、すべての DisplayObject インスタンスだけでなく、すべての EventDispatcher インスタンスおよび EventDispatcher の他のサブクラスのインスタンスによって送出される点が異なります。ブロードキャストイベントの詳細については、DisplayObject クラスに関する説明を参照してください。

次の例では、StageExample クラスを使用して、ステージのアクティブ化またはサイズ変更に伴い、イベントを送出します。ここでは以下の手順を実行します。
  1. 最初にクラスコンストラクターは、Flash Player のウィンドウのサイズに関係なく、activateHandler() メソッドおよび resizeHandler() メソッドを使用して、固定する Flash アプリケーションを設定します。
  2. マウスの左ボタンをクリックすると、activateHandler()メソッドが実行されます。
  3. ステージのサイズを変更すると、resizeHandler() メソッドが実行されます。
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; public class StageExample extends Sprite { public function StageExample() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.ACTIVATE, activateHandler); stage.addEventListener(Event.RESIZE, resizeHandler); } private function activateHandler(event:Event):void { trace("activateHandler: " + event); } private function resizeHandler(event:Event):void { trace("resizeHandler: " + event); trace("stageWidth: " + stage.stageWidth + " stageHeight: " + stage.stageHeight); } } }
flash.display.DisplayObjectstageVideoAvailability stageVideos プロパティの状態が変更されると Stage オブジェクトによって送出されます。flash.events.StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITYflash.events.StageVideoAvailabilityEvent stageVideos プロパティの状態が変更されると Stage オブジェクトによって送出されます。 orientationChange ステージの方向が変更されると Stage オブジェクトによって送出されます。flash.events.StageOrientationEvent.ORIENTATION_CHANGEflash.events.StageOrientationEvent ステージの方向が変更されると Stage オブジェクトによって送出されます。

ユーザーがデバイスを回転するとき、スライドアウトキーボードを開くとき、または setAspectRatio() を呼び出すとき、方向の変更が発生することがあります。

注意:autoOrients プロパティが false の場合、デバイスの回転時にステージの方向は変更されません。したがって、StageOrientationEvents は、autoOrientstrue の場合にのみデバイスの回転に対して送出されます。

orientationChanging ステージの方向が変更を開始すると Stage オブジェクトによって送出されます。flash.events.StageOrientationEvent.ORIENTATION_CHANGINGflash.events.StageOrientationEvent ステージの方向が変更を開始すると Stage オブジェクトによって送出されます。

重要:orientationChanging イベントは Android デバイスでは送出されません。

注意:autoOrients プロパティが false の場合、デバイスの回転時にステージの方向は変更されません。したがって、StageOrientationEvents は、autoOrientstrue の場合にのみデバイスの回転に対して送出されます。

fullScreen Stage オブジェクトが、フルスクリーンモードに設定または設定解除されると送出されます。flash.events.FullScreenEvent.FULL_SCREENflash.events.FullScreenEvent Stage オブジェクトが、フルスクリーンモードに設定または設定解除されると送出されます。フルスクリーンモードの変更は、ActionScript、ユーザーによるキーボードショートカットの呼び出し、または現在のフォーカスのフルスクリーンウィンドウからの移動によって開始できます。 resize Stage オブジェクトの scaleMode プロパティが StageScaleMode.NO_SCALE に設定され、SWF ファイルのサイズが変更されたときに送出されます。flash.events.Event.RESIZEflash.events.Event Stage オブジェクトの scaleMode プロパティが StageScaleMode.NO_SCALE に設定され、SWF ファイルのサイズが変更されたときに送出されます。 mouseLeave ポインターがステージ領域から離れたときに、Stage オブジェクトによって送出されます。flash.events.Event.MOUSE_LEAVEflash.events.Event ポインターがステージ領域から離れたときに、Stage オブジェクトによって送出されます。マウスボタンが押された場合、イベントは送出されません。 addChildAt この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。Stage オブジェクトの addChildAt() メソッドを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityErrorchild パラメーターで渡す DisplayObject インスタンスです。 flash.display:DisplayObjectchildflash.display:DisplayObjectこの DisplayObjectContainer インスタンスの子として追加する DisplayObject インスタンスです。 indexint子を追加するインデックス位置です。既にオブジェクトが置かれているインデックス位置を指定すると、その位置にあるオブジェクトとその上に位置するすべてのオブジェクトが、子リスト内で 1 つ上の位置に移動します。 この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。子インスタンスは、指定されたインデックス位置に追加されます。インデックス 0 は、この DisplayObjectContainer オブジェクトの表示リストの背景または一番下を表します。

例えば、a、b、c というラベルの 3 個の表示オブジェクトをインデックス位置 0、2、1 にそれぞれ配置すると、以下のようになります。

既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。

addChild この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。Stage オブジェクトの addChild() メソッドを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityErrorchild パラメーターで渡す DisplayObject インスタンスです。 flash.display:DisplayObjectchildflash.display:DisplayObjectこの DisplayObjectContainer インスタンスの子として追加する DisplayObject インスタンスです。 この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。子インスタンスは、この DisplayObjectContainer インスタンスにある他のすべての子の前(上)に追加されます(特定のインデックス位置に子を追加する場合は、addChildAt() メソッドを使用します)。

既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。

注意:コマンド stage.addChild() は、セキュリティに関する問題や読み込まれた他の SWF ファイルとの競合など、パブリッシュされた SWF ファイルで発生する問題の原因になることがあります。 ランタイムに読み込まれた SWF ファイルの数に関わりなく、Flash ランタイムインスタンス内に存在する Stage は 1つだけです。したがって、通常は、オブジェクトを Stage に直接追加しないでください。Stage に含められるオブジェクトはルートオブジェクトだけです。DisplayObjectContainer を作成して、表示リストのすべてのアイテムを含めます。必要に応じて、その DisplayObjectContainer を Stage に追加します。

addEventListener イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。Stage オブジェクトの addEventListener メソッドを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。この状態を回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityErrortypeStringイベントのタイプです。 listenerFunctionイベントを処理するリスナー関数です。この関数は、次の例のように、Event オブジェクトを唯一のパラメーターとして受け取り、何も返さないものである必要があります。 function(evt:Event):void

関数の名前は任意に付けられます。

useCaptureBooleanfalse リスナーが、キャプチャ段階、またはターゲットおよびバブリング段階で動作するかどうかを判断します。useCapturetrue に設定すると、リスナーはキャプチャ段階のみでイベントを処理し、ターゲット段階またはバブリング段階では処理しません。useCapturefalse に設定すると、リスナーはターゲット段階またはバブリング段階のみでイベントを処理します。3 つの段階すべてでイベントを受け取るには、addEventListener を 2 回呼び出します。useCapturetrue に設定して呼び出し、useCapturefalse に設定してもう一度呼び出します。 priorityint0イベントリスナーの優先度レベルです。優先度は、符号付き 32 ビット整数で指定します。数値が大きくなるほど優先度が高くなります。優先度が n のすべてのリスナーは、優先度が n-1 のリスナーよりも前に処理されます。複数のリスナーに対して同じ優先度が設定されている場合、それらは追加された順番に処理されます。デフォルトの優先度は 0 です。 useWeakReferenceBooleanfalseリスナーへの参照が強参照と弱参照のいずれであるかを判断します。デフォルトである強参照の場合は、リスナーのガベージコレクションが回避されます。弱参照では回避されません。

クラスレベルメンバー関数はガベージコレクションの対象外であるため、クラスレベルメンバー関数の useWeakReference は、ガベージコレクションの制限とは無関係に true に設定できます。ネストされた内部の関数であるリスナーに対して useWeakReferencetrue に設定すると、その関数はガベージコレクションされ、永続的ではなくなります。inner 関数に対する参照を作成(別の変数に保存)した場合、その関数はガベージコレクションされず、永続化された状態のままになります。

イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。イベントリスナーは、特定のタイプのイベント、段階、および優先度に関する表示リスト内のすべてのノードに登録できます。

イベントリスナーが正常に登録された後に、addEventListener() をさらに呼び出して優先度を変更することはできません。リスナーの優先度を変更するには、最初に removeListener() を呼び出す必要があります。その後、同じリスナーを新しい優先度レベルで再度登録できます。

リスナーが登録された後に、addEventListener()type または useCapture に別の値を設定)を再度呼び出すと、別のリスナー登録が作成されることに注意してください。例えば、最初にリスナーを登録するときに useCapturetrue に設定すると、そのリスナーはキャプチャ段階のみでリスニングします。同じリスナーオブジェクトを使用して再度 addEventListener() を呼び出すと(このとき、useCapturefalse を設定)、異なる 2 つのリスナーが登録されます。1 つはキャプチャ段階でリスニングするリスナーで、もう 1 つはターゲット段階とバブリング段階でリスニングするリスナーです。

ターゲット段階またはバブリング段階のみを対象とするイベントリスナーを登録することはできません。登録時にこれらの段階が組み合わされるのは、バブリングはターゲットノードの祖先にしか適用されないためです。

イベントリスナーが不要になった場合は、removeEventListener() を呼び出して、イベントリスナーを削除します。削除しない場合、メモリの問題が発生する可能性があります。ガベージコレクションでは、オブジェクトの送出が行われている限り、リスナーを削除しないので、イベントリスナーは自動的には削除されません(useWeakReference パラメーターが true に設定されていない場合)。

EventDispatcher インスタンスをコピーしても、それに関連付けられているイベントリスナーはコピーされません。新しく作成したノードにイベントリスナーが必要な場合は、ノードを作成した後に、リスナーを関連付ける必要があります。ただし、EventDispatcher インスタンスを移動した場合は、関連付けられているイベントリスナーも一緒に移動されます。

イベントがノードで処理されるときに、イベントリスナーがそのノードに登録中であれば、イベントリスナーは現在の段階ではトリガーされません。ただし、バブリング段階など、イベントフローの後の段階でトリガーすることができます。

イベントがノードで処理されているときにイベントリスナーがノードから削除された場合でも、イベントは現在のアクションによってトリガーされます。削除された後は、その後の処理で再び登録されない限り、イベントリスナーは二度と呼び出されません。

assignFocus objectToFocus によって指定されたインタラクティブオブジェクトに対して、direction パラメーターで指定されたフォーカスの方向でキーボードフォーカスを設定します。フォーカスをターゲットに設定できない場合、または方向が有効なタイプではない場合。 ErrorErrorobjectToFocusflash.display:InteractiveObjectフォーカスを設定するオブジェクト。Stage 上の任意のエレメントからフォーカスをクリアする場合は null になります。 directionStringobjectToFocus がフォーカスを設定される元の方向。有効な値は、FocusDirection クラスに定数で列挙されています。 キーボードフォーカスをインタラクティブオブジェクトに割り当て、どこから方向フォーカスが来るのかを指定します。 objectToFocus によって指定されたインタラクティブオブジェクトに対して、direction パラメーターで指定されたフォーカスの方向でキーボードフォーカスを設定します。

フォーカス方向の概念は、アプリケーション(またはアプリケーションフレームワーク)で定義する必要があります。インタラクティブオブジェクト固有のフォーカス並べ替え設定が存在しません。ただし、並べ替え方針を確立するには、利用可能な他のプロパティを使用することもできます。例えば、インタラクティブオブジェクトを Stage 内のその位置によって、または表示リストで並べ替えることができます。assignFocus() を呼び出すことは、Stage.focus プロパティを設定することと同じであり、さらに、フォーカスを設定する元の方向を示すという追加の機能もあります。

objectToFocus は、フォーカスを受け取ると focusIn イベントを送出します。FocusEvent オブジェクトの direction プロパティは、direction パラメーターの設定を報告します。

HTMLLoader オブジェクトを objectToFocus パラメーターに割り当てた場合、HTMLLoader オブジェクトは、direction パラメーター値に基づいて、HTML DOM 内で適切なフォーカス可能なオブジェクトを選択します。値が FocusDirection.BOTTOM である場合、読み取り順の最後にある HTML DOM 内のフォーカス可能なオブジェクトにフォーカスが設定されます。値が FocusDirection.TOP である場合、読み取り順の最初にある HTML DOM 内のフォーカス可能なオブジェクトにフォーカスが設定されます。値が NONE である場合は、現在フォーカスがあるエレメントを変更せずに、HTMLLoader オブジェクトにフォーカスが設定されます。

flash.display.Stage.focusflash.display.FocusDirectionflash.events.FocusEvent
dispatchEvent イベントをイベントフローに送出します。Stage オブジェクトの dispatchEvent() メソッドを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError値が true の場合、イベントは正常に送出されました。値が false の場合、イベントの送出に失敗したか、イベントで preventDefault() が呼び出されたことを示しています。 Booleaneventflash.events:Eventイベントフローに送出されるイベントオブジェクトです。イベントが再度送出されると、イベントのクローンが自動的に作成されます。イベントが送出された後にそのイベントの target プロパティは変更できないため、再送出処理のためにはイベントの新しいコピーを作成する必要があります。 イベントをイベントフローに送出します。イベントターゲットは EventDispatcher オブジェクトです。これに対して dispatchEvent() メソッドが呼び出されます。 getChildAtflash.display:DisplayObjectindexintgetChildIndexintchildflash.display:DisplayObjecthasEventListener EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。Stage オブジェクトの hasEventListener() メソッドを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError指定したタイプのリスナーが登録されている場合は true、それ以外の場合は false です。 BooleantypeStringイベントのタイプです。 EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。これにより、EventDispatcher オブジェクトがイベントタイプの処理をイベントフロー階層のどこで変更したかを判断できます。特定のイベントタイプが実際にイベントリスナーをトリガーするかどうかを判別するには、willTrigger() を使用します。

hasEventListener()willTrigger() の違いは、hasEventListener() では自身が属するオブジェクトのみ検証され、willTrigger() では type パラメーターで指定されたイベントのイベントフロー全体が検証されることです。

hasEventListener() が LoaderInfo オブジェクトから呼び出された場合は、呼び出し側がアクセスできるリスナーのみ考慮されます。

invalidate invalidate() メソッドは、表示リストをレンダリングする必要のある次の機会に、表示オブジェクトに警告するよう Flash ランタイムに通知します。例えば、再生ヘッドを新しいフレームに進める場合などです。ステージを更新する必要のある次の機会に、表示オブジェクトのプロパティを更新するよう Flash ランタイムに通知します。 invalidate() メソッドは、表示リストをレンダリングする必要のある次の機会に、表示オブジェクトに警告するよう Flash ランタイムに通知します。例えば、再生ヘッドを新しいフレームに進める場合などです。invalidate() メソッドを呼び出すと、表示リストが次にレンダリングされるときに、render イベントを受け取るように登録されている各表示オブジェクトに対して、Flash ランタイムから render イベントが送出されます。その都度 invalidate() メソッドを呼び出す必要があります(Flash ランタイムに render イベントを送出させたい場合)。

render イベントによって、実際に表示される直前に表示リストに変更を加えることができます。こうすることで、表示リストへの更新を最後まで遅らせることが可能です。この方法では、画面の更新を不必要に行わなくてよいため、パフォーマンスを向上させることができます。

render イベントは、stage.invalidate() メソッドを呼び出すコードと同じセキュリティドメイン内の表示オブジェクト、または Security.allowDomain() メソッドで許可が与えられているセキュリティドメインの表示オブジェクトに対してのみ、送出されます。

flash.events.Event.RENDER
isFocusInaccessible Stage.focus プロパティがセキュリティ上の理由で null を返すかどうかを決定します。フォーカスを持つオブジェクトが、SWF ファイルがアクセスできないセキュリティ Sandbox に属している場合、true を返します。 BooleanStage.focus プロパティがセキュリティ上の理由で null を返すかどうかを決定します。 Stage.focus プロパティがセキュリティ上の理由で null を返すかどうかを決定します。つまり、フォーカスを持つオブジェクトが、SWF ファイルがアクセスできないセキュリティ Sandbox に属している場合、isFocusInaccessibletrue を返します。 removeChildAt DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。Stage オブジェクトの removeChildAt() メソッドを呼び出すと、削除するオブジェクトと同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。これを回避するには、そのオブジェクトの所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError削除された DisplayObject インスタンスです。 flash.display:DisplayObjectindexint削除する DisplayObject の子インデックスです。 DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。DisplayObjectContainer の子より上位にある表示オブジェクトのインデックス位置は 1 つ下がります。

ガベージコレクターは、未使用のメモリスペースの再割り当てを行います。 変数またはオブジェクトがアクティブに参照されなくなり、任意の場所に保存されていない場合、ガベージコレクターによってメモリ内が探索され、それらに対する参照が存在しなければメモリスペースを占有している変数またはオブジェクトが一掃されます。

removeChildflash.display:DisplayObjectchildflash.display:DisplayObjectsetAspectRatio 指定された縦横比になるように、ステージの方向を設定します。newAspectRatio パラメーターとして渡された値は無効です。この値は、StageAspectRatio クラスに定義されている定数のいずれかに一致する必要があります。 ArgumentErrorArgumentErrornewAspectRatioString目的の縦横比のタイプコード(StageAspectRatio.PORTRAIT または StageAspectRatio.LANDSCAPE)。 指定された縦横比になるように、ステージの方向を設定します。

メソッドの呼び出しによってステージの向きが変わる場合、Stage オブジェクトから orientationChange イベントが送出されます。

デバイスの方向がサポートされているかどうかを調べるには、Stage.supportsOrientantionChange プロパティの値を確認します。

AIR プロファイルのサポート:この機能はモバイルデバイスでサポートされますが、デスクトップオペレーティングシステムまたはテレビ用 AIR デバイスではサポートされません。Stage.supportsOrientantionChange プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

StageAspectRatiosupportsOrientationChange
setChildIndex 表示オブジェクトコンテナの既存の子の位置を変更します。Stage オブジェクトの setChildIndex() メソッドを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityErrorchildflash.display:DisplayObjectインデックス番号を変更する子 DisplayObject インスタンスです。 indexintchild 表示オブジェクトの結果のインデックス番号です。 表示オブジェクトコンテナの既存の子の位置を変更します。これは、子オブジェクトのレイヤーに影響します。例えば、a、b、c というラベルの 3 個の表示オブジェクトをインデックス位置 0、1、2 にそれぞれ配置すると、以下のようになります。

setChildIndex() を使用し、既に占有されているインデックス位置を指定した場合、表示オブジェクトの前の位置と新しい位置の間にある位置だけが変化します。その他は変化しません。現在のインデックスよりも小さいインデックスに子を移動すると、その間のすべての子が、それぞれのインデックス参照について 1 増加します。現在のインデックスよりも大きいインデックスに子を移動すると、その間のすべての子が、それぞれのインデックス参照について 1 減少します。例えば、上記の例の表示オブジェクトコンテナの名前が container である場合、次に示すコードを呼び出すことによって、a および b というラベルが付けられた表示オブジェクトの位置を入れ替えることができます。

container.setChildIndex(container.getChildAt(1), 0);

このコードによって、次に示すようなオブジェクトの配置になります。

setOrientation 指定された方向にステージを設定します。newOrientation パラメーターとして渡された値は無効です。値は、StageOriention クラスで定義された定数の 1 つと一致する必要があります。ただし、StageOrientation.UNKNOWN 定数は除きます。 ArgumentErrorArgumentErrornewOrientationStringステージの変更後の方向です。 指定された方向にステージを設定します。

newOrientation パラメーターを次の 4 つの値のいずれかに設定します。これらは、StageOrientation クラスで定数として定義されています。

StageOrientation 定数ステージの方向StageOrientation.DEFAULTステージの方向をデフォルトの方向(右側が上)に設定します。StageOrientation.ROTATED_RIGHTステージの方向を右回転に設定します。StageOrientation.ROTATED_LEFTステージの方向を左回転に設定します。StageOrientation.UPSIDE_DOWNステージの方向を上下反転に設定します。

パラメーターに StageOrientation.UNKNOWN や、表に記載された値以外は設定しないでください。

変更先のデバイスの方向がサポートされているかどうかを調べるには、Stage.supportsOrientantionChange プロパティの値を確認します。現在のデバイスでサポートされている方向を判断するには、supportedOrientations プロパティで提供されているリストを確認します。

方向の設定は非同期操作です。これは、setOrientation() メソッドを呼び出した直後に完了するとは限りません。方向の変更がいつ完了したかを判断するには、orientationChange イベントのイベントリスナーを追加します。

重要:AIR 2.6 より前の Android デバイスでは、setOrientation() メソッドはサポートされていません。

autoOrientssupportsOrientationChangeStageOrientationEventStageOrientationorientationChangeflash.events:StageOrientationEventsetOrientation() メソッドを呼び出した結果として、ステージのサイズが変更されました。 setOrientation() メソッドを呼び出した結果として、ステージのサイズが変更されました。
swapChildrenAtindex1intindex2intswapChildren 指定された 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。Stage オブジェクトの swapChildrenAt() メソッドを呼び出すと、入れ替わるどちらかのオブジェクトの所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。これを回避するには、オブジェクト所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityErrorchild1flash.display:DisplayObject先頭の子オブジェクトです。 child2flash.display:DisplayObject2 番目の子オブジェクトです。 指定された 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。表示オブジェクトコンテナの他のすべての子オブジェクトは、同じインデックス位置に残されます。 willTrigger 指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。Stage オブジェクトの willTrigger() メソッドを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError指定したタイプのリスナーがトリガーされた場合は true、それ以外の場合は false です。 BooleantypeStringイベントのタイプです。 指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。指定されたタイプのイベントがこの EventDispatcher オブジェクトまたはその子孫に送出されたときに、イベントリスナーがイベントフローの任意の段階でトリガーされる場合、このメソッドは true を返します。

hasEventListener()willTrigger() メソッドの違いは、hasEventListener() では自身が属するオブジェクトのみが検証され、willTrigger() メソッドでは type パラメーターで指定されたイベントのイベントフロー全体が検証されることです。

willTrigger() が LoaderInfo オブジェクトから呼び出された場合は、呼び出し側がアクセスできるリスナーのみが考慮されます。

align Flash Player またはブラウザーでのステージの配置を指定する StageAlign クラスの値です。String Flash Player またはブラウザーでのステージの配置を指定する StageAlign クラスの値です。使用できる値は次のとおりです。

垂直方向の配置水平方向StageAlign.TOP上揃え中央揃えStageAlign.BOTTOM下揃え中央揃えStageAlign.LEFT中央揃え左揃えStageAlign.RIGHT中央揃え右揃えStageAlign.TOP_LEFT上揃え左揃えStageAlign.TOP_RIGHT上揃え右揃えStageAlign.BOTTOM_LEFT下揃え左揃えStageAlign.BOTTOM_RIGHT下揃え右揃え

align プロパティは、メイン SWF ファイルであるステージ所有者と同じセキュリティ Sandbox 内にあるオブジェクトでのみ使用できます。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.alowInsecureDomain() メソッドを呼び出して呼び出し元オブジェクトのドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。

flash.display.StageAlign
allowsFullScreen このステージでフルスクリーンモードを使用できるようにするかどうかを指定します。 Boolean このステージでフルスクリーンモードを使用できるようにするかどうかを指定します。 autoOrients デバイスの方向が変更された場合に、ステージの方向が自動的に変更されるようにするかどうかを指定します。Boolean デバイスの方向が変更された場合に、ステージの方向が自動的に変更されるようにするかどうかを指定します。

このプロパティの初期値は、アプリケーション記述子の autoOrients エレメントから派生します。デフォルトは false です。プロパティを false に変更すると、動作は保証されません。一部のデバイスでは、ステージでは現在の方向が維持されます。他のデバイスでは、ステージの方向は各デバイスで定義されている標準に従って変更され、その後ステージの方向変更は行われません。

AIR プロファイルのサポート:この機能はモバイルデバイスでサポートされますが、デスクトップオペレーティングシステムまたはテレビ用 AIR デバイスではサポートされません。Stage.supportsOrientantionChange プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

deviceOrientationsupportsOrientationChange
colorCorrectionSupport Flash ランタイムが実行されているオペレーティングシステムがカラー補正をサポートしているかどうか、および Flash ランタイムがメイン(主)モニターのカラープロファイルを解読できるかどうかを示します。String Flash ランタイムが実行されているオペレーティングシステムがカラー補正をサポートしているかどうか、および Flash ランタイムがメイン(主)モニターのカラープロファイルを解読できるかどうかを示します。また、このプロパティはホストシステム(通常はブラウザー)のカラー補正のデフォルト状態を返します。現在、戻り値は次のとおりです。

3 つの値として、flash.display.ColorCorrectionSupport クラスの対応する定数を持つストリングを使用できます。

  • "unsupported":カラー補正を使用できません。
  • "defaultOn":常にカラー補正を実行します。
  • "defaultOff":常にカラー補正を実行しません。
次の例では、現在の環境がカラー補正をサポートしているかどうかをテキストフィールドに設定するイベントハンドラーを示します。最初に stage.colorCorrectionSupport の値をチェックし、その値が ColorCorrectionSuppor クラスの DEFAULT_ON または DEFAULT_OFF の値になっているかどうかを確認します。プロパティがどちらかの値になっていれば、テキストフィールドには現在の値が表示されます。プロパティの値が DEFAULT_ONDEFAULT_OFF のどちらでもない場合は、テキストフィールドに "unsupported" の文字が表示されます。 function addHandler(add_event:Event) { if (stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_ON || stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_OFF) { lblHasCM.text = "stage.colorCorrectionSupport: " + stage.colorCorrectionSupport; } else { lblHasCM.text = "stage.colorCorrectionSupport: unsupported"; } }
flash.display.ColorCorrectionSupportcolorCorrection
colorCorrection ディスプレイに対する Flash ランタイムのカラー補正を制御します。Stringモニターのカラー補正を使用することを試行します。 ディスプレイに対する Flash ランタイムのカラー補正を制御します。カラー補正は、メインモニターに有効な ICC カラープロファイルが割り当てられている場合にのみ機能します。このカラープロファイルは、デバイスの特別なカラー属性を指定します。デフォルトでは、Flash ランタイムはそのホスト(通常はブラウザー)と同じカラー補正を使用しようとします。

現在のシステムでカラー補正が使用できるかどうかとデフォルトの状態を確認するには、Stage.colorCorrectionSupport プロパティを使用します。カラー補正を利用できる場合、ステージのすべてのカラーは、最も標準的なカラー空間である RGB カラー空間にあると見なされます。カラー補正中、入力デバイスのソースプロファイルは考慮されません。入力カラー補正は適用されません。ステージ出力のみがメインモニターの ICC カラープロファイルにマップされます。

カラー管理をアクティブにする一般的な利点としては、予測可能な一貫性のあるカラー、変換性能の向上、正確なプルーフィング、より効率的なクロスメディア出力などがあります。ただし、色域がデバイスごとに異なり、元のイメージとも異なるため、カラー管理では完全な変換はできない点にご注意ください。また、カラー管理では、カスタムプロファイルも編集済みプロファイルも必要ありません。カラープロファイルは、ブラウザー、オペレーティングシステム(OS)、OS 拡張、出力デバイス、アプリケーションサポートに依存します。

カラー補正を適用すると、Flash ランタイムのパフォーマンスが低下します。Flash ランタイムのカラー補正は、ドキュメントスタイルのカラー補正です。このため、SWF ムービーはすべて暗黙の sRGB プロファイルを持つドキュメントと見なされます。SWF ファイル(ドキュメント)を画面のカラー領域に表示する場合は、Stage.colorCorrectionSupport プロパティを使用して、Flash ランタイムに正しいカラーを通知します。Flash ランタイムでは、モニター間の補正のみを行い、カメラやスキャナーなどの入力デバイス間の補正は行いません。

3 つの値として、flash.display.ColorCorrection クラスの対応する定数を持つストリングを使用できます。

  • "default":ホストシステムと同じカラー補正を使用します。
  • "on":常にカラー補正を実行します。
  • "off":常にカラー補正を実行しません。
次の例では、現在の SWF ファイルのカラー補正を切り替え、テキストフィールドにカラー補正の現在の状態を設定するイベントハンドラーを示します。Stage.colorCorrection 値がColorCorrection クラスの値でない場合、イベントハンドラーからエラーが返されます。 function addHandler(add_event:Event) { switch(stage.colorCorrection) { case ColorCorrection.ON: stage.colorCorrection = ColorCorrection.OFF; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.OFF: stage.colorCorrection = ColorCorrection.DEFAULT; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.DEFAULT: stage.colorCorrection = ColorCorrection.ON; lblCMEnableState.text = "State: " + stage.colorCorrection; break; default: lblCMEnableState.text = "Error."; break; }
flash.display.ColorCorrectioncolorCorrectionSupport
coloruintdeviceOrientation デバイスの物理的な方向です。String デバイスの物理的な方向です。

サイドアウトキーボードがあるデバイスでは、デバイスの方向を決定するときに、キーボードの状態の方がAccelerometer で検出される回転よりも高い優先度を持ちます。そのため、サイドマウントキーボードを備える横長の縦横比のデバイスでは、ユーザーがデバイスをどのような方法で持っていても、キーボードが開いているときは、deviceOrientation プロパティで ROTATED_LEFT がレポートされます。

このプロパティの値を設定したり、比較する場合には、StageOrientation クラスに定義されている定数を使用します。

AIR プロファイルのサポート:この機能はモバイルデバイスでサポートされますが、デスクトップオペレーティングシステムまたはテレビ用 AIR デバイスではサポートされません。Stage.supportsOrientationChange プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

autoOrientsStageOrientation
displayState 使用する表示状態を指定する StageDisplayState クラスの値です。StringStage オブジェクトの displayState プロパティを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。設定ダイアログボックスの表示中にユーザー応答なしで displayState プロパティを設定しようとした場合や、param または embed HTML タグの allowFullScreen 属性が true に設定されていない場合は、セキュリティエラーがスローされます。 SecurityErrorSecurityError 使用する表示状態を指定する StageDisplayState クラスの値です。使用できる値は次のとおりです。
  • StageDisplayState.FULL_SCREEN は、キーボード入力を無効にして、ユーザーの画面全体にステージを拡張するように AIR アプリケーションまたは Flash ランタイムを設定します。
  • StageDisplayState.FULL_SCREEN_INTERACTIVE は、キーボード入力を有効にして、ユーザーの画面全体にステージを拡張するように AIR アプリケーションを設定します (Flash Player で実行されるコンテンツについては使用できません)。
  • StageDisplayState.NORMAL は、Flash ランタイムを標準のステージ表示モードに戻します。

フルスクリーンモードでのムービーの拡大 / 縮小動作は、scaleMode 設定(Stage.scaleMode プロパティまたは HTML ファイル内の SWF ファイルの embed タグ設定を使用して設定)で決定されます。アプリケーションがフルスクリーンモードに移行する際に、scaleMode プロパティが noScale に設定されていると、Stage の width プロパティと height プロパティが更新され、Stage の resize イベントが送出されます。拡大・縮小モードがその他の値に設定されている場合は、ステージとその内容が、新しい画面サイズにちょうど合う大きさに拡大 / 縮小されます。Stage オブジェクトについては元の width の値と height の値が維持され、resize イベントは送出されません。

次の制限は、HTML ページで実行されている SWF ファイルに適用されます(スタンドアローンの Flash Player を使用する場合、または AIR ランタイムで実行されている場合には適用されません)。

  • フルスクリーンモードを有効にするには、次の例のように allowFullScreen パラメーターを SWF ファイルを含む HTML ページの object および embed タグに追加します。このとき、allowFullScreen"true" に設定します。 <param name="allowFullScreen" value="true" /> ... <embed src="example.swf" allowFullScreen="true" ... >

    HTML ページでは、スクリプトを使用して SWF 埋め込みタグを生成することもできます。allowFullScreen 設定が正しく挿入されるように、スクリプトを変更する必要があります。Flash Professional および Flash Builder で生成された HTML ページでは、AC_FL_RunContent() 関数を使用して SWF ファイルへの参照を埋め込みます。ユーザーは、次のように allowFullScreen パラメーターの設定を追加する必要があります。

    AC_FL_RunContent( ... "allowFullScreen", "true", ... )
  • フルスクリーンモードは、マウスクリックまたはキー操作に対応して開始されます。ムービーでは、ユーザー入力なしに Stage.displayState を変更できません。Flash ランタイムでは、フルスクリーンモードでのキーボード入力は制限されます。入力可能なキーには、フルスクリーンモードを終了するキーボードショーカットや、矢印キー、スペースキー、Shift キー、Tab キーなどの非出力キーがあります。フルスクリーンモードは、次のキーボードショートカットで終了します。Esc キー(Windows、Linux、および Macintosh)、Ctrl + W (Windows)、Command + W (Macintosh)、および Alt + F4。

    フルスクリーンモードに入ると、ムービーの上に Flash ランタイムダイアログボックスが表示されます。このダイアログボックスには、現在フルスクリーンモードであり、Esc キーを押すとフルスクリーンモードを終了できるというメッセージが表示されます。

  • Flash Player 9.0.115.0 以降からは、ウィンドウモードの場合と同じようにウィンドウレスモードでフルスクリーンモードが動作するようになりました。ウィンドウモード(HTML では wmode)を不透明表示(opaque)または透明表示(transparent)に設定すると、フルスクリーンを開始できますが、フルスクリーンウィンドウは常に不透明になります。

これらの制約は、スタンドアローンの Flash Player または AIR ランタイムで実行されている SWF コンテンツには適用されません。AIR では、キーボード入力を許可するインタラクティブフルスクリーンモードがサポートされています。

フルスクリーンモードで実行される AIR コンテンツの場合、システムのスクリーンセーバーと節電オプションは、ビデオコンテンツが再生中のときとビデオが停止するかフルスクリーンモードが終了するまで無効になっています。

Linux の場合、displayStateStageDisplayState.FULL_SCREEN または StageDisplayState.FULL_SCREEN_INTERACTIVE に設定する操作は非同期的に実行されます。

次の例では、displayState プロパティを変更して、フルスクリーンにする方法のインタラクティブなデモンストレーションを作成しています。

注意:フルスクリーンは、ユーザーがキーをクリックまたは押した場合など、特定の状況においてのみ、セキュリティ上の制限のためにトリガーされます。ブラウザーで実行する場合、allowFullScreen プロパティを true に設定する必要があります。

package { import flash.display.Sprite; import flash.display.Stage; import flash.events.*; import flash.net.NetConnection; import flash.net.NetStream; import flash.media.Video; public class FullScreenExample extends Sprite { private var videoURL:String = "testVideo.flv"; private var connection:NetConnection; private var stream:NetStream; private var video:Video; public function FullScreenExample() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK,toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { switch(stage.displayState) { case "normal": stage.displayState = "fullScreen"; break; case "fullScreen": default: stage.displayState = "normal"; break; } } // Video related: private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); video = new Video(stage.stageWidth,stage.stageHeight); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore AsyncErrorEvent events. } } }
flash.display.StageDisplayStateStage.scaleModeflash.events.FullScreenEventflash.events.Event.RESIZE
focus キーボードフォーカスを持つインタラクティブオブジェクトです。フォーカスが設定されていない場合、またはフォーカスが設定されたオブジェクトが呼び出し元オブジェクトからアクセスできないセキュリティ Sandbox に属している場合は null となります。flash.display:InteractiveObjectターゲットにフォーカスを設定できない場合にエラーがスローされます。 ErrorErrorキーボードフォーカスを持つオブジェクトです。 キーボードフォーカスを持つインタラクティブオブジェクトです。フォーカスが設定されていない場合、またはフォーカスが設定されたオブジェクトが呼び出し元オブジェクトからアクセスできないセキュリティ Sandbox に属している場合は null となります。 次のコードは、最初のキーボードフォーカスをテキストフィールド myTF に設定し、ユーザーがクリック動作をせずに入力を始められるようにします。 オーサリングツールのインターフェイスでこのコードをテストする場合は、押されたキーのほとんどをホスト(ブラウザまたはツール)がすぐに解釈するため、多くのキーを操作する必要はありません。この例のコードが設計どおりに動作するかどうかを確認するには、コンパイルして SWF ファイルを実行してください。 var myTF:TextField = new TextField(); myTF.border =true; myTF.type = TextFieldType.INPUT; addChild(myTF); stage.focus= myTF; frameRate ステージのフレームレートを取得または設定します。NumberStage オブジェクトの frameRate プロパティを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError ステージのフレームレートを取得または設定します。フレームレートの定義は、1 秒あたりのフレーム数です。デフォルトでは、フレームレートは最初に読み込まれた SWF ファイルのものに設定されます。フレームレートの有効範囲は、1 秒あたり 0.01 から 1000 フレームです。

注意:ターゲットプラットフォームのフレーム設定が対応していないため、または Flash Player が表示デバイスの垂直帰線期間との同期が取れていないため、アプリケーションで高いフレームレートを設定できない場合があります。垂直帰線期間は、LCD デバイスでは通常 60 Hz です。CPU 使用率が高くなることが予想される場合、ターゲットプラットフォームの最大フレームレートを低くすることもできます。

Adobe AIR で実行されるコンテンツの場合、Stage オブジェクトの frameRate プロパティを設定することで、さまざまな NativeWindow オブジェクトによって使用されるすべての Stage オブジェクトのフレームレートが変更されます。

fullScreenHeight フルスクリーンサイズに移行したときに使用されるモニターの高さを返します(直ちに移行する場合)。uint フルスクリーンサイズに移行したときに使用されるモニターの高さを返します(直ちに移行する場合)。ユーザーが複数のモニターを持っている場合、使用されるモニターは、そのときに最も多くのステージが表示されているモニターです。

注意:値を取得してから、フルスクリーンサイズに移行するまでの間に、あるモニターから別のモニターにブラウザーを移動する機会がある場合、値が不正になる可能性があります。Stage.displayStateStageDisplayState.FULL_SCREEN に設定するイベントハンドラーで値を取得すると、値は正しくなります。

これはモニターのピクセルの高さであり、Stage.alignStageAlign.TOP_LEFT に設定され、Stage.scaleModeStageScaleMode.NO_SCALE に設定された場合には、ステージの高さと同じになります。

この例では、ステージのサイズの緑の矩形を作成し、その上にボタンとしてアクティブ化する赤い四角形を配置します。赤い四角形をクリックすると、enterFullScreen() イベントハンドラーがトリガーされます。このイベントハンドラーにより、fullScreenSourceRect プロパティが設定され、フルスクリーンモードに入ります。fullScreenSourceRect プロパティを設定するため、イベントハンドラーは赤い四角形の位置とサイズで開始します。次に、赤い四角形の縦横比(幅を高さで割った比率)をフルスクリーンのステージの幅と高さの縦横比と比較し、矩形(fullScreenSourceRect)を拡大して画面の縦横比に一致するようにします。この結果、赤い四角形がモニターの高さいっぱいに表示され、両側に緑の背景が表示されます。縦横比を一致させなかった場合、緑の背景の代わりにステージの背景色(デフォルトは白)が両側に表示されます。

注意:ブラウザーでこの例を試してみてください。Flash のパブリッシュ設定ダイアログボックスの「HTML」タブで、テンプレート「Flash のみ - フルスクリーンサポート」を選択します。Flash Player のバージョン 9.0.115.0 を指定し、「形式」タブで Flash 形式および HTML 形式が選択されていることを確認します。パブリッシュし、生成される HTML ファイルをブラウザーで開きます。

import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
displayStatefullScreenSourceRectfullScreenWidthscaleModeStageDisplayStateflash.events.Event.RESIZEflash.events.FullScreenEvent
fullScreenSourceRect ステージの特定の領域を Flash ランタイムで拡大 / 縮小してフルスクリーンモードにするように設定します。flash.geom:Rectangle ステージの特定の領域を Flash ランタイムで拡大 / 縮小してフルスクリーンモードにするように設定します。可能な場合、拡大 / 縮小は、ユーザーのコンピューター上でグラフィックカードやビデオカードを使用してハードウェアで行われます。通常、この方が、ソフトウェアで拡大 / 縮小するよりもすばやくコンテンツが表示されます。

このプロパティを有効な矩形に設定し、displayState プロパティをフルスクリーンモードに設定すると、指定された領域が Flash ランタイムにより拡大 / 縮小されます。ActionScript 内の実際のステージサイズ(ピクセル単位)は変更されません。標準の「フルスクリーンモードを終了するには、Esc キーを押します」というメッセージに対応するため、矩形のサイズに最小限度が適用されます。通常、この限度は約 260 x 30 ピクセルですが、プラットフォームおよび Flash ランタイムのバージョンによって異なる場合があります。

このプロパティを設定できるのは、Flash ランタイムがフルスクリーンモードでない場合のみです。このプロパティを正しく使用するには、コード例に示すように、このプロパティを最初に設定し、次に displayState プロパティをフルスクリーンモードに設定します。

拡大 / 縮小を有効にするには、次のように fullScreenSourceRect プロパティを矩形オブジェクトに設定します。

// valid, will enable hardware scaling stage.fullScreenSourceRect = new Rectangle(0,0,320,240);

拡大 / 縮小を無効にするには、ActionScript 3.0 では fullScreenSourceRect=null に設定し、ActionScript 2.0 では undefined に設定します。

stage.fullScreenSourceRect = null;

エンドユーザーが Flash Player の表示設定を使用して、ハードウェアの拡大 / 縮小をオフにすることもできます。この機能はデフォルトでは有効になっています。詳細については、www.adobe.com/go/display_settings_jp を参照してください。

ハードウェアの拡大 / 縮小機能を活用するには、ステージ全体またはステージの一部をフルスクリーンモードに設定します。次の ActionScript 3.0 コードでは、ステージ全体をフルスクリーンモードに設定します。 import flash.geom.*; { stage.fullScreenSourceRect = new Rectangle(0,0,320,240); stage.displayState = StageDisplayState.FULL_SCREEN; } 次の例では、ユーザーはステージをクリックすることで、ビデオ再生をフルスクリーンと通常のスクリーンで切り替えることができます。この例の SWF を Flash Player 9.0.115.0 以降で実行する場合はハードウェアアクセラレーターが使用され、フルスクリーンでの拡大表示時の性能が向上します。

ハードウェアの拡大 / 縮小機能を利用してフルスクリーンモードを使用する場合は、次の条件を満たしていなければなりません。

  1. Flash Player バージョン 9.0.115.0 以降と、これらをサポートするオーサリングツールが必要です。
  2. フルスクリーンをサポートするように HTML テンプレートを修正する必要があります。allowFullScreen 属性を true に設定する必要があります(object および embed タグに対して)(SWF 埋め込みタグを生成するスクリプトも、フルスクリーンを許可している必要があります)。 Flash Builder で使用できるファイルのサンプルについては、記事「Flash Player 9 のフルスクリーンモードの説明」を参照してください。
  3. アプリケーションが、FLV ビデオファイルに対するアクセス権を所有している必要があります。 この例では、Flash Video(FLV)ファイルが SWF ファイルと同じディレクトリにあると想定しています。
  4. ユーザーが、フルスクリーンへのアクセスを許可する必要があります。
  5. ハードウェアの拡大 / 縮小機能の詳細については、Flash Player の記事「Flash Player における高解像度 H.264 ビデオおよび AAC オーディオのサポートについての説明」を参照してください。

FLV ファイルは、NetConnection オブジェクトおよび NetStream オブジェクトを使用してロードします。 FLV ファイルが SWF ファイルと同じディレクトリにあり、HTTP 経由で接続するので、NetConnection.connect() メソッドのパラメーターは null に設定されます。 connect NetConnection オブジェクトは、netStatus イベント(netStatusHandler() メソッドを呼び出すイベント)を送出して状態を報告します。 netStatusHandler() メソッドは、接続が正常に確立しているかどうかチェックして connectStream() メソッドを呼び出します。このメソッドは、パラメーターとして NetConnection オブジェクトを取る NetStream オブジェクトを作成します。また、ビデオオブジェクトを作成し、このビデオオブジェクトに NetStream オブジェクトを追加します。このビデオオブジェクトは表示リストに追加され、ストリームを再生するように設定されます。FLV ビデオファイルにはメタデータまたはキューポイントの情報が含まれていないので、AsyncError イベントが送出されます。このイベントを処理するためにリスナーを設定する必要があります。ここではリスナーを設定しますが、このイベントは無視されます。netStatus イベントを受け取る別のリスナーも、NetStream オブジェクトに対して設定します。ストリームが見つからない場合は、エラーメッセージが表示されます(netStatusHandler() は、ストリームまたは接続に関する何種類もの状態の報告を処理するために使用される場合があることに注意してください)。

ロードされた SWF ファイルのプロパティおよびメソッドにアクセスできる場合、createMouseListener() メソッドが呼び出されます。このメソッドは、ステージ上でマウスがクリックされた場合にイベントを受け取るイベントリスナーを設定します。toggleFullScreen() メソッドは、表示状態がフルスクリーンモードか通常スクリーンモードかをチェックします。通常スクリーンの場合、ビデオオブジェクトのサイズは、ビデオストリームのサイズに設定されます。fullScreenSourceRect プロパティは、ビデオオブジェクトのサイズに一致する矩形に設定されます。Stage.displayMode プロパティはフルスクリーンに設定されます。これにより、ソース矩形のビデオが、フルスクリーン領域いっぱいまで拡大されます。システム要件を満たす場合は、マシンのグラフィックハードウェアを使用してフルスクリーンでのビデオのレンダリングのパフォーマンスを向上させます。また、表示状態がフルスクリーンモードに設定されます。フルスクリーンモードへの切り替え時に発生する可能性のあるセキュリティエラーをキャッチするために、try...catch が使用されます(表示状態は、fullScreenSourceRect プロパティを設定してからフルスクリーンモードに設定する必要があることに注意してください)。通常スクリーンモードに切り替わる前に、ビデオオブジェクトの幅と高さは、保存されている元のビデオオブジェクトの幅と高さに戻ります。また、フルスクリーンモードでビデオオブジェクトに変更が加えられた場合は、それによって幅と高さが決定されます。

package { import flash.display.Sprite; import flash.display.StageDisplayState; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.events.AsyncErrorEvent; import flash.events.SecurityErrorEvent; import flash.events.MouseEvent; import flash.events.Event; import flash.geom.Rectangle; public class Stage_fullScreenSourceRectExample2 extends Sprite { private var videoURL:String = "testVideo1.flv"; private var connection:NetConnection; private var stream:NetStream; private var myVideo:Video; private var savedWidth:uint; private var savedHeight:uint; public function Stage_fullScreenSourceRectExample2() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK, toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { if(stage.displayState == StageDisplayState.NORMAL) { myVideo.width = myVideo.videoWidth; myVideo.height = myVideo.videoHeight; try { stage.fullScreenSourceRect = new Rectangle(myVideo.x, myVideo.y, myVideo.width, myVideo.height); stage.displayState = StageDisplayState.FULL_SCREEN; } catch (e:SecurityError) { trace ("A security error occurred while switching to full screen: " + event); myVideo.width = savedWidth; myVideo.height = savedHeight; } }else { myVideo.width = savedWidth; myVideo.height = savedHeight; stage.displayState = StageDisplayState.NORMAL; } } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace ("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); myVideo = new Video(); myVideo.attachNetStream(stream); stream.play(videoURL); savedWidth = myVideo.width; savedHeight = myVideo.height; addChild(myVideo); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { } } }
flash.display.StageDisplayStateStage.displayStateStage.scaleModeflash.events.FullScreenEventflash.events.Event.RESIZE
fullScreenWidth フルスクリーンサイズに移行したときに使用されるモニターの幅を返します(直ちに移行する場合)。uint フルスクリーンサイズに移行したときに使用されるモニターの幅を返します(直ちに移行する場合)。ユーザーが複数のモニターを持っている場合、使用されるモニターは、そのときに最も多くのステージが表示されているモニターです。

注意:値を取得してから、フルスクリーンサイズに移行するまでの間に、あるモニターから別のモニターにブラウザーを移動する機会がある場合、値が不正になる可能性があります。Stage.displayStateStageDisplayState.FULL_SCREEN に設定するイベントハンドラーで値を取得すると、値は正しくなります。

これはモニターのピクセル幅であり、Stage.alignStageAlign.TOP_LEFT に設定され、Stage.scaleModeStageScaleMode.NO_SCALE に設定された場合には、ステージ幅と同じになります。

この例では、ステージのサイズの緑の矩形を作成し、その上にボタンとしてアクティブ化する赤い四角形を配置します。赤い四角形をクリックすると、enterFullScreen() イベントハンドラーがトリガーされます。このイベントハンドラーにより、fullScreenSourceRect プロパティが設定され、フルスクリーンモードに入ります。fullScreenSourceRect プロパティを設定するため、イベントハンドラーは赤い四角形の位置とサイズで開始します。次に、赤い四角形の縦横比(幅を高さで割った比率)をフルスクリーンのステージの幅と高さの縦横比と比較し、矩形(fullScreenSourceRect)を拡大して画面の縦横比に一致するようにします。この結果、赤い四角形がモニターの高さいっぱいに表示され、両側に緑の背景が表示されます。縦横比を一致させなかった場合、緑の背景の代わりにステージの背景色(デフォルトは白)が両側に表示されます。

注意:ブラウザーでこの例を試してみてください。Flash のパブリッシュ設定ダイアログボックスの「HTML」タブで、テンプレート「Flash のみ - フルスクリーンサポート」を選択します。Flash Player のバージョン 9.0.115.0 を指定し、「形式」タブで Flash 形式および HTML 形式が選択されていることを確認します。パブリッシュし、生成される HTML ファイルをブラウザーで開きます。

import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
displayStatefullScreenHeightfullScreenSourceRectscaleModeStageDisplayStateflash.events.Event.RESIZEflash.events.FullScreenEvent
height 表示オブジェクトの高さを示します(ピクセル単位)。NumberStage オブジェクトの height プロパティを参照すると、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityErrorStage オブジェクトの height プロパティの設定は、呼び出し元オブジェクトがステージ所有者のメイン SWF ファイルである場合でも無効です。 IllegalOperationErrorflash.errors:IllegalOperationError 表示オブジェクトの高さを示します(ピクセル単位)。この高さは、表示オブジェクトのコンテンツの境界に基づいて計算されます。次のコードに示すように、この height プロパティを設定すると、それに合わせて scaleY プロパティの値が調整されます。 var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;

TextField と Video オブジェクトを除いて、height を別の値に設定しようとしても、コンテンツのない表示オブジェクト(例えば、空のスプラインなど)の高さは 0 になります。

mouseChildren オブジェクトの子がマウスまたはユーザー入力デバイスに対応しているかどうかを判断します。BooleanStage オブジェクトの mouseChildren プロパティを参照すると、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError オブジェクトの子がマウスまたはユーザー入力デバイスに対応しているかどうかを判断します。対応している場合、ユーザーはマウスやユーザー入力デバイスを使用して、オブジェクトを操作できます。デフォルト値は true です。

このプロパティは、SimpleButton クラスではなく、Sprite クラスのインスタンスを使用してボタンを作成するときに役立ちます。Sprite インスタンスを使用してボタンを作成する場合、他の Sprite インスタンスを追加するために addChild() メソッドを使用してボタンの修飾を選択できます。子として追加する Sprite インスタンスは、親インスタンスをターゲットオブジェクトとすることを想定するときに、マウスイベントのターゲットオブジェクトとなる場合があるため、マウスイベントについて予期しない動作を引き起こす可能性があります。親インスタンスが確実にマウスイベントのターゲットオブジェクトになるようにするには、親インスタンスの mouseChildren プロパティを false に設定します。

このプロパティを設定しても、イベントは送出されません。インタラクティブな機能を作成するには、addEventListener() メソッドを使用する必要があります。

nativeWindow このステージを含む NativeWindow オブジェクトへの参照です。flash.display:NativeWindow このステージを含む NativeWindow オブジェクトへの参照です。

window は、ネイティブのオペレーティングシステムのウィンドウを表します。Stage は、そのウィンドウに含まれるコンテンツを表します。このプロパティは、NativeWindow クラスをサポートするプラットフォームの AIR で実行されているコンテンツにのみ有効です。他のプラットフォームでは、このプロパティは null になります。また、Flash Player(ブラウザーで実行されているコンテンツ)でも、このプロパティは null になります。

numChildren このオブジェクトの子の数を返します。intStage オブジェクトの numChildren プロパティを参照すると、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError このオブジェクトの子の数を返します。 orientation ステージの現在の方向です。String ステージの現在の方向です。このプロパティは、StageOrientation クラスで定数として定義されている 4 つの値のいずれかに設定されます。 StageOrientation 定数ステージの方向StageOrientation.DEFAULT画面はデフォルトの方向(右側が上)を向いています。StageOrientation.ROTATED_RIGHT画面は右に回転しています。StageOrientation.ROTATED_LEFT画面は左に回転しています。StageOrientation.UPSIDE_DOWN画面は上下反転しています。StageOrientation.UNKNOWNアプリケーションではまだ画面の初期方向が決定されていません。orientationChange イベントのイベントリスナーを追加できます。

ステージの方向を設定するには、setOrientation() メソッドを使用します。

重要:方向を表すプロパティは、2.6 ネームスペース以降の Android デバイスでサポートされています。

StageOrientationautoOrientsdeviceOrientationsupportsOrientationChange
quality 使用するレンダリング品質を指定する StageQuality クラスの値です。StringStage オブジェクトの quality プロパティを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError 使用するレンダリング品質を指定する StageQuality クラスの値です。使用できる値は次のとおりです。
  • StageQuality.LOW — 低いレンダリング品質。グラフィックはアンチエイリアス処理されず、ビットマップはスムージングされませんが、ランタイムでは依然としてミップマッピングが使用されます。
  • StageQuality.MEDIUM — 普通のレンダリング品質。グラフィックは 2 x 2 ピクセルグリッドを使用してアンチエイリアス処理され、ビットマップのスムージングは Bitmap.smoothing 設定に応じて処理されます。ランタイムではミップマッピングが使用されます。この設定は、テキストを含まないムービーに適しています。
  • StageQuality.HIGH — 高いレンダリング品質。グラフィックは 4 x 4 ピクセルグリッドを使用してアンチエイリアス処理され、ビットマップのスムージングは Bitmap.smoothing 設定に応じて処理されます。ランタイムではミップマッピングが使用されます。これは、Flash Player が使用するデフォルトのレンダリング品質設定です。
  • StageQuality.BEST — 非常に高いレンダリング品質。グラフィックは 4 x 4 ピクセルグリッドを使用してアンチエイリアス処理されます。Bitmap.smoothingtrue の場合、ランタイムでは、高品質のダウンスケールアルゴリズムが使用され、生成されるアーティファクトの数は減少します(ただし、Bitmap.smoothingtrue を設定した状態で StageQuality.BEST を使用すると、パフォーマンスが大幅に低下するので、この組み合わせは使用しないことをお勧めします)。

品質設定が高ければ高いほど、拡大 / 縮小されたビットマップのよりよいレンダリングが生成されます。ただし、品質設定が高くなればなるほど計算上のコストも高くなります。特に、拡大 / 縮小されたビデオをレンダリングするときには、より高い品質の設定を使用するほうがフレームレートを減らすことができます。

Adobe AIR のデスクトッププロファイルでは、qualityStageQuality.BEST または StageQuality.HIGH に設定できます(また、デフォルト値は StageQuality.HIGH になります)。別の値に設定しても無視されます(プロパティは変更されません)。AIR のモバイルプロファイルでは、4 つの quality 設定すべてが使用できます。モバイルデバイスでのデフォルト値は StageQuality.MEDIUM です。

Adobe AIR で実行されるコンテンツの場合、Stage オブジェクトの quality プロパティを設定することで、様々な NativeWindow オブジェクトによって使用されるすべての Stage オブジェクトのレンダリング品質が変更されます。

注意:オペレーティングシステムはデバイスフォントを描画します。デバイスフォントは quality プロパティの影響を受けません。
flash.display.StageQualityflash.display.Bitmap.smoothing
scaleMode 使用する拡大 / 縮小モードを指定する StageScaleMode クラスの値です。StringStage オブジェクトの scaleMode プロパティを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError使用する拡大 / 縮小モードを指定する StageScaleMode クラスの値です。 使用する拡大 / 縮小モードを指定する StageScaleMode クラスの値です。使用できる値は次のとおりです。
  • StageScaleMode.EXACT_FIT — 指定された領域にちょうど収まるようにアプリケーション全体が表示され、元の縦横比は保たれません。歪みが発生し、アプリケーションが引き伸ばしたり圧縮したりしたように表示されることがあります。
  • StageScaleMode.SHOW_ALL — 指定された領域内にアプリケーション全体が、アプリケーションの元の縦横比を維持したまま歪まずに表示されます。ただし、アプリケーションの両側に境界枠が表示されることがあります。
  • StageScaleMode.NO_BORDER — 指定された領域いっぱいにアプリケーション全体が歪まずに表示されます。ただし、アプリケーションの元の縦横比を保つために、ある程度トリミングされることがあります。
  • StageScaleMode.NO_SCALE — アプリケーションの全体のサイズが固定され、プレーヤーウィンドウのサイズが変更された場合でも、サイズが維持されます。Flash Player のウィンドウがコンテンツよりも小さい場合は、トリミングされることがあります。
flash.display.StageScaleMode
showDefaultContextMenu Flash ランタイムのコンテキストメニューにデフォルトのアイテムを表示するかどうかを指定します。BooleanStage オブジェクトの showDefaultContextMenu プロパティを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityErrorFlash Player のコンテキストメニューにデフォルトの項目を表示するかどうかを指定します。 Flash ランタイムのコンテキストメニューにデフォルトのアイテムを表示するかどうかを指定します。

showDefaultContextMenu プロパティを true に設定すると、すべてのコンテキストメニューアイテムが表示されます。これがデフォルトです。showDefaultContextMenu プロパティを false に設定すると、メニューアイテムとして「設定」および「Adobe Flash Player について」だけが表示されます。

softKeyboardRect ソフトキーボードで現在選択されているステージの領域です。flash.geom:Rectangle ソフトキーボードで現在選択されているステージの領域です。

ソフトキーボードが不可視の場合、領域のサイズはゼロ(0,0,0,0)です。

キーボードを開いた場合、softKeyboardActivate イベントが送出された時点で softKeyboardRect が設定されます。開く際にキーボードのサイズが変更された場合、ランタイムによって、softKeyboardRect プロパティが更新され、追加の softKeyboardActivate イベントが送出されます。

注意:Android では、オペレーティングシステムによって正確な領域を決定するために必要な情報が提供されない場合、キーボードで選択されている領域が評価されます。この問題は、フルスクリーンモードの場合に発生します。また、InteractiveObject がフォーカスを受け取ったとき、または requestSoftKeyboard() メソッドを呼び出したときに応じてキーボードが開かれた場合にも発生します。

SoftKeyboardEventInteractiveObject.needsSoftKeyboard
stageFocusRect オブジェクトがフォーカスを持つ場合に強調表示された境界線を表示するかどうかを指定します。BooleanStage オブジェクトの stageFocusRect プロパティを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityErrorオブジェクトがフォーカスを持つ場合に強調表示された境界線を表示するかどうかを指定します。 オブジェクトがフォーカスを持つ場合に強調表示された境界線を表示するかどうかを指定します。 stageHeight 現在のステージの高さ(ピクセル数)です。intStage オブジェクトの stageHeight プロパティを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError 現在のステージの高さ(ピクセル数)です。

ユーザーがウィンドウのサイズを変更するときに Stage.scaleMode プロパティの値が StageScaleMode.NO_SCALE に設定された場合、stageHeight プロパティが SWF ファイルで占有された画面領域の新しい高さサイズを反映するように変更されても、Stage コンテンツはそのサイズを維持します(他の伸縮モードでは、stageHeight プロパティは常に SWF ファイルの元の高さを反映します)。resize イベントのイベントリスナーを追加すると、Stage クラスの stageHeight プロパティを使用して、サイズが変更された Flash ランタイムウィンドウの実際のピクセルサイズを測定できます。イベントリスナーでは、ユーザーがウィンドウのサイズを変更するときに画面コンテンツがどのように調整されるかを制御できます。

テレビ用 AIR デバイスでは、stageHeight プロパティを設定したときの動作がデスクトップデバイスとやや異なります。Stage.scaleMode プロパティが StageScaleMode.NO_SCALE に設定されている場合、stageHeight プロパティを設定すると、ステージの高さは、その SWF が次のフレームに移るまで変化しません。

注意: SWF ファイルをホスティングする HTML ページでは、object タグおよび embed タグの height 属性はピクセル単位ではなくパーセンテージ(100% など)で設定する必要があります。設定が JavaScript コードによって設定される場合、height パラメーター(AC_FL_RunContent() メソッドのパラメーター)もパーセンテージで設定する必要があります。このパーセンテージは stageHeight 値に適用されます。

flash.display.StageScaleMode
stageVideos 外部ビデオの再生に使用できる StageVideo オブジェクトのリストです。 外部ビデオの再生に使用できる StageVideo オブジェクトのリストです。

一度に使用できる StageVideo オブジェクトの数には制限があります。SWF の実行開始時に使用できる StageVideo オブジェクトの数は、プラットフォームの種類と使用できるハードウェアに応じて異なります。

StageVideo オブジェクトを使用するには、stageVideos Vector オブジェクトのメンバーの 1 つを StageVideo 変数に代入します。

StageVideo オブジェクトは、すべての表示オブジェクトの背面にあるものとしてステージ上に表示されます。StageVideo オブジェクトがステージ上に表示される順序は、stageVideos Vector オブジェクト内に配置されている順序と同じです。例えば、次に示す 3 つのエントリが stageVideos Vector オブジェクト内にあるとします。

  1. stageVideos Vector オブジェクトの 0 インデックスに格納された StageVideo オブジェクトは、その他すべての StageVideo オブジェクトの背面に表示されます。
  2. インデックス 1 の StageVideo オブジェクトは、インデックス 0 の StageVideo オブジェクトよりも前面に表示されます。
  3. インデックス 2 の StageVideo オブジェクトは、インデックス 1 の StageVideo オブジェクトよりも前面に表示されます。

この順序を変更するには StageVideo.depth プロパティを使用します。

注意:テレビ用 AIR デバイスでサポートされる StageVideo オブジェクトの数は 1 つだけです。

次のコードは、StageVideo オブジェクトを取得する方法を示しています。 var stageVideo:StageVideo; if ( stage.stageVideos.length >= 1 ) { stageVideo = stage.stageVideos[0]; }
flash.media.StageVideoflash.events.StageVideoEvent
stageWidth ステージの現在の幅をピクセル単位で指定します。intStage オブジェクトの stageWidth プロパティを呼び出すと、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError ステージの現在の幅をピクセル単位で指定します。

ユーザーがウィンドウのサイズを変更するときに Stage.scaleMode プロパティの値が StageScaleMode.NO_SCALE に設定された場合、stageWidth プロパティが SWF ファイルで占有された画面領域の新しい幅サイズを反映するように変更されても、Stage コンテンツは定義済みのサイズを維持します(他の伸縮モードでは、stageWidth プロパティは常に SWF ファイルの元の幅を反映します)。resize イベントのイベントリスナーを追加すると、Stage クラスの stageWidth プロパティを使用して、サイズが変更された Flash ランタイムウィンドウの実際のピクセルサイズを測定できます。イベントリスナーでは、ユーザーがウィンドウのサイズを変更するときに画面コンテンツがどのように調整されるかを制御できます。

テレビ用 AIR デバイスでは、stageWidth プロパティを設定したときの動作がデスクトップデバイスとやや異なります。Stage.scaleMode プロパティが StageScaleMode.NO_SCALE に設定されている場合、stageWidth プロパティを設定すると、ステージの幅は、その SWF が次のフレームに移るまで変化しません。

注意: SWF ファイルをホスティングする HTML ページでは、object タグおよび embed タグの width 属性はピクセル単位ではなくパーセンテージ(100% など)で設定する必要があります。設定が JavaScript コードによって生成される場合、width パラメーター(AC_FL_RunContent() メソッドのパラメーター)もパーセンテージで設定する必要があります。このパーセンテージは stageWidth 値に適用されます。

flash.display.StageScaleMode
supportedOrientations 現在のデバイスによってサポートされている方向です。 現在のデバイスによってサポートされている方向です。

このリストに含まれている方向を示す文字列を、setOrientation() メソッドのパラメーターとして使用することができます。サポートされていない方向の設定は、エラーを生成することなく失敗します。

次の方向を設定することができます。

StageOrientation 定数ステージの方向StageOrientation.DEFAULTステージの方向をデフォルトの方向(右側が上)に設定します。StageOrientation.ROTATED_RIGHTステージの方向を右回転に設定します。StageOrientation.ROTATED_LEFTステージの方向を左回転に設定します。StageOrientation.UPSIDE_DOWNステージの方向を上下反転に設定します。
StageOrientationautoOrientssetOrientationorientation
supportsOrientationChange アプリケーションがステージの方向の変更(およびデバイスの回転)をサポートしているかどうか。Boolean アプリケーションがステージの方向の変更(およびデバイスの回転)をサポートしているかどうか。現在のところ、モバイルデバイスで実行する AIR アプリケーションでは、このプロパティは true のみになります。 autoOrientsdeviceOrientationsupportsOrientationChangetabChildren オブジェクトの子に対してタブが有効かどうかを調べます。BooleanStage オブジェクトの tabChildren プロパティを参照すると、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityError オブジェクトの子に対してタブが有効かどうかを調べます。オブジェクトの子に対してタブを有効または無効にします。デフォルト値は true です。

注意:Flex では、tabChildren プロパティを使用しないでください。代わりに、mx.core.UIComponent.hasFocusableChildren プロパティを使用します。

textSnapshot この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。flash.text:TextSnapshotStage オブジェクトの textSnapshot プロパティを参照すると、Stage クラスがこのプロパティを実装しないため、例外がスローされます。これを回避するには、Stage オブジェクト以外の表示オブジェクトコンテナの textSnapshot プロパティを呼び出します。 IllegalOperationErrorflash.errors:IllegalOperationError この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。 width 表示オブジェクトの幅を示します(ピクセル単位)。NumberStage オブジェクトの width プロパティを参照すると、ステージ所有者と同じセキュリティ Sandbox 内にない呼び出し元について例外がスローされます。この場合のステージ所有者とはメイン SWF ファイルです。これを回避するには、ステージ所有者が Security.allowDomain() メソッドまたは Security.allowInsecureDomain() メソッドを呼び出して呼び出し元のドメインに許可を与えるようにします。詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。 SecurityErrorSecurityErrorStage オブジェクトの width プロパティの設定は、システム管理者の場合でも無効です。 IllegalOperationErrorflash.errors:IllegalOperationError 表示オブジェクトの幅を示します(ピクセル単位)。この幅は、表示オブジェクトのコンテンツの境界に基づいて計算されます。次のコードに示すように、この width プロパティを設定すると、それに合わせて scaleX プロパティの値が調整されます。 var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;

TextField と Video オブジェクトを除いて、width を別の値に設定しようとしても、コンテンツのない表示オブジェクト(例えば、空のスプラインなど)の幅は 0 になります。

wmodeGPU GPU 合成が使用可能であり使用中かどうかを示します。Boolean GPU 合成が使用可能であり使用中かどうかを示します。wmodeGPU の値は、次の 3 つの条件すべてに当てはまる場合にのみtrue になります。

  • GPU 合成が要求されている。
  • GPU 合成が使用可能である。
  • GPU 合成が使用中である。

具体的には、wmodeGPU プロパティは次のいずれかを示します。

  1. GPU 合成が要求されていないか、使用可能ではありません。この場合、wmodeGPU プロパティの値は false になります。
  2. GPU 合成は要求されましたが(適用可能で使用可能な場合)、コンテンツの制約により、環境は(最善のレンダリングモードではなく)代替モードで動作しています。この場合、wmodeGPU プロパティの値は true になります。
  3. GPU 合成が要求され(適用可能で使用可能な場合)、環境は最善のモードで動作しています。この場合も、wmodeGPU プロパティの値は true になります。

つまり、wmodeGPU プロパティは、レンダリング環境の機能と状態を示します。(先に説明したように)値が true になるのは GPU 合成が要求され、使用可能であり、使用中である場合だけなので、GPU 合成をサポートしないランタイム(AIR 1.5.2 など)の場合、この値は常に false になります。

wmodeGPU プロパティは、GPU 合成が使用中かどうかを実行時に判定するのに便利です。wmodeGPU の値は、コンテンツの伸縮がハードウェアによって処理されるかどうかを示すので、グラフィックを正しいサイズで表示できます。また、高速でレンダリングを行っているかどうかも判別できるので、それに応じてコンテンツの複雑度を調節できます。

ブラウザー内で Flash Player を実行する場合は、SWF ファイルを呼び出すページの wmode HTML パラメーターを gpu に設定することで、GPU 合成を要求できます。その他の構成の場合は、SWF ファイルのヘッダーで GPU 合成を要求できます(SWF 作成ツールを使用して設定します)。

ただし、wmodeGPU プロパティでは、現在のレンダリングパフォーマンスは判別できません。GPU 合成が使用中であっても、レンダリングプロセスは最善のモードで動作していない可能性があります。最善のレンダリングが行われるようにコンテンツを調節するには、Flash のランタイムデバッガーバージョンを使用し、mm.cfg ファイルで DisplayGPUBlendsetting を設定します。

注意: 最初のレンダリングパスが開始される前に実行される ActionScript からこのプロパティを参照すると、この値は常に false になります。例えば、Adobe Flash Professional のフレーム 1 のスクリプトから wmodeGPU を調べる場合、その SWF ファイルがランタイムの新しいインスタンスに最初にロードされる SWF ファイルであるときは、wmodeGPU の値が false になります。正しい値を取得するには、少なくとも最初のレンダリングパスが発生するまで待つ必要があります。DisplayObjectexitFrame イベントに対するイベントリスナーを作成すると、wmodeGPU の値は正しい値になります。

次の例では、表示オブジェクト mySprite がレンダリングされた後に wmodeGPU プロパティを調べているので、正しい値を取得できます。 mySprite.addEventListener(EXIT_FRAME, exithandler): function exithandler(exiteventobject:Event):void { trace(stage.wmodeGPU); }
DisplayObject exitFrame イベント
NativeWindowInitOptions NativeWindowInitOptions クラスは、新しい NativeWindow インスタンスを作成するのに使用される初期化オプションを定義します。Object NativeWindowInitOptions クラスは、新しい NativeWindow インスタンスを作成するのに使用される初期化オプションを定義します。

この初期化オプションで定義されたプロパティは、ウィンドウが作成された後に変更することはできません。

注意: AIR によって自動的に作成された最初のアプリケーションウィンドウでは、これらのすべてのプロパティ(type 以外)がアプリケーション記述子に設定されます。最初のウィンドウは、常に、NativeWindowType.NORMAL タイプです。

flash.display.NativeWindowflash.display.NativeWindowTypeflash.display.NativeWindowSystemChromeNativeWindowInitOptions 新しい NativeWindowInitOptions オブジェクトを作成します。 新しい NativeWindowInitOptions オブジェクトを作成します。

新しく作成されたオブジェクトのデフォルト値は次のとおりです。

  • systemChrome = NativeWindowSystemChrome.STANDARD
  • type = NativeWindowType.NORMAL
  • transparent = false
  • owner = null
  • resizable = true
  • maximizable = true
  • minimizable = true
maximizable ユーザーがウィンドウを最大化できるかどうかを指定します。Booleantrue ユーザーがウィンドウを最大化できるかどうかを指定します。

システムクロムを使用するウィンドウの場合、この設定はウィンドウの最大化ボタンの外観に影響を与えます。また、Microsoft Windows のウィンドウメニューなど、システムが管理するユーザーインターフェイスのその他の部分にも影響します。

false に設定されている場合、ユーザーはウィンドウを最大化できません。NativeWindow maximize() メソッドを直接呼び出すと、ウィンドウは最大化されます。

OS の動作に関する注意:

  • Mac OS X など、ウィンドウを最大化してもサイズ変更が可能なオペレーティングシステムでは、maximizable および resizable を両方とも false に設定し、ウィンドウの拡大やサイズ変更ができないようにする必要があります。
  • 一部の Linux ウィンドウマネージャーでは、maximizable プロパティが false に設定されている場合でも、ユーザーがウィンドウを最大化できます。
flash.display.NativeWindow.displayState
minimizable ユーザーがウィンドウを最小化できるかどうかを指定します。Booleantrue ユーザーがウィンドウを最小化できるかどうかを指定します。

システムクロムを使用するウィンドウの場合、この設定はウィンドウの最小化ボタンの外観に影響を与えます。また、Microsoft Windows のウィンドウメニューなど、システムが管理するユーザーインターフェイスのその他の部分にも影響します。

false に設定されている場合、ユーザーはウィンドウを最小化できません。NativeWindow minimize() メソッドを直接呼び出すと、ウィンドウは最小化されます。

注意:一部の Linux ウィンドウマネージャーでは、minimizable プロパティが false に設定されている場合でも、ユーザーがウィンドウを最小化できます。

flash.display.NativeWindow.displayState
owner この NativeWindowInitOptions で作成されたすべてのウィンドウを所有する NativeWindow オブジェクトを指定します。flash.display:NativeWindow<code>null</code> この NativeWindowInitOptions で作成されたすべてのウィンドウを所有する NativeWindow オブジェクトを指定します。

ウィンドウに所有者がある場合、そのウィンドウは常に所有者の前面に表示されます。所有者が最小化、非表示の場合や閉じる場合にも同様に処理されます。

flash.display.NativeWindow.ownerflash.display.NativeWindow.listOwnedWindows()
resizable ユーザーがウィンドウのサイズを変更できるかどうかを指定します。Booleantrue ユーザーがウィンドウのサイズを変更できるかどうかを指定します。

false に設定されている場合、ユーザーはシステムクロムを使用してウィンドウのサイズを変更できません。NativeWindow startResize() メソッドをマウスイベントに応答して呼び出すと、ユーザーはウィンドウのサイズを変更できます。ウィンドウの境界を直接設定して、ウィンドウのサイズを変更することもできます。

OS の動作に関する注意:

  • Mac OS X など、ウィンドウの最大化がサイズ変更操作として扱われるオペレーティングシステムでは、maximizable および resizable を両方とも false に設定し、ウィンドウを拡大またはサイズ変更できないようにする必要があります。
  • 一部の Linux ウィンドウマネージャーでは、resizable プロパティが false に設定されている場合でも、ユーザーがウィンドウのサイズを変更できます。
flash.display.NativeWindow.bounds
systemChrome ウィンドウでシステムクロムを使用するかどうかを指定します。StringNativeWindowSystemChrome.STANDARD ウィンドウでシステムクロムを使用するかどうかを指定します。

クロムは、ウィンドウのデスクトッププロパティの制御をユーザーに許可しているウィンドウコントロールを参照します。システムクロムは、AIR アプリケーションが実行されるデスクトップ環境の標準コントロールを使用し、ネイティブオペレーティングシステムの標準的な外観と使用感に従います。

フレームワーク(Flex など)から提供されているクロムを使用する場合、または独自のウィンドウクロムを提供する場合は、systemChromeNativeWindowSystemChrome.NONE に設定します。

このプロパティの有効な値の定数は、NativeWindowSystemChrome クラスで定義されます。

  • NativeWindowSystemChrome.NONE
  • NativeWindowSystemChrome.STANDARD

指定されていない場合、systemChrome のデフォルト値は NativeWindowSystemChrome.STANDARD になります。

システムクロムを使用するウィンドウに対して transparent プロパティを true に設定することはサポートされていません。

flash.display.NativeWindowSystemChrome
transparent ウィンドウが、デスクトップに対する透明度とアルファの組み合わせをサポートするかどうかを指定します。Booleanfalse ウィンドウが、デスクトップに対する透明度とアルファの組み合わせをサポートするかどうかを指定します。

true の場合、ウィンドウ表示がデスクトップと合成されます。表示オブジェクトの範囲外にあるウィンドウ領域、またはアルファの設定が 0 に近い表示オブジェクトの範囲内のウィンドウ領域は実質的には不可視になり、マウスイベント(ウィンドウの下のデスクトップオブジェクトによって受け取られる)を取得しません。オブジェクトがマウスイベントを取得しなくなるアルファ値は、オペレーティングシステムによってほぼ .06 から .01 までの値のいずれかになります。

システムクロムを使用するウィンドウに対して transparent プロパティを true に設定することはサポートされていません。

注意:一部の Linux ウィンドウマネージャーでは、透明はサポートされません。そのようなシステムでは、ウィンドウの透明な領域が黒で合成されます。

type 作成するウィンドウのタイプを指定します。StringNativeWindowType.NORMAL 作成するウィンドウのタイプを指定します。

このプロパティの有効な値の定数は、NativeWindowType クラスで定義されます。

  • NativeWindowType.NORMAL — 一般的なウィンドウです。normal ウィンドウは、フルサイズのクロムを使用し、Windows または Linux のタスクバーに表示されます。
  • NativeWindowType.UTILITY — ツールパレットです。utility ウィンドウはスリムなバージョンのシステムクロムを使用し、Windows のタスクバーには表示されません。
  • NativeWindowType.LIGHTWEIGHT - lightweight ウィンドウはステムクロムを表示できません。Windows または Linux のタスクバーにも表示されません。また、LIGHTWEIGHT ウィンドウには、Windows のシステムメニュー(Alt+ スペースバー)が表示されません。LIGHTWEIGHT ウィンドウは、通知バブルや短時間表示される表示領域を開くコンボボックスなどのコントロールに適しています。type が lightweight のときは、systemChromeNativeWindowSystemChrome.NONE に設定する必要があります。

指定されていない場合、type のデフォルト値は NativeWindowType.NORMAL になります。

flash.display.NativeWindowType
ShaderParameter ShaderParameter インスタンスはシェーダーカーネルの 1 つの入力パラメーターを表します。Object ShaderParameter インスタンスはシェーダーカーネルの 1 つの入力パラメーターを表します。カーネル実行で使用する 0、1、またはそれ以上のパラメーターを許可するようにカーネルを定義できます。ShaderParameter は、対応するデータ型などのパラメーターに関する情報を提供します。また、シェーダーの実行時に使用するパラメーター値を設定するメカニズムも提供します。シェーダーパラメーターの値を指定するには、値が入った Array を作成し、それを value プロパティに割り当てます。

Shader インスタンスのパラメーターを表す ShaderParameter インスタンスは、Shader インスタンスの data プロパティのプロパティとしてアクセスします。ShaderParameter プロパティの名前は、シェーダーコードのパラメーター名と同じです。例えば、次に示すように、シェーダーが radius という名前のパラメーターを定義している場合は、radius パラメーターを表す ShaderParameter インスタンスに radius というプロパティでアクセスできます。

var radiusParam:ShaderParameter = myShader.data.radius;

ShaderParameter クラスの定義されたプロパティに加えて、各 ShaderParameter インスタンスには、そのパラメーターに定義されたメタデータに対応する追加のプロパティがあります。これらのプロパティは、ShaderParameter オブジェクトの作成時に追加されます。プロパティ名はシェーダーのソースコードで指定されたメタデータ名と一致します。各プロパティのデータ型は、対応するメタデータのデータ型によって異なります。"description" などのテキストメタデータ値は、String インスタンスです。ストリング以外の値(minValuedefaultValue など)を持つメタデータプロパティは、Array インスタンスとなります。エレメント数とエレメントデータ型はメタデータ値に対応します。

例えば、シェーダーに次の 2 つのパラメーター宣言が含まれるとします。

parameter float2 size < description: "The size of the image to which the kernel is applied"; minValue: float2(0.0, 0.0); maxValue: float2(100.0, 100.0); defaultValue: float2(50.0, 50.0); >; parameter float radius < description: "The radius of the effect"; minValue: 0.0; maxValue: 50.0; defaultValue: 25.0; >;

size パラメーターに対応する ShaderParameter インスタンスは、ビルトインプロパティのほかに、次のメタデータプロパティを持ちます。

プロパティ名データ型nameString"サイズ"descriptionString"カーネルが適用されるイメージのサイズ"minValueArray[0, 0]maxValueArray[100, 100]defaultValueArray[50, 50]

radius パラメーターに対応する ShaderParameter には、次の追加プロパティがあります。

プロパティ名データ型nameString"半径"descriptionString"エフェクトの半径"minValueArray[0]maxValueArray[50]defaultValueArray[25]

一般に、開発者コードでは直接 ShaderParameter インスタンスは作成されません。ShaderParameter インスタンスは、Shader インスタンスが作成されるときに、シェーダーの各パラメーターに対して作成されます。

flash.display.ShaderDataflash.display.Shader.dataShaderParameter ShaderParameter インスタンスを作成します。 ShaderParameter インスタンスを作成します。ShaderParameter コンストラクターは開発者コードでは直接呼び出されません。ShaderParameter インスタンスは、Shader インスタンスが作成されるときに、シェーダーの各パラメーターに対して作成されます。 index パラメーターのインデックス。このインデックスは 0 から始まります。int パラメーターのインデックス。このインデックスは 0 から始まります。 type シェーダーで定義されているパラメーターのデータ型です。String シェーダーで定義されているパラメーターのデータ型です。type プロパティで使用可能な値セットは、ShaderParameterType クラスの定数によって定義されます。 flash.display.ShaderParameterTypevalue パラメーター値としてシェーダーに渡される値です。Array パラメーター値としてシェーダーに渡される値です。value プロパティはインデックス付き Array です。Array エレメントの数とタイプはパラメーターのデータ型に対応します。これは、type プロパティを使用して決定できます。

次の表に、パラメータータイプと対応する value Array エレメントの数とデータ型を示します。

パラメータータイプエレメントの数エレメントのデータ型float(ShaderParameterType.FLOAT1Numberfloat2(ShaderParameterType.FLOAT22Numberfloat3(ShaderParameterType.FLOAT33Numberfloat4(ShaderParameterType.FLOAT44Numberint(ShaderParameterType.INT1int または uintint2(ShaderParameterType.INT22int または uintint3(ShaderParameterType.INT33int または uintint4(ShaderParameterType.INT44int または uintbool(ShaderParameterType.BOOL1Booleanbool2(ShaderParameterType.BOOL22Booleanbool3(ShaderParameterType.BOOL33Booleanbool4(ShaderParameterType.BOOL44Booleanfloat2x2(ShaderParameterType.MATRIX2X24Numberfloat3x3(ShaderParameterType.MATRIX3X39Numberfloat4x4(ShaderParameterType.MATRIX4X416Number

マトリックスパラメータータイプの場合、配列エレメントは最初マトリックス行に入力され、次に列に入力されます。例えば、次の ActionScript 行を使用して、float2x2 パラメーターにmyMatrix という名前をつけて入力するとします。

myShader.data.myMatrix.value = [.1, .2, .3, .4];

シェーダー内で、各マトリックスエレメントは次の値を持ちます。

  • myMatrix[0][0]:0.1
  • myMatrix[0][1]:0.2
  • myMatrix[1][0]:0.3
  • myMatrix[1][1]:0.4
GradientType GradientType クラスは、flash.display.Graphics クラスの beginGradientFill() メソッドおよび lineGradientStyle() メソッドの type パラメーターに値を提供します。Object GradientType クラスは、type パラメーター(flash.display.Graphics クラスの beginGradientFill() メソッドおよび lineGradientStyle() メソッド内のパラメーター)に値を提供します。 LINEAR 線状グラデーションの塗りを指定する値です。linearString 線状グラデーションの塗りを指定する値です。 RADIAL 放射状グラデーションの塗りを指定する値です。radialString 放射状グラデーションの塗りを指定する値です。 InterpolationMethod InterpolationMethod クラスは、Graphics.beginGradientFill() メソッドおよび Graphics.lineGradientStyle() メソッドの interpolationMethod パラメーターの値を提供します。Object InterpolationMethod クラスは、interpolationMethod パラメーター(Graphics.beginGradientFill() および Graphics.lineGradientStyle() メソッドのパラメーター)の値を提供します。このパラメーターは、グラデーションをレンダリングするときに使用する RGB スペースを決定します。 flash.display.Graphics.beginGradientFill()flash.display.Graphics.lineGradientStyle()LINEAR_RGB 線形 RGB 補間メソッドを使用することを指定します。linearRGBString 線形 RGB 補間メソッドを使用することを指定します。これは、線形 RGB カラーモデルをベースにした RGB カラースペースが使用されることを意味します。 RGBRGB RGB 補間メソッドを使用することを指定します。rgbString RGB 補間メソッドを使用することを指定します。これは、グラデーションが指数 sRGB(標準 RGB)スペースでレンダリングされることを意味します。 sRGB スペースは、赤、緑、青の各構成要素値と構成要素可視色の実際輝度の間の非線形変換を定義した W3C 承認の標準です。

例えば、2 つの色の間に、spreadMethod パラメーターが SpreadMethod.REFLECT に設定されたシンプルな線状グラデーションがあるとします。それぞれの補間方法で、外観に次のような影響があります。

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
LINEAR_RGB
IGraphicsPath このインターフェイスは、flash.display.Graphics のメソッドおよび描画クラスのパスパラメーターとして使用されるオブジェクトを定義するために使用します。 このインターフェイスは、flash.display.Graphics のメソッドおよび描画クラスのパスパラメーターとして使用されるオブジェクトを定義するために使用します。パスプロパティデータの作成と管理、および異なるインスタンスでの同じデータの再利用には、このインターフェイスの実装者クラスを使用します。 flash.display.Graphics.drawGraphicsData()flash.display.Graphics.drawPath()IGraphicsFill このインターフェイスは、flash.display.Graphics のメソッドおよび描画クラスの塗りパラメーターとして使用されるオブジェクトを定義するために使用します。 このインターフェイスは、flash.display.Graphics のメソッドおよび描画クラスの塗りパラメーターとして使用されるオブジェクトを定義するために使用します。塗りプロパティデータの作成と管理、および異なるインスタンスでの同じデータの再利用には、このインターフェイスの実装者クラスを使用します。 flash.display.Graphics.drawGraphicsData()flash.display.GraphicsStroke.fillLoaderInfo LoaderInfo クラスは、読み込まれる SWF ファイルやイメージファイル(JPEG、GIF、PNG ファイルなど)に関する情報を提供します。flash.events:EventDispatcher LoaderInfo クラスは、読み込まれる SWF ファイルやイメージファイル(JPEG、GIF、PNG ファイルなど)に関する情報を提供します。LoaderInfo オブジェクトは、すべての表示オブジェクトで使用できます。提供される情報には、読み込みの進行状況、読み込む側と読み込まれたコンテンツの URL、メディアの総バイト数、メディアの規格高さと幅などが含まれます。

次に示す 2 つの方法で LoaderInfo オブジェクトにアクセスできます。

  • flash.display.Loader オブジェクトの contentLoaderInfo プロパティ — contentLoaderInfo プロパティは常にすべての Loader オブジェクトに対して使用できます。load() メソッドまたは loadBytes() メソッドを呼び出していない Loader オブジェクトや、読み込みが完了していない Loader オブジェクトの場合、contentLoaderInfo プロパティの各種プロパティにアクセスしようとするとエラーがスローされます。
  • 表示オブジェクトの loaderInfo プロパティ。

Loader オブジェクトの contentLoaderInfo プロパティは、Loader オブジェクトが読み込むコンテンツに関する情報を提供するのに対して、DisplayObject の loaderInfo プロパティは、その表示オブジェクトのルート SWF ファイルに関する情報を提供します。

Loader オブジェクトを使用して表示オブジェクト(SWF ファイル、ビットマップなど)をロードした場合、表示オブジェクトの loaderInfo プロパティは Loader オブジェクトの contentLoaderInfo プロパティと同じになります(DisplayObject.loaderInfo = Loader.contentLoaderInfo)。SWF ファイルのメインクラスのインスタンスに Loader オブジェクトは含まれないので、loaderInfo プロパティは、SWF ファイルのメインクラスのインスタンスの LoaderInfo にアクセスする唯一の方法です。

次の図は、SWF ファイルのメインクラスのインスタンス、Loader オブジェクトの contentLoaderInfo プロパティ、読み込まれたオブジェクトの loaderInfo プロパティの場合のそれぞれ異なる LoaderInfo オブジェクトの使用方法を示します。

ロード処理が完了していない場合、Loader オブジェクトの contentLoaderInfo プロパティのいくつかのプロパティは取得できません。bytesLoadedbytesTotalurlloaderURLapplicationDomain などのいくつかのプロパティは取得できます。loaderInfo オブジェクトが init イベントを送出すると、loaderInfo オブジェクトとロード済みのイメージまたは SWF ファイルのすべてのプロパティにアクセスできます。

注意:LoaderInfo オブジェクトのプロパティはすべて読み取り専用です。

EventDispatcher.dispatchEvent() メソッドは、LoaderInfo オブジェクトに適用できません。LoaderInfo オブジェクトで dispatchEvent() を呼び出した場合、IllegalOperationError 例外がスローされます。

次の例では、LoaderInfoExample クラスを使用して、イメージをステージに表示します。ここでは以下の手順を実行します。
  1. プロパティ url を作成します。これはイメージの場所と名前です。
  2. クラスコンストラクターは loader という名前の Loader オブジェクトを作成します。
  3. loader オブジェクトはイベントリスナーをインスタンス化して、イメージが正しくロードされるようにします。
  4. コンストラクターは、request という URLRequest オブジェクトの新しいインスタンスを作成しますが、その前に、ファイル名と場所が分かるように url を渡します。
  5. 次に request オブジェクトが load() メソッド(loader オブジェクトのメソッド)に渡されます。このメソッドでは、イメージが表示リストにロードされます。

重要:この例では、Image.gif という名前のファイルがコンパイル済み SWF ファイルと同じディレクトリに追加されている必要があります。メイン SWF ファイルのサイズ内に収まる領域を持つイメージを使用します。

package { import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderInfoExample extends Sprite { private var url:String = "Image.gif"; public function LoaderInfoExample() { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function initHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo); trace("initHandler: loaderURL=" + info.loaderURL + " url=" + info.url); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } } }
flash.display.Loaderflash.display.Loader.contentflash.display.DisplayObjectflash.display.DisplayObject.loaderInfohttpStatus ネットワーク要求が HTTP を介して行われ、HTTP ステータスコードを検出できる場合に送出されます。flash.events.HTTPStatusEvent.HTTP_STATUSflash.events.HTTPStatusEvent ネットワーク要求が HTTP を介して行われ、HTTP ステータスコードを検出できる場合に送出されます。 Loader.load()unload 読み込まれたオブジェクトが Loader オブジェクトの unload() メソッドを使用して削除されるたびに、LoaderInfo オブジェクトによって送出されます。または 2 番目の読み込みが同じ Loader オブジェクトによって実行され、読み込み開始前に元のコンテンツが削除された場合に、LoaderInfo オブジェクトによって送出されます。flash.events.Event.UNLOADflash.events.Event 読み込まれたオブジェクトが Loader オブジェクトの unload() メソッドを使用して削除されるたびに、LoaderInfo オブジェクトによって送出されます。または 2 番目の読み込みが同じ Loader オブジェクトによって実行され、読み込み開始前に元のコンテンツが削除された場合に、LoaderInfo オブジェクトによって送出されます。 Loader.load()Loader.unload()progress ダウンロード処理を実行中にデータを受信したときに送出されます。flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent ダウンロード処理を実行中にデータを受信したときに送出されます。 Loader.load()open ロード操作が開始したときに送出されます。flash.events.Event.OPENflash.events.Event ロード操作が開始したときに送出されます。 Loader.load()ioError 入出力エラーが発生して読み込み処理が失敗したときに送出されます。flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent 入出力エラーが発生して読み込み処理が失敗したときに送出されます。 Loader.load()init ロードされた SWF ファイルのプロパティおよびメソッドがアクセス可能で使用できる状態の場合に送出されます。flash.events.Event.INITflash.events.Event ロードされた SWF ファイルのプロパティおよびメソッドがアクセス可能で使用できる状態の場合に送出されます。ただし、コンテンツはダウンロード中の可能性があります。次に示す条件に適合するときに LoaderInfo オブジェクトは init イベントを送出します。
  • 読み込まれたオブジェクトに関係したすべてのプロパティとメソッド、および LoaderInfo オブジェクトに関係したすべてのプロパティとメソッドにアクセスできます。
  • すべての子オブジェクトのコンストラクターが完了済みです。
  • ロードされた SWF のメインタイムラインの最初のフレームに含まれるすべての ActionScript コードが実行済みです。

例えば、ムービーまたはアニメーションの最初のフレームがロードされたとき、Event.INIT が送出されます。その時点で、ムービーはアクセス可能になり、表示リストに追加できます。ただし、ムービー全体のダウンロードには、さらに時間がかかる可能性があります。Event.COMPLETE は、ムービー全体がダウンロードされた時点で初めて送出されます。

init イベントは、常に、complete イベントの前に送出されます。

Loader.load()
complete データが正常にロードされたときに送出されます。flash.events.Event.COMPLETEflash.events.Event データが正常にロードされたときに送出されます。つまり、すべてのコンテンツのダウンロードが完了し、ロードが完了したときに送出されます。complete イベントは、常に、init イベントの後に送出されます。 init イベントはオブジェクトにアクセス可能になったときに送出されますが、コンテンツはまだダウンロード中である可能性があります。 Loader.load()getLoaderInfoByDefinition オブジェクトとして定義され、SWF ファイルに関連付けられている LoaderInfo オブジェクトを返します。呼び出し元は、信頼できるローカルのサンドボックスで実行されていません。 SecurityErrorSecurityError関連付けられている LoaderInfo オブジェクトです。 null が、非デバッガービルドで呼び出されたとき(またはデバッグ機能が有効でないとき)、または参照されたオブジェクトに LoaderInfo オブジェクト(AIR ランタイムによって使用されるオブジェクトなど)が関連付けられていないときに返されます。 flash.display:LoaderInfoobjectObject関連付けられた LoaderInfo オブジェクトを取得する対象のオブジェクトです。 オブジェクトとして定義され、SWF ファイルに関連付けられている LoaderInfo オブジェクトを返します。 actionScriptVersion ロード済みの SWF ファイルの ActionScript バージョンです。uintファイルのダウンロードが完了しておらず、要求した情報を取得していない場合 ErrorErrorファイルが SWF ファイルでない場合 ErrorError ロード済みの SWF ファイルの ActionScript バージョンです。言語バージョンは、ActionScriptVersion クラスに列挙されているものを使用して指定されます。例えば、ActionScriptVersion.ACTIONSCRIPT2ActionScriptVersion.ACTIONSCRIPT3 などです。

注意:このプロパティの値は、必ず、ActionScriptVersion.ACTIONSCRIPT2 または ActionScriptVersion.ACTIONSCRIPT3 のいずれかになります。ActionScript 1.0 と 2.0 はどちらも ActionScriptVersion.ACTIONSCRIPT2(バージョン 2.0)と見なされます。このプロパティは、ActionScript 1.0/2.0 と ActionScript 3.0 だけを区別します。

flash.display.ActionScriptVersion
applicationDomain 外部 SWF ファイルが読み込まれると、読み込まれたクラスに含まれているすべての ActionScript 3.0 定義は applicationDomain プロパティに格納されます。flash.system:ApplicationDomainこの呼び出し元のセキュリティサンドボックスからは、この ApplicationDomain にアクセスできません。 SecurityErrorSecurityError 外部 SWF ファイルが読み込まれると、読み込まれたクラスに含まれているすべての ActionScript 3.0 定義は applicationDomain プロパティに格納されます。

SWF ファイル内のすべてのコードは、アプリケーションドメイン内に存在するように定義されます。現在のアプリケーションドメインは、メインアプリケーションが実行されている場所です。システムドメインには、現在のドメインおよび Flash Player または Adobe AIR によって使用されるすべてのクラスを含む、すべてのアプリケーションドメインが含まれます。

システムドメインを除くすべてのアプリケーションドメインには、親ドメインが関連付けられています。メインアプリケーションの applicationDomain の親ドメインは、システムドメインです。ロードされるクラスは、その親によってまだ定義されていない場合にのみ定義されます。ロードされるクラスの定義を新しい定義でオーバーライドすることはできません。

アプリケーションドメインの使用例については、『ActionScript 3.0 開発ガイド』の「クライアントのシステム環境」の章を参照してください。

flash.system.ApplicationDomain
bytesLoaded そのメディアのロード済みのバイト数です。uint そのメディアのロード済みのバイト数です。この数値が bytesTotal の値と同じである場合、すべてのバイト数がロードされます。 bytesTotal メディアファイル全体の圧縮後のバイト数です。uint メディアファイル全体の圧縮後のバイト数です。

最初の progress イベントが、この LoaderInfo オブジェクトの対応する Loader オブジェクトによって送出される前、bytesTotal は 0 です。Loader オブジェクトの最初の progress イベントの後、bytesTotal は、ダウンロードされる実際のバイト数を反映します。

flash.events.ProgressEventflash.display.Loader
bytes LoaderInfo オブジェクトに関連付けられているバイト数です。flash.utils:ByteArrayこの API にアクセスするオブジェクトが、セキュリティの制限のために読み込まれたオブジェクトにアクセスできません。このような状況は、例えば、Loader オブジェクトが contentLoaderInfo.content プロパティにアクセスしようとするときに、ロードされたコンテンツにアクセスするセキュリティの許可が与えられていない場合に生じます。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

SecurityErrorSecurityError
LoaderInfo オブジェクトに関連付けられているバイト数です。
childAllowsParent コンテンツ(子)からロードする側(親)への信頼関係を表します。Boolean ファイルのダウンロードが完了しておらず、要求した情報を取得していない場合に、スローされます。 ErrorError コンテンツ(子)からロードする側(親)への信頼関係を表します。子が親へのアクセスを許可されている場合は true、そうでない場合は false です。このプロパティが true に設定されるのは、子オブジェクトが allowDomain() メソッドを呼び出して親ドメインへの許可を受けている場合、または子ドメインに URL ポリシーがロードされていて親ドメインへの許可を受けている場合です。子と親が同じドメインに置かれている場合、このプロパティは true に設定されます。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

childSandboxBridge Loader オブジェクトのサンドボックスにあるコードによってアクセスできるプロパティとメソッドを公開するために、ロードされたコンテンツのコードで設定できるオブジェクトです。Objectこのプロパティを設定できるのは、ロードされたコンテンツのサンドボックスにあるコンテンツのみです。 SecurityErrorSecurityError Loader オブジェクトのサンドボックスにあるコードによってアクセスできるプロパティとメソッドを公開するために、ロードされたコンテンツのコードで設定できるオブジェクトです。このサンドボックスブリッジによって、アプリケーション以外のドメインからのコンテンツが AIR アプリケーションサンドボックスのスクリプトへのアクセスを制御しており、また、その逆も行っています。サンドボックスブリッジは、サンドボックス間のゲートウェイとして機能し、アプリケーションとアプリケーション以外のセキュリティサンドボックスの間での明示的なやり取りを提供します。 parentSandboxBridgecontentType ロードされたファイルの MIME タイプです。String ロードされたファイルの MIME タイプです。ファイルのロードが正しく行われておらず、タイプを判別できない場合、この値は null です。 次のリストは、想定される値を示しています。
  • "application/x-shockwave-flash"
  • "image/jpeg"
  • "image/gif"
  • "image/png"
content この LoaderInfo オブジェクトに関係したロードされたオブジェクトです。flash.display:DisplayObjectこの API にアクセスするオブジェクトが、セキュリティの制限のために読み込まれたオブジェクトにアクセスできません。このような状況は、例えば、Loader オブジェクトが contentLoaderInfo.content プロパティにアクセスしようとするときに、ロードされたコンテンツにアクセスするセキュリティの許可が与えられていない場合に生じます。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

SecurityErrorSecurityError
この LoaderInfo オブジェクトに関係したロードされたオブジェクトです。
frameRate 読み込み済みの SWF ファイルに関する 1 秒ごとのフレーム数を表す公称のフレームレートです。Numberファイルのダウンロードが完了しておらず、要求した情報を取得していない場合 ErrorErrorファイルが SWF ファイルでない場合 ErrorError 読み込み済みの SWF ファイルに関する 1 秒ごとのフレーム数を表す公称のフレームレートです。この数値はほとんどの場合整数ですが、整数でなくても構いません。

この値は、実際のフレームレートとは異なる場合があります。Flash Player または Adobe AIR は、すべてのロード済み SWF ファイルについて一度に 1 つのフレームレートしか使用せず、このフレームレートはメイン SWF ファイルの公称のフレームレートによって決まります。 また、メインのフレームレートは、ハードウェア、サウンド同期、およびその他の要素によっては達成できない場合があります。

height 読み込まれたファイルの規格高さです。intファイルのダウンロードが完了しておらず、要求した情報を取得していない場合 ErrorError 読み込まれたファイルの規格高さです。読み込まれたコンテンツやその親表示オブジェクトは拡大 / 縮小されている場合があるため、この値は表示されているコンテンツの実際の高さとは異なる場合があります。 isURLInaccessible LoaderInfo.url プロパティが切り詰められているかどうかを示します。Boolean LoaderInfo.url プロパティが切り詰められているかどうかを示します。isURLInaccessible 値が true の場合、LoaderInfo.url の値は、コンテンツのロード元となる最終的な URL のドメイン部分のみになります。例えば、コンテンツが http://www.adobe.com/assets/hello.swf から読み込まれ、LoaderInfo.url プロパティの値が http://www.adobe.com の場合、このプロパティは切り詰められています。isURLInaccessible の値は、以下の値もすべて true の場合のみ true になります。
  • コンテンツの読み込み中に HTTP リダイレクトが発生しました。
  • Loader.load() の呼び出し元の SWF ファイルが、コンテンツの最終的な URL とは別のドメインからのファイルです。
  • Loader.load() の呼び出し元の SWF ファイルに、コンテンツにアクセスする許可がありません。コンテンツにアクセスする許可は BitmapData.draw() に許可が与えられる場合と同じ方法で与えられます。つまり、Security.allowDomain() を呼び出して、SWF ファイルにアクセスします(または、SWF ファイルコンテンツ以外の場合、ポリシーファイルを作成して、LoaderContext.checkPolicyFile プロパティを使用します)。

注意:isURLInaccessible プロパティは Flash Player 10.1 および AIR 2.0 用に追加されました。ただし、Flash ランタイムでサポートされている場合、このプロパティはすべてのバージョンの SWF ファイルで使用できます。このため、オーサリングツールを「strict モード」で使用するとコンパイルエラーが発生します。このエラーを回避するには、間接構文 myLoaderInfo["isURLInaccessible"] を使用するか、strict モードを無効にします。Flash Professional CS5 または Flex SDK 4.1 を使用している場合、Flash Player 10.1 および AIR 2 以前にリリースされたランタイム向けに、この API を使用してコンパイルすることができます。

AIR のアプリケーションコンテンツの場合、このプロパティの値は常に false です。

urlBitmapData.draw()flash.system.Security.allowDomain()flash.system.LoaderContext.checkPolicyFile
loaderURL この LoaderInfo オブジェクトによって記述されるメディアの読み込みを開始した SWF ファイルの URL です。String この LoaderInfo オブジェクトによって記述されるメディアの読み込みを開始した SWF ファイルの URL です。SWF ファイルのメインクラスのインスタンスの場合、この URL は、SWF ファイル自体の URL と同じものです。 loader この LoaderInfo オブジェクトに関係した Loader オブジェクトです。flash.display:Loaderこの API にアクセスするオブジェクトが、セキュリティの制限のために Loader オブジェクトにアクセスできません。これは、例えば、ロードされた SWF ファイルがその loaderInfo.loader プロパティにアクセスしようとするときに、ロード元 SWF ファイルにアクセスするセキュリティの許可が与えられていない場合に生じます。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

SecurityErrorSecurityError
この LoaderInfo オブジェクトに関係した Loader オブジェクトです。この LoaderInfo オブジェクトが、SWF ファイルのメインクラスのインスタンスの loaderInfo プロパティである場合、関係する Loader オブジェクトはありません。
parameters ロード済みの SWF ファイルに提供されるパラメーターを表す、名前と値の組を含んだオブジェクトです。Object ロード済みの SWF ファイルに提供されるパラメーターを表す、名前と値の組を含んだオブジェクトです。

for-in ループを使用すると、parameters オブジェクトからすべての名前と値を抽出できます。

パラメーターは、メイン SWF ファイルの URL のクエリ文字列と、FlashVars HTML パラメーターの値の 2 つから提供されます。この HTML パラメーターはメイン SWF ファイルにのみ影響します。

parameters プロパティは、メインタイムラインのプロパティとして SWF ファイルパラメーターを提供する ActionScript 1.0 および 2.0 の方法を置き換えます。

parameters プロパティの値は、ActionScript 1.0 または 2.0 を使用する SWF ファイルを含んだ Loader オブジェクトについては null です。ActionScript 3.0 を使用する SWF ファイルを含んだ Loader オブジェクトについてのみ、null 以外の値になります。

parentAllowsChild ロードする側(親)からコンテンツ(子)への信頼関係を表します。Boolean ファイルのダウンロードが完了しておらず、要求した情報を取得していない場合に、スローされます。 ErrorError ロードする側(親)からコンテンツ(子)への信頼関係を表します。親が子のアクセスを許可している場合は true、そうでない場合は false です。このプロパティが true に設定されるのは、親オブジェクトが allowDomain() メソッドを呼び出して子ドメインへの許可を受けている場合、または親ドメインに URL ポリシーファイルがロードされていて子ドメインへの許可を受けている場合です。子と親が同じドメインに置かれている場合、このプロパティは true に設定されます。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

parentSandboxBridge ロードされたコンテンツのコードによってアクセスできるプロパティとメソッドを公開するために、Loader オブジェクトのサンドボックス内にあるコードで設定できるオブジェクトです。Objectこのプロパティを設定できるのは、Loader オブジェクトのサンドボックス内にあるコンテンツのみです。 SecurityErrorSecurityError ロードされたコンテンツのコードによってアクセスできるプロパティとメソッドを公開するために、Loader オブジェクトのサンドボックス内にあるコードで設定できるオブジェクトです。このサンドボックスブリッジによって、アプリケーション以外のドメインからのコンテンツが AIR アプリケーションサンドボックスのスクリプトへのアクセスを制御しており、また、その逆も行っています。サンドボックスブリッジは、サンドボックス間のゲートウェイとして機能し、アプリケーションとアプリケーション以外のセキュリティサンドボックスの間での明示的なやり取りを提供します。 childSandboxBridgesameDomain ロードする側とそのコンテンツの間のドメインの関係を次のように表します。ドメインが同じ場合は true、異なる場合は false です。Boolean ファイルのダウンロードが完了しておらず、要求した情報を取得していない場合に、スローされます。 ErrorError 読み込む側とそのコンテンツの間のドメインの関係を次のように表します。ドメインが同じ場合は true、異なる場合は false です。 sharedEvents セキュリティ境界を越えてイベントを交換するために使用される EventDispatcher インスタンスです。flash.events:EventDispatcher セキュリティ境界を越えてイベントを交換するために使用される EventDispatcher インスタンスです。Loader オブジェクトとロードされたコンテンツが、互いに信頼関係を確立していないセキュリティドメインに置かれている場合でも、どちらも sharedEvents にアクセスし、このオブジェクトを経由してイベントを送受信することができます。 swfVersion ロード済みの SWF ファイルのファイル形式のバージョンです。uintファイルのダウンロードが完了しておらず、要求した情報を取得していない場合 ErrorErrorファイルが SWF ファイルでない場合 ErrorError ロード済みの SWF ファイルのファイル形式のバージョンです。ファイル形式は、SWFVersion クラスに列挙されているものを使用して指定されます。例えば、SWFVersion.FLASH7SWFVersion.FLASH9 などです。 flash.display.SWFVersionuncaughtErrorEvents この LoaderInfo オブジェクトの SWF ファイルのコードで不明なエラーが発生したときに、uncaughtError イベントを送出するオブジェクトです。flash.events:UncaughtErrorEvents この LoaderInfo オブジェクトの SWF ファイルのコードで不明なエラーが発生したときに、uncaughtError イベントを送出するオブジェクトです。不明なエラーが発生するのは、いずれかの try..catch ブロックの外側でエラーがスローされたり、登録されたリスナーを持たない ErrorEvent オブジェクトが送出される場合です。

このプロパティが作成されるのは、この LoarderInfoに関連付けられた SWF がロードを完了したときです。それまでは、uncaughtErrorEvents プロパティの値は null です。 ActionScript 専用のプロジェクトでは、SWF ファイルのメインクラスのコンストラクター関数の実行中または実行後にこのプロパティにアクセスできます。Flex プロジェクトでは、uncaughtErrorEvents プロパティは、applicationComplete イベントが送出された後に使用できるようなります。

次の例では、ActionScript プロジェクトで不明なエラーを検出するために、不明エラーイベントハンドラーを使用する方法を示します。この例では、不明なエラーを検出する uncaughtError イベントハンドラーを定義します。また、ボタンも作成され、それをクリックすると不明エラーハンドラーによって検出されたエラーがスローされます。

コンストラクターで、コードは LoaderInfo オブジェクトの uncaughtErrorEvents プロパティが送出した uncaughtError イベントのリスナーを登録します。

uncaughtErrorHandler() メソッドで、コードは error プロパティのデータ型をチェックし、その型に応じた応答を返します。

package { import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.MouseEvent; import flash.events.UncaughtErrorEvent; public class UncaughtErrorEventExample extends Sprite { public function UncaughtErrorEventExample() { loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); drawUI(); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } private function drawUI():void { var btn:Sprite = new Sprite(); btn.graphics.clear(); btn.graphics.beginFill(0xFFCC00); btn.graphics.drawRect(0, 0, 100, 50); btn.graphics.endFill(); addChild(btn); btn.addEventListener(MouseEvent.CLICK, clickHandler); } private function clickHandler(event:MouseEvent):void { throw new Error("Gak!"); } } }
次の例は、上記の例を Flex 用に変更したものです。ここでは、ActionScript クラスの代わりに MXML ドキュメントをルートコンテンツとして使用しています。 <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" applicationComplete="applicationCompleteHandler();"> <fx:Script> <![CDATA[ import flash.events.ErrorEvent; import flash.events.MouseEvent; import flash.events.UncaughtErrorEvent; private function applicationCompleteHandler():void { loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } private function clickHandler(event:MouseEvent):void { throw new Error("Gak!"); } ]]> </fx:Script> <s:Button label="Cause Error" click="clickHandler(event);"/> </s:WindowedApplication>
UncaughtErrorEventLoader.uncaughtErrorEvents
url 読み込まれるメディアの URL です。String 読み込まれるメディアの URL です。

この LoaderInfo オブジェクトの対応する Loader オブジェクトによって最初の progress イベントが送出されるまでは、url プロパティの値に、Loader オブジェクトの load() メソッドの呼び出しで指定した初期 URL しか反映されていない可能性があります。最初の progress イベントの後は、url プロパティはリダイレクトや相対 URL が解決された後のメディアの最終的な URL を反映します。

場合によっては、url プロパティの値が切り詰められていることがあります。詳しくは、isURLInaccessible プロパティを参照してください。

isURLInaccessibleflash.display.Loader.load()
width 読み込まれたコンテンツの規格幅です。intファイルのダウンロードが完了しておらず、要求した情報を取得していない場合 ErrorError 読み込まれたコンテンツの規格幅です。読み込まれたコンテンツやその親表示オブジェクトは拡大 / 縮小されている場合があるため、この値は表示されているコンテンツの実際の幅とは異なる場合があります。
StageQuality StageQuality クラスは、Stage.quality プロパティの値を提供します。Object StageQuality クラスは、Stage.quality プロパティの値を提供します。 flash.display.Stage.qualityBEST 非常に高いレンダリング品質を指定します。グラフィックは 4 x 4 ピクセルグリッドを使用してアンチエイリアス処理され、ビットマップは常にスムージングされます。bestString 非常に高いレンダリング品質を指定します。グラフィックは 4 x 4 ピクセルグリッドを使用してアンチエイリアス処理され、ビットマップは常にスムージングされます。 HIGH 高いレンダリング品質を指定します。グラフィックは 4 x 4 ピクセルグリッドを使用してアンチエイリアス処理されます。ビットマップは、ムービーが静的なものである場合は、スムージングされます。highString 高いレンダリング品質を指定します。グラフィックは 4 x 4 ピクセルグリッドを使用してアンチエイリアス処理されます。ビットマップは、ムービーが静的なものである場合は、スムージングされます。 LOW 低いレンダリング品質を指定します。グラフィックはアンチエイリアス処理されず、ビットマップはスムージングされません。lowString 低いレンダリング品質を指定します。グラフィックはアンチエイリアス処理されず、ビットマップはスムージングされません。 MEDIUM 普通のレンダリング品質を指定します。グラフィックは 2 x 2 ピクセルグリッドを使用してアンチエイリアス処理されますが、ビットマップはスムージングされません。mediumString 普通のレンダリング品質を指定します。グラフィックは 2 x 2 ピクセルグリッドを使用してアンチエイリアス処理されますが、ビットマップはスムージングされません。この設定は、テキストを含まないムービーに適しています。 BitmapData BitmapData クラスを使用すると、Bitmap オブジェクトのビットマップイメージのデータ(ピクセル)を処理できます。これを使用すると、Bitmap オブジェクトのビットマップデータを処理できます。 flash.display:IBitmapDrawableObject BitmapData クラスを使用すると、Bitmap オブジェクトのデータ (ピクセル) を処理できます。BitmapData クラスのメソッドを使用して、任意のサイズの透明または不透明のビットマップイメージを作成し、実行時に様々な方法で操作できます。さらに、flash.display.Loader クラスを使ってロードされるビットマップイメージの BitmapData にアクセスすることもできます。

このクラスを使用すると、ビットマップのレンダリング処理を Flash Player 内部の表示更新ルーチンから分離できます。BitmapData オブジェクトを直接操作することで複雑なイメージを作成できるので、ベクターデータのコンテンツを連続的に再描画するフレーム単位のオーバーヘッドを避けることができます。

BitmapData クラスのメソッドは、(ビットマップ以外の表示オブジェクトでは使用可能な)フィルターを使って設定できないような効果をサポートします。

BitmapData オブジェクトには、ピクセルデータの配列が含まれています。このデータは、完全に不透明なビットマップ、またはアルファチャンネルデータを含む透明なビットマップを表現できます。いずれの種類の BitmapData オブジェクトも 32 ビット整数のバッファーとして保存されます。各 32 ビット整数は、ビットマップ内の 1 つのピクセルのプロパティを決定します。

各 32 ビット整数は、アルファ透明度とピクセルの赤緑青(ARGB)の値を表す 4 つの 8 ビットチャンネル値(0 ~ 255)の組み合わせです。(ARGB 値では、最上位バイトがアルファチャンネル値を表し、続いて赤、緑、青を表します)。

この 4 つのチャンネル(アルファ、赤、緑、青)は、BitmapData.copyChannel() メソッド、または DisplacementMapFilter.componentX および DisplacementMapFilter.componentY プロパティで使用する場合に数値として表されます。これらの数値は、BitmapDataChannel クラスの次の定数によって表されます。

  • BitmapDataChannel.ALPHA
  • BitmapDataChannel.RED
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.BLUE

Bitmap オブジェクトの bitmapData プロパティを使用すると、BitmapData オブジェクトを Bitmap オブジェクトに関連付けることができます。

Graphics.beginBitmapFill() メソッドを使用すると、BitmapData オブジェクトを使って Graphics オブジェクトを塗りつぶすことができます。

AIR ランタイムでは、DockIcon、Icon、InteractiveIcon、SystemTrayIcon の各クラスが、アイコンのビットマップイメージを定義する BitmapData オブジェクトの配列である bitmaps プロパティを含んでいます。

AIR 1.5 および Flash Player 10 では、BitmapData オブジェクトの最大サイズは幅または高さで 8,191 ピクセルです。総ピクセル数が 16,777,215 ピクセルを超えることはできません。(したがって、BitmapData オブジェクトの幅が 8,191 ピクセルであった場合、高さは 2,048 ピクセルまでしか指定できません)。Flash Player 9 以前および AIR 1.1 以前では、制限は高さ 2,880 ピクセル、幅 2,880 ピクセルです。

BitmapData オブジェクトのいずれかのメソッドやプロパティを呼び出したときに、BitmapData オブジェクトが無効なものであった場合(例えば height == 0 かつ width == 0 の場合)や、dispose() で既に破棄されたものであった場合は、ArgumentError エラーがスローされます。

次の例では、BitmapDataExample クラスを使用して、"Image.gif" イメージをデフォルトの位置 (0, 0) にある DisplayObject にロードします。"Image.gif" のコピーを下のイメージの右に配置します。このコピーでは、threshold() メソッドを使用するテストに合格したピクセルに新しい色が適用されています。これを行うには、以下の手順を実行します。
  1. url プロパティを作成します。これはイメージファイルの場所と名前です。
  2. クラスコンストラクターが Loader オブジェクトを作成します。これは、completeHandler() メソッドがイメージ操作を完了したときに送出される、イベントリスナーをインスタンス化します。
  3. 次に、request URLRequest オブジェクトが、loader.load() に渡されます。これは、表示オブジェクトを使用してメモリにイメージをロードします。
  4. 次にイメージが表示リストに配置され、イメージは画面の座標 x = 0、y = 0 に表示されます。
  5. 続いて、completeHandler() メソッドで次の処理が実行されます。
    • 2 番目の Loader オブジェクトと Bitmap オブジェクトを作成します。Bitmap オブジェクトは、この Loader オブジェクトで初期化されます。
    • 2 番目の Bitmap オブジェクトである duplicate を作成します。これは、duplicateImage() メソッドを呼び出し、元のイメージを複製します。
    • BitmapData オブジェクトを作成すると、これが duplicate オブジェクトの BitmapData オブジェクトに割り当てられます。
    • 元のイメージと同じ座標、幅、高さで初期化された新しい Rectangle オブジェクトを作成します。
    • 新しい Point オブジェクトを作成します。デフォルトでは x = 0、y = 0 に作成されます。
    • 次に示す変数を作成します。
      • operation — しきい値が元の値以上である場合に、新しい色を適用します。
      • threshold — 各ピクセルの比較対象の値。この例では、アルファ 0xCC の明るい灰色に設定されます。
      • color — しきい値のテストに合格したピクセルに設定する色。この例では黄色です。
      • mask — 正反対の色。この例では透明色の青色です。
      • copySourcefalse に設定します。これは、しきい値を満たさなかった場合には、ピクセル値がコピーされないことを示します。しきい値のテストに合格したピクセルだけが変更されるため、この値に意味はありません。
    • 上記の変数を使用して threshold() メソッドを呼び出します。結果のしきい値の等式は、if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00 のようになります。

注意:

  • 「ローカルでの再生に関するセキュリティ」を「ローカルファイルにのみアクセスする」に設定して SWF ファイルをコンパイルする必要があります。
  • この例では、"Image.gif" という名前のファイルが SWF ファイルと同じディレクトリに配置されている必要があります。
  • イメージは、幅が約 80 ピクセル以内のものを使用することをお勧めします。

package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapDataExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapDataExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.Bitmap.bitmapDataflash.desktop.DockIcon.bitmapsflash.display.Graphics.beginBitmapFill()flash.desktop.Icon.bitmapsflash.desktop.InteractiveIcon.bitmapsflash.display.Loaderflash.desktop.SystemTrayIcon.bitmapsBitmapData 指定された幅と高さで BitmapData オブジェクトを作成します。幅や高さが最大サイズを超えています。 ArgumentErrorArgumentErrorwidthintビットマップイメージの幅(ピクセル単位)です。 heightintビットマップイメージの高さ(ピクセル単位)です。 transparentBooleantrueビットマップイメージがピクセル単位の透明度をサポートするかどうかを指定します。デフォルト値は true です(透明)。完全に透明なビットマップを作成するには、transparent パラメーターの値を true に、fillColor パラメーターの値を 0x00000000(または 0)に設定します。transparent プロパティを false に設定すると、レンダリングのパフォーマンスが若干向上することがあります。 fillColoruint0xFFFFFFFFビットマップイメージ領域を塗りつぶすのに使用する 32 ビット ARGB カラー値です。デフォルト値は 0xFFFFFFFF(白)です。 指定された幅と高さで BitmapData オブジェクトを作成します。fillColor パラメーターに値を指定した場合、ビットマップのすべてのピクセルにその色が設定されます。

falsetransparent パラメーターに渡さない限り、デフォルトではビットマップが透明として作成されます。不透明のビットマップを作成した後、それを透明のビットマップに変更することはできません。不透明のビットマップに含まれるすべてのピクセルは、24 ビットのカラーチャンネル情報だけを使用します。ビットマップを透明に定義した場合、すべてのピクセルは、アルファ透明チャンネルを含む 32 ビットのカラーチャンネル情報を使用します。

AIR 1.5 および Flash Player 10 では、BitmapData オブジェクトの最大サイズは幅または高さで 8,191 ピクセルです。総ピクセル数が 16,777,215 ピクセルを超えることはできません。(したがって、BitmapData オブジェクトの幅が 8,191 ピクセルであった場合、高さは 2,048 ピクセルまでしか指定できません)。Flash Player 9 以前および AIR 1.1 以前では、高さの限界は 2,880 ピクセルで幅の限界は 2,880 ピクセルです。 幅または高さに 2880 より大きい値を指定すると、新しいインスタンスは作成されません。

applyFilter ソースイメージとフィルターオブジェクトを受け取り、フィルターを適用して得られるイメージを生成します。sourceBitmapData、sourceRect、destPoint、または filter が null です。 TypeErrorTypeErrorBitmapData オブジェクトの透明度は、フィルター操作と互換性がありません。 IllegalOperationErrorflash.errors:IllegalOperationErrorフィルターが正常に適用されたかどうかを示す数値です。フィルターが正常に適用されると、ゼロが返されます。フィルターの適用中にエラーが発生すると、負の数値が返されます。 sourceBitmapDataflash.display:BitmapData使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData インスタンスを参照することもできます。 sourceRectflash.geom:Rectangle入力として使用するソースイメージの領域を定義する矩形です。 destPointflash.geom:Pointソース矩形の左上隅に対応する、ターゲットイメージ(現在の BitmapData インスタンス)内のポイントです。 filterflash.filters:BitmapFilterフィルター適用処理に使用されるフィルターオブジェクトです。それぞれの種類のフィルターには、次のような要件があります。
  • BlurFilter — このフィルターは、透明または不透明なソースイメージとターゲットイメージを使用できます。イメージのフォーマットが一致しない場合、フィルター適用中に作成されるソースイメージのコピーがターゲットイメージのフォーマットに合わせられます。
  • BevelFilter、DropShadowFilter、GlowFilter、ChromeFilter — これらのフィルターのターゲットイメージは透明イメージでなければなりません。DropShadowFilter または GlowFilter を呼び出すと、ドロップシャドウまたはグローのアルファチャンネルデータを含むイメージが作成されます。ドロップシャドウはターゲットイメージ上に作成されません。これらのフィルターを不透明なターゲットイメージに対して使用すると、例外がスローされます。
  • ConvolutionFilter — このフィルターは、透明または不透明なソースイメージとターゲットイメージを使用できます。
  • ColorMatrixFilter — このフィルターは、透明または不透明なソースイメージとターゲットイメージを使用できます。
  • DisplacementMapFilter — このフィルターは、透明または不透明なソースイメージとターゲットイメージを使用できますが、イメージの形式はソースとターゲットで同じである必要があります。
ソースイメージとフィルターオブジェクトを受け取り、フィルターを適用して得られるイメージを生成します。

このメソッドはビルトインフィルターオブジェクトの動作に依存します(このオブジェクトは、入力ソース矩形によって影響を受けるターゲット矩形を決定します)。

フィルターを適用した後、結果として得られるイメージが入力イメージよりも大きくなることがあります。例えば、BlurFilter クラスを使用してソース矩形 (50,50,100,100) とターゲットポイント (10,10) をぼかすと、ターゲットイメージで変更される領域は、ぼかしのために、(10,10,60,60) よりも大きくなります。これは、applyFilter() 呼び出し時に内部で発生します。

sourceRect パラメーター(sourceBitmapData パラメーターのパラメーター)が内側領域(200 x 200 のイメージ内の (50,50,100,100) など)である場合、フィルターは、sourceRect パラメーターの外側にあるソースピクセルを使用して、ターゲット矩形を生成します。

sourceBitmapData パラメーターとして指定されたオブジェクトと BitmapData オブジェクトが同じであれば、アプリケーションはオブジェクトの一時コピーを使ってフィルターを実行します。最適なパフォーマンスを得るには、このような状況を避けてください。

次の例では、BitmapData インスタンスにぼかしフィルターを適用する方法について説明します。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
flash.filters.BevelFilterflash.filters.BlurFilterflash.filters.ColorMatrixFilterflash.filters.ConvolutionFilterflash.filters.DisplacementMapFilterflash.filters.DropShadowFilterflash.filters.GlowFilterflash.display.DisplayObject.filters
clone 新しい BitmapData オブジェクトとして、元のインスタンスのクローンを返します。含まれるビットマップはまったく同じコピーになります。元のオブジェクトと同一の新しい BitmapData オブジェクトです。 flash.display:BitmapData元のビットマップとまったく同一のコピーを含む新しい BitmapData オブジェクトを返します。 新しい BitmapData オブジェクトとして、元のインスタンスのクローンを返します。含まれるビットマップはまったく同じコピーになります。 次の例は、BitmapData インスタンスのクローンを作成する方法を示しています。さらに、クローンされた BitmapData インスタンスを変更しても、元のインスタンスは変更されないことを示しています。 import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(100, 80, false, 0x00000000); var bmd2:BitmapData = bmd1.clone(); bmd1.setPixel32(1, 1, 0xFFFFFFFF); trace(bmd1.getPixel32(1, 1).toString(16)); // ffffffff trace(bmd2.getPixel32(1, 1).toString(16)); // ff000000 var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); bm2.x = 110; this.addChild(bm2); colorTransform ColorTransform オブジェクトを使用して、ビットマップイメージの特定領域のカラー値を調整します。rect または colorTransform が null です。 TypeErrorTypeErrorrectflash.geom:RectangleColorTransform オブジェクトが適用されるイメージの領域を定義する Rectangle オブジェクトです。 colorTransformflash.geom:ColorTransform適用されるカラー変換値を記述する ColorTransform オブジェクトです。 ColorTransform オブジェクトを使用して、ビットマップイメージの特定領域のカラー値を調整します。矩形がビットマップイメージの境界と一致する場合、このメソッドはイメージ全体のカラー値を変換します。 次の例は、カラー変換を BitmapData オブジェクトの左半分(矩形)に適用する方法を示しています。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.ColorTransform; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFF0000); var cTransform:ColorTransform = new ColorTransform(); cTransform.alphaMultiplier = 0.5 var rect:Rectangle = new Rectangle(0, 0, 40, 30); bmd.colorTransform(rect, cTransform); var bm:Bitmap = new Bitmap(bmd); addChild(bm); flash.geom.ColorTransformflash.geom.Rectanglecompare 2 つの BitmapData オブジェクトを比較します。otherBitmapData が null です。 TypeErrorTypeError2 つの BitmapData オブジェクトのサイズ(幅と高さ)が同じであれば、このメソッドは、2 つのオブジェクト間の差分を示す新しい BitmapData オブジェクトを返します(主な説明の項を参照してください)。2 つの BitmapData オブジェクトが等しい場合、このメソッドは数値 0 を返します。BitmapData オブジェクトの幅が等しくない場合、メソッドは数値 -3 を返します。BitmapData オブジェクトの高さが等しくない場合、メソッドは数値 -4 を返します。 ObjectotherBitmapDataflash.display:BitmapDataソース BitmapData オブジェクトと比較される BitmapData オブジェクトです。 2 つの BitmapData オブジェクトを比較します。2 つの BitmapData オブジェクトのサイズ(幅と高さ)が同じであれば、メソッドは新しい BitmapData オブジェクトを返します。この新しいオブジェクトの各ピクセルは、2 つのソースオブジェクトのピクセル間の「差分」です。
  • 2 つのピクセルが等しい場合、差分ピクセルは 0x00000000 です。
  • 2 つのピクセルの RGB 値(アルファ値は無視)が異なる場合、差分ピクセルは 0xRRGGBB です。ここで、RR/GG/BB は赤、緑、および青の各チャンネル間の個別の差分値(ソースオブジェクトのピクセル値から otherBitmapData オブジェクトのピクセル値を引いた値)を表します。この場合、アルファチャネルの差分は無視されます。
  • アルファチャンネルの値だけが異なる場合、ピクセル値は 0xZZFFFFFF です。ここで、ZZ はアルファ値の差分(ソースオブジェクトのアルファ値から otherBitmapData オブジェクトのアルファ値を引いた値)を表します。

例えば、次のような 2 つの BitmapData オブジェクトがあるとします。

var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200

注意:2 つの BitmapData オブジェクトを塗りつぶすために使用されるそれぞれの色の RGB 値はわずかに異なります(0xFF0000 と 0xFFAA00)。compare() メソッドの結果として新しい BitmapData オブジェクトが生成され、その各ピクセルは 2 つのビットマップ間の RGB 値の差分を示します。

次のような 2 つの BitmapData オブジェクトがあるとします。両者の RGB カラーは同じですが、アルファ値は異なります。

var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel32(0,0).toString(16); // 0x33ffffff

compare() メソッドの結果として新しい BitmapData オブジェクトが生成され、その各ピクセルは 2 つのビットマップ間のアルファ値の差分を示します。

BitmapData オブジェクトが等しい(幅、高さおよびピクセル値が同じ)場合、このメソッドは数値 0 を返します。

BitmapData オブジェクトの幅が等しくない場合、このメソッドは数値 -3 を返します。

BitmapData オブジェクトの高さが等しくない場合、幅が同じであれば、このメソッドは数値 -4 を返します。

次の例では、幅の異なる 2 つの Bitmap オブジェクトを比較します(それぞれの幅は 50 と 60)。

var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00); trace(bmd1.compare(bmd2)); // -4
次の例では、同じサイズの 2 つの BitmapData オブジェクトを比較した結果であるピクセル値が BitmapData オブジェクトの中に含まれます。 import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = BitmapData(bmd1.compare(bmd2)); var diffValue:String = diffBmpData.getPixel32(1, 1).toString(16); trace (diffValue); // 33ffffff var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 60;
copyChannel 別の BitmapData オブジェクトまたは現在の BitmapData オブジェクトの 1 つのチャンネルのデータを、現在の BitmapData オブジェクトのチャンネルに転送します。sourceBitmapData、sourceRect、または destPoint が null です。 TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapData使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData オブジェクトを参照することもできます。 sourceRectflash.geom:Rectangleソース側の Rectangle オブジェクトです。ビットマップ内のより小さな領域のチャンネルデータだけをコピーするには、BitmapData オブジェクトのサイズ全体よりも小さいソース矩形を指定します。 destPointflash.geom:Point新しいチャンネルデータが配置される矩形領域の左上隅を表すターゲット Point オブジェクトです。ある特定の領域のチャンネルデータだけをターゲットイメージ内の別の領域にコピーするには、(0,0) 以外のポイントを指定します。 sourceChanneluintソースチャンネルです。BitmapDataChannel クラスの値(BitmapDataChannel.REDBitmapDataChannel.BLUEBitmapDataChannel.GREENBitmapDataChannel.ALPHA)を使用します。 destChanneluintターゲットチャンネルです。BitmapDataChannel クラスの値(BitmapDataChannel.REDBitmapDataChannel.BLUEBitmapDataChannel.GREENBitmapDataChannel.ALPHA)を使用します。 別の BitmapData オブジェクトまたは現在の BitmapData オブジェクトの 1 つのチャンネルのデータを、現在の BitmapData オブジェクトのチャンネルに転送します。ターゲット BitmapData オブジェクト内のその他のチャンネルのデータはすべて保たれます。

ソースチャンネルの値とターゲットチャンネルの値は、次のいずれかになります。

  • BitmapDataChannel.RED
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.BLUE
  • BitmapDataChannel.ALPHA
次の例は、BitmapData オブジェクト内の赤チャンネルを、20×20 ピクセル領域にわたってオブジェクト独自の青チャンネルにコピーする方法を示しています。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd.copyChannel(bmd, rect, pt, BitmapDataChannel.RED, BitmapDataChannel.BLUE); var bm:Bitmap = new Bitmap(bmd); this.addChild(bm);
flash.geom.Rectangle
copyPixels イメージ間のピクセル操作(伸長、回転、カラー効果なし)を高速に実行するルーチンを提供します。sourceBitmapData、sourceRect または destPoint が null です。 TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapDataピクセルのコピー元となる入力ビットマップイメージです。ソースイメージは、別の BitmapData インスタンスにすることも、現在の BitmapData インスタンスを参照することもできます。 sourceRectflash.geom:Rectangle入力として使用するソースイメージの領域を定義する矩形です。 destPointflash.geom:Pointターゲットポイントです。新しいピクセルが配置される矩形領域の左上隅を表します。 alphaBitmapDataflash.display:BitmapDatanull第 2 のアルファ BitmapData オブジェクトソースです。 alphaPointflash.geom:Pointnullアルファ BitmapData オブジェクトソース内のポイントです。sourceRect パラメーターの左上隅に対応します。 mergeAlphaBooleanfalseアルファチャンネルを使用するには、値を true に設定します。アルファチャンネルを使用せずにピクセルをコピーするには、値を false に設定します。 イメージ間のピクセル操作(伸長、回転、カラー効果なし)を高速に実行するルーチンを提供します。このメソッドは、ソースイメージの矩形領域を、ターゲット BitmapData オブジェクトのターゲットポイントにある同じサイズの矩形領域にコピーします。

alphaBitmap パラメーターと alphaPoint パラメーターを含めれば、2 番目のイメージをソースイメージのアルファソースとして使用できます。ソースイメージにアルファデータがある場合、両方のアルファデータセットを使用して、ソースイメージのピクセルがソースイメージ上に合成されます。alphaPoint パラメーターは、アルファイメージ内のポイントであり、ソース側矩形の左上隅に対応するものです。ソースイメージとアルファイメージが交わらない部分のピクセルは、ターゲットイメージにコピーされません。

mergeAlpha プロパティは、透明なイメージを別の透明なイメージにコピーするときにアルファチャンネルを使用するかどうかを制御します。アルファチャンネルを使用してピクセルをコピーするには、mergeAlpha プロパティを true に設定します。mergeAlpha プロパティのデフォルト値は false です。

次の例は、1 つの BitmapData オブジェクト内のピクセルを、20×20 ピクセル領域にわたって別の BitmapData オブジェクトにコピーする方法を示しています。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
dispose BitmapData オブジェクトの格納に使用されるメモリを解放します。 BitmapData オブジェクトの格納に使用されるメモリを解放します。

dispose() メソッドをイメージに対して呼び出すと、イメージの高さと幅が 0 に設定されます。それ以降、この BitmapData インスタンスのメソッドまたはプロパティを呼び出すと失敗し、例外がスローされます。

BitmapData.dispose() は、実際のビットマップデータが占めていたメモリ領域を即時に解放します(ビットマップは最大で 64MB のメモリ領域を使用します)。BitmapData.dispose() を使用した後は BitmapData オブジェクトを使用できなくなり、BitmapData オブジェクトに対して関数を呼び出すと、Flash ランタイムから例外が返されます。ただし、BitmapData.dispose() では BitmapData オブジェクト(約 128 バイト)のガベージコレクションは行われません。実際の BitmapData オブジェクトが占めていたメモリ領域は、ガベージコレクターによって BitmapData オブジェクトが回収された時点で解放されます。

次の例は、dispose() メソッドに対する呼び出し(例外がスロー)の後、BitmapData オブジェクトを呼び出したときの効果を示しています。 import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x000000FF); trace(myBitmapData.getPixel(1, 1)); // 255 == 0xFF myBitmapData.dispose(); try { trace(myBitmapData.getPixel(1, 1)); } catch (error:Error) { trace(error); // ArgumentError }
flash.system.System.gc()
draw Flash ランタイムのベクターレンダラーを使用して、source 表示オブジェクトをビットマップイメージ上に描画します。source パラメーターが、BitmapData または DisplayObject オブジェクトではありません。 ArgumentErrorArgumentErrorsource オブジェクト、および(Sprite または MovieClip オブジェクトの)すべての子オブジェクトが呼び出し元と同じドメインに属していないか、Security.allowDomain() メソッド呼び出し後に呼び出し元からアクセスできるコンテンツに含まれていません。この制限事項はアプリケーションセキュリティサンドボックス内の AIR コンテンツには適用されません。 SecurityErrorSecurityErrorsource が null であるか、有効な IBitmapDrawable オブジェクトではありません。 ArgumentErrorArgumentErrorsourceflash.display:IBitmapDrawableBitmapData オブジェクトに描画される表示オブジェクトまたは BitmapData オブジェクトです (DisplayObject および BitmapData クラスは IBitmapDrawable インターフェイスを実装しています)。 matrixflash.geom:Matrixnullビットマップの座標を拡大 / 縮小、回転、または平行移動するために使われる Matrix オブジェクトです。マトリックス変換をイメージに適用したくない場合は、(デフォルト new Matrix() コンストラクターを使って作成される)単位マトリックスにこのパラメーターを設定するか、null 値を渡してください。 colorTransformflash.geom:ColorTransformnullビットマップのカラー値を調整するために使用する ColorTransform オブジェクトです。オブジェクトが提供されない場合、ビットマップイメージのカラーは変換されません。このパラメーターを渡す必要があるが、イメージを変換したくない場合、このパラメーターを、デフォルトの new ColorTransform() コンストラクターを使って作成される ColorTransform オブジェクトに設定します。 blendModeStringnull結果として生成されるビットマップに適用されるブレンドモードを指定する、flash.display.BlendMode クラスのストリング値です。 clipRectflash.geom:Rectanglenull描画するソースオブジェクトの領域を定義する矩形オブジェクトです。この値を指定しない場合、クリッピングは発生せず、ソースオブジェクト全体が描画されます。 smoothingBooleanfalsematrix パラメーターでの拡大 / 縮小または回転により、拡大 / 縮小時または回転時に BitmapData オブジェクトがスムージングされるかどうかを決定するブール値です。smoothing パラメーターが適用されるのは、source パラメーターが BitmapData オブジェクトである場合のみです。smoothingfalse に設定すると、回転または拡大 / 縮小した BitmapData イメージはピクセル化されたように、またはぎざぎざに表示されます。例えば、次の 2 つのイメージは、source パラメーターの同じ BitmapData オブジェクトを使用していますが、smoothing パラメーターは左の true と右の false に設定されています。

smoothingtrue に設定済み)を使用してビットマップを描画すると、smoothingfalse に設定済み)を使用して描画するより時間がかかります。

Flash ランタイムのベクターレンダラーを使用して、source 表示オブジェクトをビットマップイメージ上に描画します。matrixcolorTransformblendMode、およびターゲット clipRect パラメーターを指定することにより、レンダリングの実行方法を制御できます。さらに、必要に応じて、拡大 / 縮小時にビットマップのスムージングを行うかどうかを指定することもできます(これはソースオブジェクトが BitmapData オブジェクトの場合にのみ可能です)。

このメソッドは、オーサリングツールインターフェイスにおいてオブジェクトに対して標準ベクターレンダラーを使ってオブジェクトを描画する方法に直接対応します。

ソース表示オブジェクトは、この呼び出しで適用される変換を使用しません。ライブラリやファイル内に存在するように処理され、マトリックス変換、カラー変換、ブレンドモードはありません。変換プロパティを使って(ムービークリップなどの)表示オブジェクトを描画するには、transform プロパティオブジェクトを、BitmapData オブジェクトを使用する Bitmap オブジェクトの transform プロパティにコピーすることができます。

このメソッドは、Flash Player 9.0.115.0 以降および Adobe AIR の RTMP でサポートされます。サーバーサイドスクリプトで、Flash Media Server 上のストリームへのアクセスを制御することができます。詳細については、Client.audioSampleAccess プロパティおよび Client.videoSampleAccess プロパティのトピック(『Server-Side ActionScript Language Reference for Adobe Flash Media Server』)を参照してください。

ソースオブジェクトと(Sprite または MovieClip オブジェクトの場合)その子オブジェクトすべてが、呼び出し元の同一のドメインから来たのではない場合、または Security.allowDomain() メソッドを呼び出したことによって呼び出し元にアクセス可能なコンテンツ内に存在しない場合、draw() への呼び出しは SecurityError 例外をスローします。この制限事項はアプリケーションセキュリティサンドボックス内の AIR コンテンツには適用されません。

ロードされたビットマップイメージの source としての使用にも制限があります。ロードされたイメージが呼び出し元と同じドメインに存在していた場合、draw() メソッドの呼び出しは成功します。また、イメージのサーバー上のクロスドメインポリシーファイルで、draw() メソッドを呼び出す SWF コンテンツのドメインに対して許可を与えることもできます。この場合、LoaderContext オブジェクトの checkPolicyFile プロパティを設定し、このオブジェクトを context パラメーターとして、イメージのロードに使用する Loader オブジェクトの load() メソッドを呼び出すときに使用する必要があります。これらの制限は、アプリケーションセキュリティサンドボックス内の AIR コンテンツには適用されません。

Windows では、draw() メソッドは Adobe AIR の HTMLLoader オブジェクトにある HTML ページに組み込まれた SWF コンテンツをキャプチャできません。

draw() メソッドは Adobe AIR では PDF コンテンツをキャプチャできません。また、wmode 属性が "window" に設定されている HTML に埋め込まれた SWF コンテンツをキャプチャできません(Adobe AIR の場合)

次の例は、TextField オブジェクトを BitmapData オブジェクトに描画する方法を示しています。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
flash.display.BlendModeflash.geom.ColorTransformflash.geom.Matrixflash.system.JPEGLoaderContext
fillRect 指定された ARGB カラーで矩形領域のピクセルを塗りつぶします。rect が null です。 TypeErrorTypeErrorrectflash.geom:Rectangle塗りつぶす矩形領域です。 coloruint領域を塗りつぶすため使用される ARGB カラー値です。ARGB カラー値は通常、16 進数形式(例えば、0xFF336699)で指定します。 指定された ARGB カラーで矩形領域のピクセルを塗りつぶします。 次の例は BitmapData オブジェクトの矩形領域を青で塗りつぶす方法を示しています。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x0000FF); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm); flash.geom.RectanglefloodFill (x, y) 座標を始点として所定の色で塗りつぶすことにより、イメージに対する塗りつぶし処理を実行します。xintイメージの x 座標です。 yintイメージの y 座標です。 coloruint塗りとして使用する ARGB カラーです。 (x, y) 座標を始点として、イメージの塗りつぶし処理を実行します。 (x , y) 座標を始点として所定の色で塗りつぶすことにより、イメージに対する塗りつぶし処理を実行します。floodFill() メソッドは、各種のペイントプログラムのバケツツールのようなものです。color は、アルファ情報とカラー情報を含む ARGB カラーです。 次の例は、BitmapData オブジェクト内の領域(ポイント (10, 10) で定義されたピクセルを囲んでいる領域。カラーはすべてこのポイントと同じ色)を赤で塗りつぶす方法を示しています。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x000000FF); rect = new Rectangle(15, 15, 25, 25); myBitmapData.fillRect(rect, 0x000000FF); myBitmapData.floodFill(10, 10, 0x00FF0000); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm); generateFilterRect BitmapData オブジェクト、ソース矩形、フィルターオブジェクトを指定して、applyFilter() メソッド呼び出しによって影響を受けるターゲット矩形を決定します。sourceRect または filter が null です。 TypeErrorTypeErrorイメージ、sourceRect パラメーター、およびフィルターを使って算出されるターゲット矩形です。 flash.geom:RectanglesourceRectflash.geom:Rectangle入力として使用するソースイメージの領域を定義する矩形です。 filterflash.filters:BitmapFilterターゲット矩形を算出するために使用するフィルターオブジェクトです。 applyFilter() 呼び出しによって影響を受けるターゲット矩形を判別します。 BitmapData オブジェクト、ソース矩形、フィルターオブジェクトを指定して、applyFilter() メソッド呼び出しによって影響を受けるターゲット矩形を決定します。

例えば、ぼかしフィルターは通常、元のイメージのサイズよりも大きい領域に影響します。デフォルトの BlurFilter インスタンスによってフィルターが適用される 100 x 200 ピクセルのイメージでは、blurX = blurY = 4(-2,-2,104,204) というターゲット矩形を生成します。generateFilterRect() メソッドを使用すると、このターゲット矩形のサイズを前もって知ることができるので、フィルター処理の前にターゲットイメージを適切なサイズにすることができます。

一部のフィルターでは、ソースイメージのサイズに基づいてターゲット矩形がクリッピングされる場合があります。例えば、内側の DropShadow は、ソースイメージよりも大きい結果を生成しません。この API では、ソース rect パラメーターではなく、BitmapData オブジェクトをソースの境界として使用します。

次の例では、generateFilterRect() メソッドを使用して、ぼかしフィルターの結果が占める矩形領域を決定する方法を示しています。generateFilterRect() メソッドの結果は、trace() 関数により出力されます。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); trace(bmd.generateFilterRect(rect, filter)); // (x=8, y=8, w=44, h=14) bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm); generateFilterRect() メソッドはフィルターを適用しない点に注意してください。applyFilter() メソッドを呼び出してフィルターを適用します。
getColorBoundsRect (findColor パラメーターが true に設定されている場合)ビットマップイメージ内の指定された色のすべてのピクセルを完全に囲む矩形領域を判別します。または、(findColor パラメーターが false に設定されている場合)指定された色ではないすべてのピクセルを完全に囲む矩形領域を判別します。指定された色であるイメージの領域です。 flash.geom:Rectanglemaskuint対象となる ARGB カラーのビットを指定する 16 進数値です。カラー値は、&(ビット単位の論理積(AND))演算子を使用して、この 16 進数値と組み合わせられます。 coloruint16 進数値です。(findColortrue に設定されている場合は)一致すべき ARGB カラー、一致すべきでない ARGB カラー(findColorfalse に設定されている場合)をそれぞれ指定します。 findColorBooleantrue値が true に設定された場合、イメージ内のカラー値の境界を返します。値が false に設定された場合、イメージ内の指定されたカラーが存在しない領域の境界を返します。 findColor パラメーターが true に設定されている場合)ビットマップイメージ内の指定された色のすべてのピクセルを完全に囲む矩形領域を判別します。または、(findColor パラメーターが false に設定されている場合)指定された色ではないすべてのピクセルを完全に囲む矩形領域を判別します。

例えば、あるソースイメージで、0 以外のアルファチャンネルを含むイメージの矩形を判別するには、パラメーターとして {mask: 0xFF000000, color: 0x00000000} を渡します。findColor パラメーターが true に設定されている場合、(value & mask) == color であるピクセルの境界を見つけるためにイメージ全体が検索されます(value はピクセルのカラー値)。findColor パラメーターが false に設定されている場合、(value & mask) !== color であるピクセルの境界を見つけるためにイメージ全体が検索されます(value はピクセルのカラー値)。 イメージの周囲の空白を判別するには、空白以外のピクセルの境界を見つけるために、{mask: 0xFFFFFFFF, color: 0xFFFFFFFF} を渡してください。

次の例では、上半分のピクセルが赤である BitmapData オブジェクトを作成します。getColorBoundsRect() メソッドを呼び出して、赤(0xFF0000)のピクセルからなる矩形を判別します。さらに、(findColor パラメーターを false に設定して)同じメソッドを呼び出し、中のピクセルが赤でない矩形を判別します。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFFFFFF); var rect:Rectangle = new Rectangle(0, 0, 80, 20); bmd.fillRect(rect, 0xFF0000); var maskColor:uint = 0xFFFFFF; var color:uint = 0xFF0000; var redBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, true); trace(redBounds); // (x=0, y=0, w=80, h=20) var notRedBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, false); trace(notRedBounds); // (x=0, y=20, w=80, h=20) var bm:Bitmap = new Bitmap(bmd); addChild(bm);
getPixel32 アルファチャンネルデータと RGB データを含む ARGB カラー値を返します。ARGB ピクセル値を表す数値です。(x, y) 座標がイメージの境界外である場合は、0 を返します。 uintxintピクセルの x 座標です。 yintピクセルの y 座標です。 アルファチャンネルデータと RGB データを含む ARGB カラー値を返します。このメソッドは getPixel() メソッドと似ていますが、getPixel() メソッドはアルファチャンネルデータがない RGB カラーを返します。

BitmapData オブジェクト内のピクセルはすべて、乗算済みカラー値として保存されます。乗算済みイメージピクセルは、アルファデータが既に乗算された赤、緑、青の各カラーチャンネル値を保持します。例えば、アルファ値が 0 の場合、乗算されていない値に関わらず、RGB チャンネルの値も 0 になります。このようにデータが失われると、処理の実行時に問題が生じることがあります。BitmapData のすべてのメソッドは、乗算されていない値を受け取ったり返したりします。ピクセルの内部表現は、値として返される前に、乗算済みから非乗算に変換されます。設定処理の際は、ピクセル値が事前に乗算されてから、生のイメージピクセルが設定されます。

次の例では、色で塗られた BitmapData オブジェクトを作成し、次に getPixel32() メソッドを使用して左上隅のピクセルの色の値を決定し、さらに各カラー成分(アルファ、赤、緑、青)の 16 進数値を決定します。 import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, true, 0xFF44AACC); var pixelValue:uint = bmd.getPixel32(0, 0); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
getPixel()setPixel32()
getPixel BitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。RGB ピクセル値を表す数値。(x , y) 座標がイメージの境界外である場合は、0 を返します。 uintxintピクセルの x 座標です。 yintピクセルの y 座標です。 BitmapData オブジェクトの特定ポイントの RGB ピクセル値を表す整数を返します。 BitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。getPixel() メソッドは、乗算されていないピクセル値を返します。アルファ情報は返しません。

BitmapData オブジェクト内のピクセルはすべて、乗算済みカラー値として保存されます。乗算済みイメージピクセルは、アルファデータが既に乗算された赤、緑、青の各カラーチャンネル値を保持します。例えば、アルファ値が 0 の場合、乗算されていない値に関わらず、RGB チャンネルの値も 0 になります。このようにデータが失われると、処理の実行時に問題が生じることがあります。BitmapData のすべてのメソッドは、乗算されていない値を受け取ったり返したりします。ピクセルの内部表現は、値として返される前に、乗算済みから非乗算に変換されます。設定処理の際は、ピクセル値が事前に乗算されてから、生のイメージピクセルが設定されます。

次の例では、塗りが赤の BitmapData オブジェクトを作成し、次に getPixel() メソッドを使用して、左上隅のピクセルの色の値を決定しています。 import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000); var pixelValue:uint = bmd.getPixel(0, 0); trace(pixelValue.toString(16)); // ff0000;
getPixel32()setPixel()
getPixels ピクセルデータの矩形領域からバイト配列を生成します。rect が null です。 TypeErrorTypeError特定の矩形内のピクセルを表す ByteArray です。 flash.utils:ByteArrayrectflash.geom:Rectangle現在の BitmapData オブジェクト内の矩形領域です。 ピクセルデータの矩形領域からバイト配列を生成します。各ピクセルごとに、符号なし整数(32 ビットの乗算されないピクセル値)をバイト配列に書き込みます。 次の例では、ランダムノイズピクセルで塗りつぶされた BitmapData オブジェクトを作成し、getPixels() メソッドを使用して、ByteArray オブジェクトを BitmapData オブジェクトのピクセル値で塗りつぶします。 import flash.display.BitmapData; import flash.geom.Rectangle; import flash.utils.ByteArray; var bmd:BitmapData = new BitmapData(80, 40, true); var seed:int = int(Math.random() * int.MAX_VALUE); bmd.noise(seed); var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height); var pixels:ByteArray = bmd.getPixels(bounds); flash.utils.ByteArraygetVector ピクセルデータの矩形領域からベクター配列を生成します。rect が null です。 TypeErrorTypeError指定された Rectangle を表す Vector です。 rectflash.geom:Rectangle現在の BitmapData オブジェクト内の矩形領域です。 ピクセルデータの矩形領域からベクター配列を生成します。指定された矩形を表す、符号なし整数(32 ビットの乗算されないピクセル値)の Vector オブジェクトを返します。 histogram BitmapData オブジェクトの 256 値のバイナリ数のヒストグラムを計算します。hRectflash.geom:RectanglenullBitmapData オブジェクトの使用領域です。 BitmapData オブジェクトの 256 値のバイナリ数のヒストグラムを計算します。このメソッドは 4 つの Vector を含む Vector オブジェクトを返します。<Number> インスタンス(Number オブジェクトを含む 4 つの Vector オブジェクト)です。4 つの Vector インスタンスは、赤、緑、青およびアルファの順の各コンポーネントを表します。各 Vector インスタンスには、各コンポーネントの値のポピュレーションカウント(0 ~ 255)を表す 256 値が含まれています。 hitTest 1 つのビットマップイメージと、ポイント、矩形、または他のビットマップイメージとの間でピクセルレベルのヒットを検出します。secondObject パラメーターが、Point、Rectangle、Bitmap、または BitmapData オブジェクトではありません。 ArgumentErrorArgumentErrorfirstPoint が null です。 TypeErrorTypeErrorヒットが発生する場合は true、そうでない場合は false です。 BooleanfirstPointflash.geom:Point 任意の座標空間における BitmapData イメージの左上隅の位置です。同じ座標空間を使って secondBitmapPoint パラメーターが定義されます。 firstAlphaThresholduintこのヒットテストで不透明とみなされるアルファチャンネルの最小値です。 secondObjectObjectRectangle、Point、Bitmap、または BitmapData オブジェクトです。 secondBitmapDataPointflash.geom:Pointnull2 番目の BitmapData オブジェクト内のピクセル位置を定義するポイントです。このパラメーターは、secondObject の値が BitmapData オブジェクトである場合にのみ使用します。 secondAlphaThresholduint12 番目の BitmapData オブジェクト内で不透明であるとみなされるアルファチャンネルの最小値です。このパラメーターは、secondObject の値が BitmapData オブジェクトで、両方の BitmapData オブジェクトが透明である場合にのみ使用します。 1 つのビットマップイメージと、ポイント、矩形、または他のビットマップイメージとの間でピクセルレベルのヒットを検出します。ヒットは、1 つの不透明なピクセルまたは 2 つの重なり合う不透明なピクセル上のポイントまたは矩形の重なりです。ヒットテストの際、どちらのオブジェクトの変形(伸縮、回転など)も考慮されません。

イメージが不透明である場合、このメソッドでは完全に不透明な矩形と見なされます。透過性を考慮するピクセルレベルのヒットテストを実施する場合は、両方のイメージとも透明である必要があります。2 つの透明なイメージをテストするとき、アルファしきい値パラメーターは、アルファチャンネル値(0 ~ 255)がいくつであれば不透明とみなすかを制御します。

次の例では、矩形領域 (20, 20, 40, 40) でのみ不透明な BitmapData オブジェクトを作成した後、hitTest() メソッドを呼び出します(secondObject として Point オブジェクトを使用)。最初の呼び出しでは、Point オブジェクトが(不透明ではない)BitmapData オブジェクトの左上隅を定義し、2 番目の呼び出しでは、Point オブジェクトが(不透明な)BitmapData オブジェクトの中央を定義します。 import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(80, 80, true, 0x00000000); var rect:Rectangle = new Rectangle(20, 20, 40, 40); bmd1.fillRect(rect, 0xFF0000FF); var pt1:Point = new Point(1, 1); trace(bmd1.hitTest(pt1, 0xFF, pt1)); // false var pt2:Point = new Point(40, 40); trace(bmd1.hitTest(pt1, 0xFF, pt2)); // true
lock この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト(例えば Bitmap オブジェクト)が更新されないように、イメージをロックします。 この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト(例えば Bitmap オブジェクト)が更新されないように、イメージをロックします。パフォーマンスを向上させるには、このメソッドを unlock() メソッドと共に、setPixel() メソッドまたは setPixel32() メソッドを何度も呼び出す前後に使用してください。 次の例では、bitmapData プロパティ(Bitmap オブジェクトである picture のプロパティ)に基づいて BitmapData オブジェクトを作成します。次に、lock() メソッドを呼び出してから、BitmapData オブジェクトを変更する複雑なカスタム関数である complexTransformation() を呼び出します (picture オブジェクトおよび complexTransformation() 関数はこの例では定義されません)。complexTransformation() 関数が bitmapData プロパティ(picture オブジェクトのプロパティ)を更新する場合でも、コードが unlock() メソッドを bitmapData オブジェクトに対して呼び出すまで、変更は反映されません。 import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData; setPixel()setPixel32()unlock()merge ソースイメージとターゲットイメージをチャンネルごとにブレンドします。sourceBitmapData、sourceRect、または destPoint が null です。 TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapData使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData オブジェクトを参照することもできます。 sourceRectflash.geom:Rectangle入力として使用するソースイメージの領域を定義する矩形です。 destPointflash.geom:Pointソース矩形の左上隅に対応する、ターゲットイメージ(現在の BitmapData インスタンス)内のポイントです。 redMultiplieruint赤チャンネル値に乗算する 16 進数の uint 値です。 greenMultiplieruint緑チャンネル値に乗算する 16 進数の uint 値です。 blueMultiplieruint青チャンネル値に乗算する 16 進数の uint 値です。 alphaMultiplieruintアルファ透明度の値に乗算する 16 進数の uint 値です。 ソースイメージとターゲットイメージをチャンネルごとにブレンドします。チャンネルおよびピクセルごとに、ソースピクセルおよびターゲットピクセルのチャンネル値に基づいて新しい値が計算されます。例えば、赤チャンネルでは、新しい値が次のように計算されます(ここで、redSrc はソースイメージのピクセルでの赤チャンネル値、redDest はターゲットイメージの対応するピクセルでの赤チャンネル値です)。

new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;

redMultipliergreenMultiplierblueMultiplier、および alphaMultiplier の各値は、それぞれのカラーチャンネルに対して使用する乗数です。0 から 0x100(256)までの 16 進数値を使用します。0 を指定すると、ターゲットの値がそのまま結果で使用され、0x100 を指定すると、ソースの値がそのまま使用されます。その間の数値を指定すると、混ぜ合わされた色が使用されます(50% の場合、0x80 など)。

次の例では、2 つの BitmapData オブジェクトを作成します。どちらのサイズも 100 x 80 ピクセルです。最初のオブジェクトは緑、2 番目のオブジェクトは赤でそれぞれ塗りつぶされます。コードは merge() メソッドを呼び出し、2 番目の BitmapData ピクセルを最初の BitmapData オブジェクトの指定された矩形領域にのみ結合します。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(100, 80, true, 0xFF00FF00); var bmd2:BitmapData = new BitmapData(100, 80, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(20, 20); var mult:uint = 0x80; // 50% bmd1.merge(bmd2, rect, pt, mult, mult, mult, mult); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
noise ランダムノイズを表すピクセルでイメージを塗りつぶします。randomSeedintランダムシード(乱数の種)として使用する数値です。他のすべてのパラメーターを同じままにした場合、ランダムシードの値を変更することでさまざまな疑似乱数を生成できます。ノイズ関数はマッピング関数であり、真の乱数生成関数ではありません。このため、同じランダムシードから毎回同じ結果が作成されます。 lowuint0チャンネルごとに生成する最小値です(0 ~ 255)。 highuint255チャンネルごとに生成する最大値です(0 ~ 255)。 channelOptionsuint7任意の 4 つのカラーチャンネル値(BitmapDataChannel.REDBitmapDataChannel.BLUEBitmapDataChannel.GREEN、および BitmapDataChannel.ALPHA)の組み合わせである数値。OR 論理演算子(|)を使用して、複数のチャンネル値を組み合わせることができます。 grayScaleBooleanfalseブール値です。値が true である場合、すべてのカラーチャンネルに同じ値を設定することでグレースケールのイメージが作成されます。このパラメーターを true に設定しても、アルファチャンネル選択には影響しません。 ランダムノイズを表すピクセルでイメージを塗りつぶします。 次の例では、2 つの BitmapData オブジェクトを作成し、両者に対して noise() メソッドを呼び出します。ただし、grayscale パラメーターは false に設定されるか(1 番目のオブジェクトの noise() メソッドへの呼び出しの場合)、true に設定されます(2 番目のオブジェクトの noise() メソッドへの呼び出しの場合)。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; var bmd1:BitmapData = new BitmapData(80, 80); var bmd2:BitmapData = new BitmapData(80, 80); var seed:int = int(Math.random() * int.MAX_VALUE); bmd1.noise(seed, 0, 0xFF, BitmapDataChannel.RED, false); bmd2.noise(seed, 0, 0xFF, BitmapDataChannel.RED, true); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 90; flash.display.BitmapDataChannel.REDflash.display.BitmapDataChannel.BLUEflash.display.BitmapDataChannel.GREENflash.display.BitmapDataChannel.ALPHApaletteMap 最大で 4 つのカラーパレットデータ配列(各チャンネルごとに 1 つの配列)を使用して、イメージ内のカラーチャンネル値をマッピングし直します。sourceBitmapData、sourceRect、または destPoint が null です。 TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapData使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData インスタンスを参照することもできます。 sourceRectflash.geom:Rectangle入力として使用するソースイメージの領域を定義する矩形です。 destPointflash.geom:Pointソース矩形の左上隅に対応する、ターゲットイメージ(現在の BitmapData オブジェクト)内のポイントです。 redArrayArraynullredArraynull でない場合、red = redArray[source red value] else red = source rect valuegreenArrayArraynullgreenArraynull でない場合、green = greenArray[source green value] else green = source green value.blueArrayArraynullblueArraynull でない場合、blue = blueArray[source blue value] else blue = source blue valuealphaArrayArraynullalphaArraynull でない場合、alpha = alphaArray[source alpha value] else alpha = source alpha value 最大で 4 つのカラーパレットデータ配列(各チャンネルごとに 1 つの配列)を使用して、イメージ内のカラーチャンネル値をマッピングし直します。

Flash ランタイムは以下の手順に従って、結果として得られるイメージを生成します。

  1. 赤、緑、青、アルファの各値を算出した後、標準の 32 ビット整数算術演算を使ってこれらの値を足し合わせます。
  2. 各ピクセルの赤、緑、青、アルファのチャンネル値を抽出して、別個の 0 ~ 255 の値にします。これらの値は、次の該当する配列で新しいカラー値を調べる場合に使用します。redArraygreenArrayblueArray、および alphaArray。これら 4 つの配列にはそれぞれ 256 個の値が含まれている必要があります。
  3. 新しいチャンネル値を 4 つともすべて取得した後、それらの値を組み合わせて、ピクセルに適用される標準の ARGB 値にします。

このメソッドではクロスチャンネル効果をサポートできます。それぞれの入力配列は完全な 32 ビット値を含むことができます。値を足し合わせるときに移動は発生しません。このルーチンは、チャンネル単位のクランピングに対応していません。

チャンネルに対して配列が指定されない場合は、ソースイメージからターゲットイメージにカラーチャンネルがコピーされます。

このメソッドは各種効果で使用できます。例えば、通常のパレットマッピング(1 つのチャンネルを選択して疑似色イメージに変換する)などです。さらに、ガンマ、曲線、平準化、量子化といったさまざまなカラー操作アルゴリズムにもこのメソッドを使用できます。

次の例では、中央に赤い正方形がある緑の BitmapData オブジェクトを作成した後、paletteMap() メソッドを使用して、BitmapData オブジェクトの下半分の矩形内の赤と緑を入れ替えます。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(80, 80, false, 0x00FF0000); myBitmapData.fillRect(new Rectangle(20, 20, 40, 40), 0x0000FF00); var redArray:Array = new Array(256); var greenArray:Array = new Array(256); for(var i:uint = 0; i < 255; i++) { redArray[i] = 0x00000000; greenArray[i] = 0x00000000; } redArray[0xFF] = 0x0000FF00; greenArray[0xFF] = 0x00FF0000; var bottomHalf:Rectangle = new Rectangle(0, 0, 100, 40); var pt:Point = new Point(0, 0); myBitmapData.paletteMap(myBitmapData, bottomHalf, pt, redArray, greenArray); var bm1:Bitmap = new Bitmap(myBitmapData); addChild(bm1);
perlinNoise Perlin ノイズイメージを生成します。baseXNumberx 方向で使用する周波数。例えば、64 x 128 のイメージに見合うサイズのノイズを生成するには、baseX 値として 64 を渡します。 baseYNumbery 方向で使用する周波数。例えば、64 x 128 のイメージに見合うサイズのノイズを生成するには、baseY 値として 128 を渡します。 numOctavesuintこのノイズを作成するために組み合わせるオクターブ(つまり個々のノイズ関数)の数です。オクターブ数を多くすると、よりきめ細かいイメージを作成できます。オクターブ数を増やすと、処理時間も長くなります。 randomSeedintランダムシード(乱数の種)として使用する数値です。他のすべてのパラメーターを同じままにした場合、ランダムシードの値を変更することでさまざまな疑似乱数を生成できます。Perlin ノイズ関数はマッピング関数であり、真の乱数生成関数ではありません。このため、同じランダムシードから毎回同じ結果が作成されます。 stitchBooleanブール値です。値が true の場合、ビットマップ塗りとしてシームレスなタイリング用テクスチャを作成するために、このメソッドはイメージのトランジションエッジをスムーズにすることを試みます。 fractalNoiseBooleanブール値です。値が true の場合、このメソッドはフラクタルノイズを生成します。それ以外の場合は、乱流を生成します。乱流があるイメージにはグラデーションに視覚的な不連続性があるので、炎や海の波のようなシャープな視覚効果に適している場合があります。 channelOptionsuint7 任意の 4 つのカラーチャンネル値(BitmapDataChannel.REDBitmapDataChannel.BLUEBitmapDataChannel.GREEN、および BitmapDataChannel.ALPHA)の組み合わせである数値。OR 論理演算子(|)を使用して、複数のチャンネル値を組み合わせることができます。 grayScaleBooleanfalseブール値です。値が true の場合、赤、緑、および青の各カラーチャンネルに同じ値を設定して、グレースケールイメージが作成されます。この値が true に設定されても、アルファチャンネルの値に影響はありません。 offsetsArraynull各オクターブの x オフセットと y オフセットに対応するポイントの配列です。オフセット値を操作することで、perlinNoise イメージのレイヤーをスムーズにスクロールできます。オフセット配列内の各ポイントは、特定のオクターブノイズ関数に影響を与えます。 Perlin ノイズイメージを生成します。

Perlin ノイズ生成アルゴリズムでは、個々のランダムノイズ関数(オクターブといいます)を補間および組み合わせることで、より自然に見えるランダムノイズを生成する単一の関数にします。音楽のオクターブと同様、各オクターブ関数の周波数は、その前のオクターブ関数の周波数の 2 倍になります。Perlin ノイズは、複数のノイズデータセットをさまざまな詳細レベルで組み合わせるので、"フラクタルノイズの和" と呼ばれてきました。

Perlin ノイズ関数は、木目、雲、山脈など、自然現象や風景をシミュレートする場合に使用できます。ほとんどの場合、Perlin ノイズ関数の出力をそのまま表示するのではなく、他のイメージを強調したり、擬似ランダムバリエーションを与えるために使用します。

単純なデジタルランダムノイズ関数は、コントラストのきついポイントが含まれるイメージを生成する場合が多いです。このようにきついコントラストは自然界にはあまりありません。Perlin ノイズアルゴリズムは、さまざまな詳細レベルで実行する複数のノイズ関数を混ぜ合わせます。このアルゴリズムの結果、互いに隣接するピクセル値の差異はより小さくなります。

次の例では、perlinNoise() メソッドを呼び出して赤および青の水彩画効果を生み出す 200 x 200 ピクセルの BitmapData オブジェクトを作成します。 import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(200, 200, false, 0x00CCCCCC); var seed:Number = Math.floor(Math.random() * 10); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd.perlinNoise(100, 80, 6, seed, false, true, channels, false, null); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
pixelDissolve ソースイメージからターゲットイメージへのピクセルディゾルブ、または同じイメージを使用したピクセルディゾルブを実行します。sourceBitmapData、sourceRect、または destPoint が null です。 TypeErrorTypeErrornumPixels が負の値です。 TypeErrorTypeError後続の呼び出しで使用する新しいランダムシード(乱数の種)です。 intsourceBitmapDataflash.display:BitmapData使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData インスタンスを参照することもできます。 sourceRectflash.geom:Rectangle入力として使用するソースイメージの領域を定義する矩形です。 destPointflash.geom:Pointソース矩形の左上隅に対応する、ターゲットイメージ(現在の BitmapData インスタンス)内のポイントです。 randomSeedint0ピクセルディゾルブを開始するために使用するランダムシード(乱数の種)です。 numPixelsint0デフォルトは、ソース領域(幅 x 高さ)の 1/30 です。 fillColoruint0ソース値とターゲット値が等しいピクセルの塗りつぶしに使用する ARGB カラー値です。 ソースイメージからターゲットイメージへのピクセルディゾルブ、または同じイメージを使用したピクセルディゾルブを実行します。Flash ランタイムは randomSeed 値を使用して、ランダムなピクセルディゾルブを生成します。完了するまでピクセルディゾルブを続けるには、この関数の戻り値を後続の呼び出しに渡す必要があります。

ソースイメージとターゲットイメージが等しくない場合は、すべてのプロパティを使用して、ソースからターゲットにピクセルがコピーされます。この処理により、空白イメージから完全に設定されたイメージへのディゾルブが可能になります。

ソースイメージとターゲットイメージが等しい場合は、color パラメーターを使ってピクセルが塗られます。この処理により、完全に設定されたイメージを消去するようにディゾルブできます。このモードでは、ターゲット point パラメーターが無視されます。

次の例では、pixelDissolve() メソッドを使用して、すべてのピクセルのカラーが変更されるまで一度に 40 個のピクセルをディゾルブすることにより、グレーの BitmapData オブジェクトを赤に変換します。 import flash.display.BitmapData; import flash.display.Bitmap; import flash.geom.Point; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmap:Bitmap = new Bitmap(bmd); addChild(bitmap); var tim:Timer = new Timer(20); tim.start(); tim.addEventListener(TimerEvent.TIMER, timerHandler); function timerHandler(event:TimerEvent):void { var randomNum:Number = Math.floor(Math.random() * int.MAX_VALUE); dissolve(randomNum); } function dissolve(randomNum:Number):void { var rect:Rectangle = bmd.rect; var pt:Point = new Point(0, 0); var numberOfPixels:uint = 100; var red:uint = 0x00FF0000; bmd.pixelDissolve(bmd, rect, pt, randomNum, numberOfPixels, red); var grayRegion:Rectangle = bmd.getColorBoundsRect(0xFFFFFFFF, 0x00CCCCCC, true); if(grayRegion.width == 0 && grayRegion.height == 0 ) { tim.stop(); } }
scroll 所定の (x, y) ピクセル量だけイメージをスクロールします。xint水平方向のスクロール量です。 yint垂直方向のスクロール量です。 所定の (x , y) ピクセル量だけイメージをスクロールします。スクロール領域外のエッジ領域は変わらずにそのままになります。 次の例は、Bitmap データオブジェクトを右に 40 ピクセルだけスクロールした効果を示しています。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); var rect:Rectangle = new Rectangle(0, 0, 40, 40); bmd.fillRect(rect, 0xFFFF0000); var bm:Bitmap = new Bitmap(bmd); addChild(bm); trace (bmd.getPixel32(50, 20).toString(16)); // ffcccccccc bmd.scroll(30, 0); trace (bmd.getPixel32(50, 20).toString(16)); // ffff0000 setPixel32 BitmapData オブジェクトの 1 つのピクセルにカラー値とアルファ透明度を設定します。xint値が変更されるピクセルの x 座標です。 yint値が変更されるピクセルの y 座標です。 coloruint結果として生成される、ピクセルの ARGB カラーです。ビットマップが不透明な(透明でない)場合には、このカラー値のアルファ透明度部分は無視されます。 BitmapData オブジェクトの 1 つのピクセルにカラー値とアルファ透明度を設定します。このメソッドは setPixel() メソッドと似ています。主な違いは、setPixel32() メソッドではアルファチャンネル情報が含まれる ARGB カラー値を引数として取ることです。

BitmapData オブジェクト内のピクセルはすべて、乗算済みカラー値として保存されます。乗算済みイメージピクセルは、アルファデータが既に乗算された赤、緑、青の各カラーチャンネル値を保持します。例えば、アルファ値が 0 の場合、乗算されていない値に関わらず、RGB チャンネルの値も 0 になります。このようにデータが失われると、処理の実行時に問題が生じることがあります。BitmapData のすべてのメソッドは、乗算されていない値を受け取ったり返したりします。ピクセルの内部表現は、値として返される前に、乗算済みから非乗算に変換されます。設定処理の際は、ピクセル値が事前に乗算されてから、生のイメージピクセルが設定されます。

注意:setPixel() または setPixel32() メソッドを繰り返し使用する場合、パフォーマンスを向上させるには、lock() メソッドを呼び出してから setPixel() または setPixel32() メソッドを呼び出します。その後、ピクセル変更がすべて完了したら、unlock() メソッドを呼び出します。このように処理を行うと、ピクセル変更がすべて完了するまで、この BitmapData インスタンスを参照するオブジェクトは更新されません。

次の例では、setPixel32()メソッドを使用して、透明な(alpha == 0x60)赤い線を BitmapData オブジェクト内に描画します。 import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0x60FF0000; bmd.setPixel32(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
setPixel()getPixel32()lock()unlock()
setPixel BitmapData オブジェクトの 1 つのピクセルを設定します。xint値が変更されるピクセルの x 座標です。 yint値が変更されるピクセルの y 座標です。 coloruint結果として生成される、ピクセルの RGB カラーです。 BitmapData オブジェクトの 1 つのピクセルを設定します。この処理中、イメージピクセルのアルファチャンネルは現在の値が保持されます。RGB カラーパラメーターの値は、乗算されていないカラー値として扱われます。

注意:setPixel() または setPixel32() メソッドを繰り返し使用する場合、パフォーマンスを向上させるには、lock() メソッドを呼び出してから setPixel() または setPixel32() メソッドを呼び出します。その後、ピクセル変更がすべて完了したら、unlock() メソッドを呼び出します。このように処理を行うと、ピクセル変更がすべて完了するまで、この BitmapData インスタンスを参照するオブジェクトは更新されません。

次の例では、setPixel() メソッドを使用して、BitmapData オブジェクト内に赤い線を描画します。 import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, false, 0xCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0xFF0000; bmd.setPixel(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
getPixel()setPixel32()lock()unlock()
setPixels バイト配列をピクセルデータの矩形領域に変換します。inputByteArray オブジェクトには、rect 矩形の領域を塗りつぶすための十分なデータが含まれていません。このメソッドは、可能な限り多くのピクセルを塗りつぶした後、例外をスローします。 EOFErrorflash.errors:EOFErrorrect または inputByteArray が null です。 TypeErrorTypeErrorrectflash.geom:RectangleBitmapData オブジェクトの矩形領域を指定します。 inputByteArrayflash.utils:ByteArray矩形領域で使用される 32 ビットの乗算されないピクセル値からなる ByteArray オブジェクトです。 バイト配列をピクセルデータの矩形領域に変換します。各ピクセルごとに ByteArray.readUnsignedInt() メソッドが呼び出され、戻り値がピクセルに書き込まれます。矩形全体が書き込まれる前にバイト配列が終了した場合、関数は終了します。バイト配列内のデータは 32 ビット ARGB ピクセル値と想定されます。ピクセル読み取りの前後に、バイト配列に対するシークは実行されません。 次の例では、getPixels() メソッドと setPixels() メソッドを使用して、ある BitmapData オブジェクトから別の BitmapData オブジェクトにピクセルをコピーします。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.ByteArray; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(100, 100, true, 0xFFCCCCCC); var bmd2:BitmapData = new BitmapData(100, 100, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 100, 100); var bytes:ByteArray = bmd1.getPixels(rect); bytes.position = 0; bmd2.setPixels(rect, bytes); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110; flash.utils.ByteArray.readUnsignedInt()setVector Vector をピクセルデータの矩形領域に変換します。ベクター配列は、すべてのピクセルデータを読み込めるほど大きくありません。 RangeErrorRangeErrorrectflash.geom:RectangleBitmapData オブジェクトの矩形領域を指定します。 inputVector矩形領域で使用される 32 ビットの乗算されないピクセル値からなる Vector オブジェクトです。 Vector をピクセルデータの矩形領域に変換します。ピクセルごとに、ベクターエレメントが BitmapData ピクセルに読み込みおよび書き込みされます。Vector のデータは 32 ビット ARGB ピクセル値と推定されます。 threshold 指定されたしきい値と比較してイメージ内のピクセル値をテストし、テストに適合したピクセルに新しいカラー値を設定します。sourceBitmapData、sourceRect、destPoint、または operation が null です。 TypeErrorTypeErroroperation のストリングが有効な演算ではありません。 ArgumentErrorArgumentError変更されたピクセルの数です。 uintsourceBitmapDataflash.display:BitmapData使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData インスタンスを参照することもできます。 sourceRectflash.geom:Rectangle入力として使用するソースイメージの領域を定義する矩形です。 destPointflash.geom:Pointソース矩形の左上隅に対応する、ターゲットイメージ(現在の BitmapData インスタンス)内のポイントです。 operationString比較演算子("<"、"<="、">"、">="、"=="、"!=")の 1 つ。ストリングとして渡されます。=" thresholduint各ピクセルがしきい値に適合するか、それともしきい値を超えているかをテストするための基準となる値です。 coloruint0しきい値テストに適合した場合にピクセルに設定されるカラー値です。デフォルト値は 0x00000000 です。 maskuint0xFFFFFFFFカラーコンポーネントを分離するために使用するマスクです。 copySourceBooleanfalse値が true の場合、しきい値テストが失敗したときに、ソースイメージのピクセル値がターゲットイメージにコピーされます。値が false であれば、しきい値テストに適合しない場合にソースイメージはコピーされません。 指定されたしきい値と比較してイメージ内のピクセル値をテストし、テストに適合したピクセルに新しいカラー値を設定します。threshold() メソッドを使用すると、イメージ内のカラー範囲を分離して置換し、イメージピクセルに対しその他の論理演算を実行することができます。

threshold() メソッドのテスト論理は次のとおりです。

  1. ((pixelValue & mask) operation (threshold & mask)) の場合、ピクセルを color に設定します。
  2. そうでない場合、copySource == true であれば、sourceBitmap の対応するピクセル値にピクセルを設定します。

operation パラメーターは、しきい値テストで使用する比較演算子を指定します。例えば、operation パラメーターとして "==" を使用することにより、イメージ内の特定のカラー値を分離できます。または、{operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000} を使用することにより、ソースイメージピクセルのアルファが 0x7F 未満の場合に、すべてのターゲットピクセルが完全に透明になるよう設定できます。アニメーション化されたトランジションやその他の効果に対して、この技法を使用できます。

次の例では、perlinNoise() メソッドを使用して青および赤のパターンを 1 つの BitmapData オブジェクトに追加した後、threshold() メソッドを使用して、これらのピクセルを最初の BitmapData オブジェクトから 2 番目のオブジェクトにコピーします。その際、赤の値が 0x80(50%)より大きいピクセルを、透明の赤(0x20FF0000)に設定されたピクセルに置換します。 import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.geom.Point; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var seed:int = int(Math.random() * int.MAX_VALUE); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd1.perlinNoise(100, 80, 12, seed, false, true, channels, false, null); var bitmap1:Bitmap = new Bitmap(bmd1); addChild(bitmap1); var bmd2:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var pt:Point = new Point(0, 0); var rect:Rectangle = new Rectangle(0, 0, 200, 200); var threshold:uint = 0x00800000; var color:uint = 0x20FF0000; var maskColor:uint = 0x00FF0000; bmd2.threshold(bmd1, rect, pt, ">", threshold, color, maskColor, true); var bitmap2:Bitmap = new Bitmap(bmd2); bitmap2.x = bitmap1.x + bitmap1.width + 10; addChild(bitmap2);
unlock この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト(例えば Bitmap オブジェクト)が更新されるように、イメージをロック解除します。changeRectflash.geom:Rectanglenull変更された BitmapData オブジェクトの領域です。このパラメーターに値を指定しない場合、BitmapData オブジェクトの全領域が変更されたと見なされます。このパラメーターは、Flash Player バージョン 9.0.115.0 以降を必要とします。 この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト(例えば Bitmap オブジェクト)が更新されるように、イメージをロック解除します。パフォーマンスを向上させるには、このメソッドを lock() メソッドと共に、setPixel() メソッドまたは setPixel32() メソッドを何度も呼び出す前後に使用してください。 次の例では、bitmapData プロパティ(Bitmap オブジェクトである picture のプロパティ)に基づいて BitmapData オブジェクトを作成します。次に、lock() メソッドを呼び出してから、BitmapData オブジェクトを変更する複雑なカスタム関数である complexTransformation() を呼び出します (picture オブジェクトおよび complexTransformation() 関数はこの例では定義されません)。complexTransformation() 関数が bitmapData プロパティ(picture オブジェクトのプロパティ)を更新する場合でも、コードが unlock() メソッドを bitmapData オブジェクトに対して呼び出すまで、変更は反映されません。 import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData; lock()setPixel()setPixel32()height ビットマップイメージの高さ(ピクセル単位)です。int ビットマップイメージの高さ(ピクセル単位)です。 rect ビットマップイメージのサイズと位置を定義する矩形です。flash.geom:Rectangle ビットマップイメージのサイズと位置を定義する矩形です。矩形の上端と左端は 0 になります。幅と高さは、BitmapData オブジェクトのピクセルの幅および高さと等しくなります。 transparent ビットマップイメージがピクセル単位の透明度をサポートするかどうかを定義します。Boolean ビットマップイメージがピクセル単位の透明度をサポートするかどうかを定義します。この値を設定できるのは、true を、コンストラクターの transparent パラメーターに渡すことによって BitmapData オブジェクトを作成する場合だけです。BitmapData オブジェクトを作成した後、transparent プロパティの値が true であるかどうかを確認することにより、このオブジェクトがピクセルごとの透明度をサポートするかどうかを検査できます。 width ビットマップイメージの幅(ピクセル単位)です。int ビットマップイメージの幅(ピクセル単位)です。
JointStyle JointStyle クラスは、線の描画で使用される結合スタイルを指定する定数値の列挙です。Object JointStyle クラスは、線の描画で使用される結合スタイルを指定する定数値の列挙です。これらの定数は、joints パラメーター(flash.display.Graphics.lineStyle() メソッドのパラメーター)の値として使用されます。このメソッドは、マイター、ラウンド、ベベルの 3 種類の結合をサポートします。次に例を示します。

次の例では、JointStyleExample クラスを使用して、3 つの異なる結合スタイルを 3 組の結合される線に適用した結果を示します。これを行うには、以下の手順を実行します。
  1. それぞれの線のプロパティは、次のように設定されます。
    • 線の長さは 80 ピクセル
    • 境界線の色はオレンジ色
    • 境界線のサイズは 30 ピクセル
    • ハイライトカラーは灰色
    • ハイライトサイズは 0 ピクセル
    • アルファは 1(単色になる)
    • ピクセルのヒンティングは false に設定(ピクセル全体に対して線がヒンティングされない)
    • 線の縮小 / 拡大モードは通常(太さを縮小 / 拡大)
    • 境界線キャップとマイター限度は宣言されているものの、設定されていないため、デフォルト値が使用されます。
  2. クラスコンストラクターは、2 つの連結線セグメントを 3 組作成します。これらのセグメントは、x = 0、y = 0 を起点とします。そのためには、3 つの結合スタイル(マイター、ラウンド、ベベル)を使用して doDrawCorner() メソッドを 3 度呼び出します。3 度の doDrawCorner() 呼び出しでは、それぞれ前述の結合スタイルとプロパティを使用して、2 つの連結線セグメント、および関連する線ハイライトを描画します。これには、まず新しい Shape オブジェクト child を作成し、Graphics クラスのメソッドを使用して、線のスタイルが設定されて線とハイライトを描画します。child の各インスタンスが表示リストに追加され、ただちにステージに描画されます。
  3. 連結線セグメントは、refreshLayout() メソッドを使用して再描画されます。再描画される位置は y = 80 ピクセル、起点は x = 80 ピクセル、線のセグメント間の間隔は 25 ピクセルです。
package { import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.display.Sprite; public class JointStyleExample extends Sprite { private var size:uint = 80; private var borderColor:uint = 0xFFCC00; private var borderSize:uint = 30; private var highlightColor:uint = 0x666666; private var highlightSize:uint = 0; private var gutter:uint = 25; private var borderAlpha:uint = 1; private var borderPixelHinting:Boolean = false; private var borderScaleMode:String = LineScaleMode.NORMAL; private var borderCaps:String; private var borderMiterLimit:uint; public function JointStyleExample() { doDrawCorner(JointStyle.MITER); doDrawCorner(JointStyle.ROUND); doDrawCorner(JointStyle.BEVEL); refreshLayout(); } private function doDrawCorner(jointStyle:String):void { var halfSize:uint = Math.round(size / 2); var child:Shape = new Shape(); child.graphics.lineStyle(borderSize, borderColor, borderAlpha, borderPixelHinting, borderScaleMode, borderCaps, jointStyle, borderMiterLimit); child.graphics.lineTo(0, 0); child.graphics.lineTo(size, 0); child.graphics.lineTo(halfSize, size); child.graphics.endFill(); child.graphics.moveTo(0, 0); child.graphics.lineStyle(highlightSize, highlightColor); child.graphics.lineTo(0, 0); child.graphics.lineTo(size, 0); child.graphics.lineTo(halfSize, size); addChild(child); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = size; lastChild.y = size; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = size; lastChild = child; } } } }
flash.display.Graphics.lineStyle()BEVEL flash.display.Graphics.lineStyle() メソッドの joints パラメーターでベベル結合を指定します。bevelString joints パラメーター(flash.display.Graphics.lineStyle() メソッドのパラメーター)でベベル結合を指定します。 MITER flash.display.Graphics.lineStyle() メソッドの joints パラメーターでマイター結合を指定します。miterString joints パラメーター(flash.display.Graphics.lineStyle() メソッドのパラメーター)でマイター結合を指定します。 ROUND flash.display.Graphics.lineStyle() メソッドの joints パラメーターでラウンド結合を指定します。roundString joints パラメーター(flash.display.Graphics.lineStyle() メソッドのパラメーター)でラウンド結合を指定します。
AVM1Movie AVM1Movie は、ActionScript 1.0 または 2.0 を使用する AVM1 ムービークリップを表す単純なクラスです。flash.display:DisplayObject AVM1Movie は、ActionScript 1.0 または 2.0 を使用する AVM1 ムービークリップを表す単純なクラスです。AVM1 は、ActionScript 1.0 および 2.0 を実行するために使用される ActionScript 仮想マシンです。AVM2 は、ActionScript 3.0 を実行するために使用される ActionScript 仮想マシンです。Flash Player 8 以前の SWF ファイルが Loader オブジェクトによってロードされると、AVM1Movie オブジェクトが作成されます。AVM1Movie オブジェクトは、DisplayObject クラスから継承されたメソッドとプロパティ(xywidth など)を使用できます。ただし、AVM1Movie オブジェクトと AVM2 オブジェクトの間で相互に運用することはできません(メソッドの呼び出しやパラメーターの使用など)。

AVM2 SWF ファイルによってロードされた AVM1 SWF ファイルには、次の制約があります。

  • ロードされた AVM1Movie オブジェクトは、AVM1 SWF ファイルと、そのファイルによってロードされたすべての AVM1 SWF ファイルの疑似ルートオブジェクトとして処理されます。つまり、ActionScript 1.0 の lockroot プロパティが true に設定されている場合と同様に処理されます。AVM1 ムービーは、すべての子の ActionScript 1.0 または 2.0 のコード実行時に、必ず最初に処理されます。読み込まれた子の _root プロパティは、読み込まれた AVM1 SWF ファイルの lockroot プロパティが設定されている場合を除き、常にこの AVM1 SWF ファイルになります。
  • AVM1 コンテンツで、ファイルをレベルにロードすることはできません。例えば、loadMovieNum("url", levelNum) を呼び出してファイルをロードすることはできません。
  • AVM2 SWF ファイルによってロードされた AVM1 SWF ファイルは、他の SWF ファイルを this にロードできません。つまり、他の SWF ファイルを自身の上にロードすることはできません。ただし、子 Sprite オブジェクト、MovieClip オブジェクト、またはこの SWF ファイルによってロードされた他の AVM1 SWF ファイルを this にロードすることは可能です。
DisplayObjectLoader
ShaderInput ShaderInput インスタンスはシェーダーカーネルの 1 つの入力イメージを表します。Object ShaderInput インスタンスはシェーダーカーネルの 1 つの入力イメージを表します。カーネル実行で使用する 0、1、またはそれ以上のソースイメージを許可するようにカーネルを定義できます。ShaderInput インスタンスには、シェーダーの実行時に使用する入力イメージを指定するメカニズムがあります。入力値を指定するには、BitmapData、ByteArray、または Vector を指定します。イメージデータを含む <Number> インスタンスで、これを input プロパティに割り当てます。

Shader インスタンスの入力イメージを表す ShaderInput インスタンスが、Shader インスタンスの data プロパティのプロパティとしてアクセスされます。ShaderInput プロパティの名前は、シェーダーコードの入力名と同じです。例えば、次の例に示すように、シェーダーが src という名前の入力を定義している場合は、src 入力を表す ShaderInput インスタンスに src というプロパティでアクセスできます。

myShader.data.src.image = new BitmapData(50, 50, true, 0xFF990000);

Shader インスタンスを使用する際に、入力イメージの指定が必要ない場合があります。操作により自動的に指定されるからです。次の目的で Shader を使用する場合にのみ入力を指定します。

  • シェーダー塗り
  • ShaderFilter、シェーダーで複数の入力を使用するように定義されている場合は、2 番目または追加入力の場合のみ(フィルターの適用先となるオブジェクトが、最初の入力として自動的に使用されます)。
  • シェーダーブレンドモード、シェーダーで 3 つ以上の入力を使用するように定義されている場合は、3 番目または追加入力の場合のみ(ブレンドされるオブジェクトが最初と 2 番目の入力として自動的に使用されます)。
  • ShaderJob バックグラウンド実行

ShaderJob インスタンスを使用してシェーダーを実行し、線形データ配列を含む ByteArray を処理するには、ByteArray 内の ShaderInput インスタンスの height を 1 に、width を 32 ビット浮動小数点の値に設定します。その場合、シェーダーの入力は image1 データ型で定義する必要があります。

一般に、開発者コードでは直接 ShaderInput インスタンスは作成されません。ShaderInput インスタンスは、Shader インスタンスが作成されるときに、シェーダーの各入力に対して作成されます。

flash.display.ShaderDataflash.display.Shader.dataflash.display.ShaderJobShaderInput ShaderInput インスタンスを作成します。 ShaderInput インスタンスを作成します。ShaderInput コンストラクターは開発者コードでは直接呼び出されません。ShaderInput インスタンスは、Shader インスタンスが作成されるときに、シェーダーの各入力に対して作成されます。 channels シェーダー入力に対応するチャンネル数です。int シェーダー入力に対応するチャンネル数です。このプロパティは、入力データが ByteArray または Vector の場合に必ず使用します。<Number> インスタンスです。 height シェーダー入力の高さです。int シェーダー入力の高さです。このプロパティは、入力データが ByteArray または Vector の場合にのみ使用します。<Number> インスタンスです。入力が BitmapData インスタンスの場合、高さは自動的に決まります。 index シェーダー入力の 0 から始まるインデックスで、シェーダー入力定義の順番を表します。int シェーダー入力の 0 から始まるインデックスで、シェーダー入力定義の順番を表します。 input シェーダーの実行時に使用する入力データです。Object シェーダーの実行時に使用する入力データです。このプロパティには、BitmapData インスタンス、ByteArray インスタンス、または Vector を指定できます。<Number> インスタンスです。

ByteArray 値を input プロパティに割り当てる場合は、次の条件を満たす必要があります。

  • heightwidth のプロパティが設定されていること。
  • バイト配列の内容が、32 ビット浮動小数点値のみで構成されていること。これらの値は、ByteArray.writeFloat() メソッドを使用して作成できます。
  • total length in bytes of the ByteArray のバイト単位の長さの合計は、width × height × channels × 4 と完全に一致すること。
  • バイト配列の endian プロパティが Endian.LITTLE_ENDIAN であること。

Vector の場合:<Number> インスタンスを input プロパティに割り当てる場合は、Vector の長さが width × height × channels と一致する必要があります。

width シェーダー入力の幅です。int シェーダー入力の幅です。このプロパティは、入力データが ByteArray または Vector の場合にのみ使用します。<Number> インスタンスです。入力が BitmapData インスタンスの場合、幅は自動的に決まります。
ColorCorrection ColorCorrection クラスは、flash.display.Stage.colorCorrection プロパティの値を提供します。Object ColorCorrection クラスは、flash.display.Stage.colorCorrection プロパティの値を提供します。 flash.display.Stage.colorCorrectionDEFAULT ホストのデフォルトのカラー補正を使用します。defaultString ホストのデフォルトのカラー補正を使用します。Web プレーヤーの場合、通常、ホストはブラウザーです。Flash Player では、SWF ファイルのホストである Web ページと同じカラー補正を使用しようとします。 OFF プレーヤーのホスト環境とは関係なしにカラー補正をオフにします。offString プレーヤーのホスト環境とは関係なしにカラー補正をオフにします。この設定により、パフォーマンスが高速化されます。 ON プレーヤーのホスト環境とは関係なしにカラー補正をオンにします。onString プレーヤーのホスト環境とは関係なしにカラー補正をオンにします。 Shader Shader インスタンスは ActionScript のシェーダー (Pixel Bender) のカーネルを表します。Object Shader インスタンスは ActionScript のシェーダー(Pixel Bender)のカーネルを表します。アプリケーションでシェーダーを使用するには、そのシェーダーの Shader インスタンスを作成します。次に、その Shader インスタンスを目的のエフェクトに合わせて使用します。例えば、シェーダーをフィルターとして使用する場合は、Shader インスタンスを ShaderFilter オブジェクトの shader プロパティに割り当てます。

シェーダーがイメージの全ピクセルに対しピクセル単位で実行する関数を定義します。各関数呼び出し結果が、イメージ内のそのピクセル座標の出力カラーとなります。シェーダーは 1 つ以上の入力イメージを指定できます。このイメージのコンテンツを関数の出力の決定に使用できます。また、シェーダーは 1 つ以上のパラメーターを指定することもできます。これは関数出力の計算に使用可能な入力値となります。1 つのシェーダー実行では、入力値とパラメーター値は定数です。唯一変化するのは、関数の結果がカラーとなるピクセル座標です。複数の出力ピクセル座標のシェーダー関数呼び出しは、シェーダー実行パフォーマンスを高めるために、並行して実行されます。

シェーダーバイトコードは、実行時に URLLoader インスタンスを使用してロードできます。次の例は、シェーダーバイトコードファイルを実行時にロードし、それを Shader インスタンスにリンクする方法を示しています。

var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, onLoadComplete); loader.load(new URLRequest("myShader.pbj")); var shader:Shader; function onLoadComplete(event:Event):void { // Create a new shader and set the loaded data as its bytecode shader = new Shader(); shader.byteCode = loader.data; // You can also pass the bytecode to the Shader() constructor like this: // shader = new Shader(loader.data); // do something with the shader }

[Embed] メタデータタグを使用して、コンパイル時にシェーダーを SWF に埋め込む方法もあります。[Embed] メタデータタグは、Flex SDK を使用して SWF をコンパイルした場合にのみ使用できます。この例では、[Embed] タグの source パラメーターでシェーダーファイルが指定され、mimeType パラメーターは "application/octet-stream" となります。

[Embed(source="myShader.pbj", mimeType="application/octet-stream)] var MyShaderClass:Class; // ... // create a new shader and set the embedded shader as its bytecode var shaderShader = new Shader(); shader.byteCode = new MyShaderClass(); // You can also pass the bytecode to the Shader() constructor like this: // var shader:Shader = new Shader(new MyShaderClass()); // do something with the shader

どちらの場合も、生のシェーダー(URLLoader.data プロパティまたは [Embed] データクラスのインスタンス)を Shader インスタンスにリンクします。前の例で示したとおり、これは 2 つの方法で行うことができます。シェーダーバイトコードを引数として Shader() コンストラクターに渡します。または、Shader インスタンスの byteCode プロパティとして設定することもできます。

Shader インスタンスが作成されたら、次のいくつかの方法のうちどれでも使用できます。

  • シェーダー塗り:シェーダーの出力は、描画 API により描画されたコンテンツの塗りとして使用されます。Shader インスタンスを引数として Graphics.beginShaderFill() メソッドに渡します。
  • シェーダーフィルター:シェーダーの出力は、表示オブジェクトに適用されるグラフィックフィルターとして使用されます。Shader インスタンスを ShaderFilter インスタンスの shader プロパティに割り当てます。
  • ブレンドモード:シェーダーの出力は、重なり合う 2 つの表示オブジェクト間のブレンドとしてレンダリングされます。Shader インスタンスを、2 つの表示オブジェクトのうち上の blendShader プロパティに割り当てます。
  • バックグラウンドシェーダー処理:表示のフリーズを避けるため、シェーダーをバックグラウンドで実行し、処理が完了したときにイベントを送出します。Shader インスタンスを ShaderJob インスタンスの shader プロパティに割り当てます。

シェーダー塗り、フィルター、およびブレンドは、GPU レンダリングではサポートされません。

モバイルブラウザーのサポート:この機能はモバイルブラウザーではサポートされません。

AIR プロファイルのサポート:この機能はすべてのデスクトップオペレーティングシステムでサポートされますが、モバイルデバイスの種類によってはサポートされません。また、テレビ用 AIR デバイスではサポートされません。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

次の例は、シェーダーバイトコードファイルを実行時にロードし、それにリンクされた Shader インスタンスを作成する方法を示しています。

この例では、"donothing.pbj" という名前のシェーダーバイトコードファイルが、アプリケーションの出力先と同じディレクトリにあるものとします。DoNothing シェーダーの Pixel Bender ソースコードは、「ShaderData クラスの例」にあります。

package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class LoadedShaderExample extends Sprite { private var loader:URLLoader; public function LoadedShaderExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("donothing.pbj")); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(); shader.byteCode = loader.data; // do something with the Shader instance } } }
次の例は、シェーダーバイトコードファイルを SWF にコンパイルすることで埋め込み、それにリンクされた Shader インスタンスを作成する方法を示しています。

この例では、"donothing.pbj" という名前のシェーダーバイトコードファイルがアプリケーションのソースコードと同じディレクトリにあり、Flex SDK を使用して SWF をコンパイルしたものとします。DoNothing シェーダーの Pixel Bender ソースコードは、「ShaderData クラスの例」にあります。

package { import flash.display.Shader; import flash.display.Sprite; public class EmbeddedShaderExample extends Sprite { [Embed(source="donothing.pbj", mimeType="application/octet-stream")] private static var DoNothingShader:Class; public function EmbeddedShaderExample() { var shader:Shader = new Shader(); shader.byteCode = new DoNothingShader(); // do something with the Shader instance } } }
flash.display.DisplayObject.blendShaderflash.display.Graphics.beginShaderFill()flash.display.ShaderJobflash.filters.ShaderFilterflash.net.URLLoaderShader 新しい Shader インスタンスを作成します。codeflash.utils:ByteArraynullShader にリンクする生のシェーダーバイトコードです。 新しい Shader インスタンスを作成します。 data Shader インスタンスのパラメーター、入力イメージ、およびメタデータにアクセスできます。flash.display:ShaderData Shader インスタンスのパラメーター、入力イメージ、およびメタデータにアクセスできます。シェーダーのパラメーターを表す ShaderParameter オブジェクト、シェーダーの入力イメージを表す ShaderInput オブジェクト、シェーダーのメタデータを表すその他の値が、Shader インスタンスの作成時に data プロパティオブジェクトの各プロパティとして動的に追加されます。これらのプロパティを使用して、シェーダーを検査し、パラメーターと入力値を設定することができます。

data オブジェクトの動的プロパティにアクセスし、操作する方法について詳しくは、ShaderData クラスに関する説明を参照してください。

flash.display.ShaderDataflash.display.ShaderInputflash.display.ShaderParameter
precisionHint シェーダーが実行する算術演算の精度です。String シェーダーが実行する算術演算の精度です。

precisionHint プロパティで使用可能な値セットは、ShaderPrecision クラスの定数によって定義されます。

デフォルト値は ShaderPrecision.FULL です。精度を ShaderPrecision.FAST に設定すると、精度が低下しますが算術演算は高速になります。

full 精度モード(ShaderPrecision.FULL)では、すべての算術演算が完全桁の IEEE 32 ビット浮動少数規格で計算され、すべてのプラットフォームで一貫した動作が提供されます。このモードでは、三角関数や指数関数などの一部の算術演算について処理速度が低下することがあります。

fast 精度モード(ShaderPrecision.FAST)は処理速度を優先して設計されていますが、プラットフォームの差異や CPU 構成の内容によって結果が異なることがあります。多くの場合、グラフィックエフェクトの作成にはアーティファクトが見えることもなく、この精度レベルで十分です。

精度モードの選択は、次のシェーダー操作に影響します。これらの操作は、SSE 命令セットを内蔵する Intel プロセッサーでは高速になります。

  • sin(x)
  • cos(x)
  • tan(x)
  • asin(x)
  • acos(x)
  • atan(x)
  • atan(x, y)
  • exp(x)
  • exp2(x)
  • log(x)
  • log2(x)
  • pow(x, y)
  • reciprocal(x)
  • sqrt(x)
flash.display.ShaderPrecision
byteCode この Shader インスタンスの生のシェーダーバイトコードです。flash.utils:ByteArray この Shader インスタンスの生のシェーダーバイトコードです。
LineScaleMode LineScaleMode クラスは、Graphics.lineStyle() メソッドの scaleMode パラメーターに値を提供します。Object LineScaleMode クラスは、scaleMode パラメーター(Graphics.lineStyle() メソッド内のパラメーター)に値を提供します。 flash.display.Graphics.lineStyle()HORIZONTAL この設定を lineStyle() メソッドの scaleMode パラメーターとして使用すると、線の太さは垂直方向にのみ拡大または縮小されます。horizontalString この設定を scaleMode パラメーター(lineStyle() メソッドのパラメーター)として使用すると、線の太さは垂直方向にのみ拡大または縮小されます。例えば、次に示す各円は、1 ピクセルの線で描画され、それぞれ scaleMode パラメーターが LineScaleMode.VERTICAL に設定されているとします。左側の円は垂直方向にのみ拡大または縮小され、右側の円は垂直と水平の両方向に拡大または縮小されたものです。

NONE この設定を lineStyle() メソッドの scaleMode パラメーターとして使用すると、線の太さは拡大または縮小されません。noneString この設定を scaleMode パラメーター(lineStyle() メソッドのパラメーター)として使用すると、線の太さは拡大または縮小されません。 NORMAL この設定を lineStyle() メソッドの scaleMode パラメーターとして使用すると、オブジェクトが拡大または縮小されるときには線の太さも常に拡大または縮小されます(デフォルト)。normalString この設定を scaleMode パラメーター(lineStyle() メソッドのパラメーター)として使用すると、オブジェクトが拡大または縮小されるときには線の太さも常に拡大または縮小されます(デフォルト)。 VERTICAL この設定を lineStyle() メソッドの scaleMode パラメーターとして使用すると、線の太さは水平方向にのみ拡大または縮小されます。verticalString この設定を scaleMode パラメーター(lineStyle() メソッドのパラメーター)として使用すると、線の太さは水平方向にのみ拡大または縮小されます。例えば、次に示す各円は、1 ピクセルの線で描画され、それぞれ scaleMode パラメーターが LineScaleMode.HORIZONTAL に設定されているとします。左側の円は水平方向にのみ拡大または縮小され、右側の円は垂直と水平の両方向に拡大または縮小されたものです。

IGraphicsData このインターフェイスは、塗り、線、パスなど、flash.display.Graphics のメソッドのパラメーターとして使用されるオブジェクトを定義するために使用します。 このインターフェイスは、塗り、線、パスなど、flash.display.Graphics のメソッドのパラメーターとして使用されるオブジェクトを定義するために使用します。描画プロパティデータの作成と管理、および異なるインスタンスでの同じデータの再利用には、このインターフェイスの実装者クラスを使用します。その後、Graphics クラスのメソッドを使用して、描画オブジェクトをレンダリングします。 flash.display.Graphics.drawGraphicsData()MovieClip MovieClip クラスは、Sprite、DisplayObjectContainer、InteractiveObject、DisplayObject および EventDispatcher クラスを継承します。ActionScript が作成するオブジェクトの基本表示オブジェクトです。 flash.display:Sprite MovieClip クラスは、Sprite、DisplayObjectContainer、InteractiveObject、DisplayObject および EventDispatcher クラスを継承します。

MovieClip オブジェクトには、Sprite オブジェクトとは違ってタイムラインがあります。

Flash Professional では、MovieClip クラスのメソッドは、ムービークリップをターゲットとするアクションと同じ機能を提供します。Flash オーサリングツールのアクションパネルのアクションツールボックスには同等のアクションがない追加メソッドもあります。

Flash Professional のステージに配置された子インスタンスは、親インスタンスのコンストラクター内からコードでアクセスできません。コード実行の該当時点では作成されていないためです。子にアクセスするには、親はコードを使用して子インスタンスを作成するか、子を待機するコールバック関数が Event.ADDED_TO_STAGE イベントを送出するまでアクセスを遅延させる必要があります。

モーショントゥイーンが含まれている MovieClip オブジェクトの次のいずれかのプロパティを変更した場合、MovieClip オブジェクト、alphablendModefiltersheightopaqueBackgroundrotationscaleXscaleYscale9GridscrollRecttransformvisiblewidthx、または y の再生ヘッドが停止されます。 ただし、その MovieClip オブジェクトの子 MovieClip オブジェクトの再生ヘッドは停止しません。

注意:Flash Lite 4 は、FEATURE_BITMAPCACHE が定義されている場合のみ、MovieClip.opaqueBackground プロパティをサポートします。Flash Lite 4 のデフォルト設定では、FEATURE_BITMAPCACHE は定義されません。適切なデバイスで MovieClip.opaqueBackground プロパティを有効にするには、プロジェクトで FEATURE_BITMAPCACHE を定義します。

次の例では、MovieClipExample クラスを使用して、MovieClip の様々なプロパティを監視する方法を示します。これを行うには、以下の手順を実行します。
  1. コンストラクター関数で、MovieClipExample オブジェクト(MovieClip を拡張する)のプロパティの値を表示するのに使用するテキストフィールドを定義します。
  2. getPropertiesString() メソッドの戻り値が、outputText テキストフィールドのテキストとして使用されます。getPropertiesString() メソッドは、ムービークリップの以下のプロパティの値が取り込まれたストリングを返します。currentFramecurrentLabelcurrentSceneframesLoadedtotalFrames、およびtrackAsMenu があります。
  3. コンストラクター関数内の 2 行のコードは、width プロパティおよび height プロパティ(outputText テキストフィールドのプロパティ)を調整します。
  4. コンストラクター関数の最後の行は、outputText テキストフィールドを表示リストに追加します。
package { import flash.display.MovieClip; import flash.text.TextField; public class MovieClipExample extends MovieClip { public function MovieClipExample() { var outputText:TextField = new TextField(); outputText.text = getPropertiesString(); outputText.width = stage.stageWidth; outputText.height = outputText.textHeight; addChild(outputText); } private function getPropertiesString():String { var str:String = "" + "currentFrame: " + currentFrame + "\n" + "currentLabel: " + currentLabel + "\n" + "currentScene: " + currentScene + "\n" + "framesLoaded: " + framesLoaded + "\n" + "totalFrames: " + totalFrames + "\n" + "trackAsMenu: " + trackAsMenu + "\n"; return str; } } }
MovieClip 新しい MovieClip インスタンスを作成します。 新しい MovieClip インスタンスを作成します。MovieClip の作成後、ステージ上の表示オブジェクトコンテナの addChild() メソッドまたは addChildAt() メソッドを呼び出せます。 gotoAndPlay 指定されたフレームで SWF ファイルの再生を開始します。frameObject再生ヘッドの送り先となるフレーム番号を表す数値、または再生ヘッドの送り先となるフレームのラベルを表すストリングです。数値を指定する場合は、指定するシーンに対する相対数で指定します。シーンを指定しない場合は、再生するグローバルフレーム番号が現在のシーンによって決定されます。 シーンを指定した場合、再生ヘッドは指定されたシーン内のフレーム番号にジャンプします。 sceneStringnull再生するシーンの名前です。このパラメーターはオプションです。 指定されたフレームで SWF ファイルの再生を開始します。この処理は、フレーム内のすべての残存アクションが実行を完了した後に行われます。フレームだけでなくシーンも指定する場合は、scene パラメーターの値も指定してください。 次のコードは、gotoAndPlay() メソッドを使用して、mc1 ムービークリップの再生ヘッドを現在の位置から 5 つ先のフレームに進めます。 mc1.gotoAndPlay(mc1.currentFrame + 5); 次のコードは、gotoAndPlay() メソッドを使用して、mc1 ムービークリップの再生ヘッドを、"intro" というラベルのフレーム("Scene 12" という名前のシーン内)に進めます。 mc1.gotoAndPlay("intro", "Scene 12"); gotoAndStop このムービークリップの指定されたフレームに再生ヘッドを送り、そこで停止させます。指定された scene または frame が、このムービークリップで見つからなかった場合。 ArgumentErrorArgumentErrorframeObject再生ヘッドの送り先となるフレーム番号を表す数値、または再生ヘッドの送り先となるフレームのラベルを表すストリングです。数値を指定する場合は、指定するシーンに対する相対数で指定します。シーンを指定しない場合は、送り先のグローバルフレーム番号が現在のシーンによって決定されます。 シーンを指定した場合、再生ヘッドは指定されたシーン内のフレーム番号に送られて停止します。 sceneStringnullシーン名です。このパラメーターはオプションです。 このムービークリップの指定されたフレームに再生ヘッドを送り、そこで停止させます。この処理は、フレーム内のすべての残存アクションが実行を完了した後に行われます。フレームに加えてシーンを指定する場合は、scene パラメーターを指定してください。 次のコードは、gotoAndStop() メソッドおよび currentFrame プロパティを使用して、mc1 ムービークリップの再生ヘッドを現在の位置から 5 つ先のフレームに進めます。 mc1.gotoAndStop(mc1.currentFrame + 5); 次のコードは、gotoAndStop() を使用して、mc1 ムービークリップの再生ヘッドを、"finale" というラベルのフレーム("Scene 12" という名前のシーン内)に進め、再生ヘッドを停止します。 mc1.gotoAndStop("finale", "Scene 12"); nextFrame 次のフレームに再生ヘッドを送り、停止します。 次のフレームに再生ヘッドを送り、停止します。この処理は、フレーム内のすべての残存アクションが実行を完了した後に行われます。 次の例では、2 つの SimpleButton オブジェクトがタイムラインを制御します。prev ボタンは再生ヘッドを前のフレームに移動し、nextBtn ボタンは再生ヘッドを次のフレームに移動します。 import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevFrame(); } function goForward(event:MouseEvent):void { mc1.nextFrame(); } prevFrame()nextScene MovieClip インスタンスの次のシーンに再生ヘッドを移動します。 MovieClip インスタンスの次のシーンに再生ヘッドを移動します。この処理は、フレーム内のすべての残存アクションが実行を完了した後に行われます。 次の例では、2 つの SimpleButton オブジェクトがタイムラインを制御します。prevBtn ボタンは再生ヘッドを前のシーンに移動し、nextBtn ボタンは再生ヘッドを次のシーンに移動します。 import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevScene(); } function goForward(event:MouseEvent):void { mc1.nextScene(); } play ムービークリップのタイムライン内で再生ヘッドを移動します。 ムービークリップのタイムライン内で再生ヘッドを移動します。 次のコードでは stop() メソッドを使用して、mc1 という名前のムービークリップを停止し、ユーザーが continueText という名前のテキストフィールドをクリックしたときに再生を再開します。 import flash.text.TextField; import flash.events.MouseEvent; var continueText:TextField = new TextField(); continueText.text = "Play movie..."; addChild(continueText); mc1.stop(); continueText.addEventListener(MouseEvent.CLICK, resumeMovie); function resumeMovie(event:MouseEvent):void { mc1.play(); } gotoAndPlay()prevFrame 直前のフレームに再生ヘッドを戻し、停止します。 直前のフレームに再生ヘッドを戻し、停止します。この処理は、フレーム内のすべての残存アクションが実行を完了した後に行われます。 次の例では、2 つの SimpleButton オブジェクトがタイムラインを制御します。prev ボタンは再生ヘッドを前のフレームに移動し、nextBtn ボタンは再生ヘッドを次のフレームに移動します。 import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevFrame(); } function goForward(event:MouseEvent):void { mc1.nextFrame(); } prevScene MovieClip インスタンスの直前のシーンに再生ヘッドを移動します。 MovieClip インスタンスの直前のシーンに再生ヘッドを移動します。この処理は、フレーム内のすべての残存アクションが実行を完了した後に行われます。 次の例では、2 つの SimpleButton オブジェクトがタイムラインを制御します。prevBtn ボタンは再生ヘッドを前のシーンに移動し、nextBtn ボタンは再生ヘッドを次のシーンに移動します。 import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevScene(); } function goForward(event:MouseEvent):void { mc1.nextScene(); } stop ムービークリップ内の再生ヘッドを停止します。 ムービークリップ内の再生ヘッドを停止します。 currentFrameLabel MovieClip インスタンスのタイムライン内の現在のフレームにあるラベルです。String MovieClip インスタンスのタイムライン内の現在のフレームにあるラベルです。現在のフレームにラベルがない場合、currentLabelnull です。 currentFrame MovieClip インスタンスのタイムライン内の再生ヘッドが置かれているフレームの番号を示します。int MovieClip インスタンスのタイムライン内の再生ヘッドが置かれているフレームの番号を示します。ムービークリップに複数のシーンがある場合、この値は現在のシーンのフレーム番号です。 次のコードは、gotoAndStop() メソッドおよび currentFrame プロパティを使用して、mc1 ムービークリップの再生ヘッドを現在の位置から 5 つ先のフレームに進めます。 mc1.gotoAndStop(mc1.currentFrame + 5); currentLabel MovieClip インスタンスのタイムライン内の再生ヘッドが置かれている現在のラベルです。String MovieClip インスタンスのタイムライン内の再生ヘッドが置かれている現在のラベルです。現在のフレームにラベルがない場合、ラベルを含んだ前のフレームの名前に currentLabel が設定されます。現在のフレームと前のフレームにラベルが含まれない場合、currentLabelnull を返します。 次のコードは、MovieClip オブジェクトの currentLabel プロパティにアクセスする方法を示しています。MovieClip オブジェクトの名前は mc1 です。 trace(mc1.currentLabel); currentLabels 現在のシーンの FrameLabel オブジェクトの配列を返します。Array 現在のシーンの FrameLabel オブジェクトの配列を返します。MovieClip インスタンスがシーンを使用していない場合、配列には MovieClip インスタンス全体のすべてのフレームラベルが含まれます。 次のコードは、MovieClip オブジェクトの currentLabels プロパティを使用する方法を示しています。MovieClip オブジェクトの名前は mc1 です。 import flash.display.FrameLabel; var labels:Array = mc1.currentLabels; for (var i:uint = 0; i < labels.length; i++) { var label:FrameLabel = labels[i]; trace("frame " + label.frame + ": " + label.name); } flash.display.FrameLabelcurrentScene MovieClip インスタンスのタイムライン内の再生ヘッドが置かれている現在のシーンです。flash.display:Scene MovieClip インスタンスのタイムライン内の再生ヘッドが置かれている現在のシーンです。 次のコードは、MovieClip オブジェクトの currentScene プロパティを使用する方法を示しています。MovieClip オブジェクトの名前は mc1 です。 import flash.display.Scene; var scene:Scene = mc1.currentScene; trace(scene.name + ": " + scene.numFrames + " frames"); Sceneenabled ムービークリップの有効 / 無効を示すブール値です。Boolean ムービークリップの有効 / 無効を示すブール値です。enabled のデフォルト値は true です。enabledfalse に設定されると、ムービークリップの「オーバー」、「ダウン」、「アップ」の各フレームは無効になります。ムービークリップは、イベント(mouseDownmouseUpkeyDownkeyUp など)を引き続き受け取ります。

enabled プロパティは、ムービークリップのボタンに似たプロパティのみを制御します。enabled プロパティはいつでも変更できます。このプロパティの変更後、ムービークリップはすぐに有効 / 無効になります。enabled プロパティが false に設定されている場合、オブジェクトは自動タブ順序に含まれません。

次のコードは、enabled プロパティを使用して、MovieClip オブジェクトのボタンに似てプロパティを無効化する方法を示します。MovieClip オブジェクトの名前は mc1 です。 mc1.enabled = false;
framesLoaded ストリーミング SWF ファイルからロードされたフレーム数です。int ストリーミング SWF ファイルからロードされたフレーム数です。framesLoaded プロパティを使用して、特定のフレームおよびその前のすべてのフレームの内容がロードされていてブラウザーでローカルに使用できるかどうかを判別できます。 これを使用して、大きい SWF ファイルのダウンロードを監視することもできます。例えば、SWF ファイルの指定されたフレームがロードを完了するまで、その SWF ファイルがロード中であることを示すメッセージをユーザーに表示する場合に使用できます。

ムービークリップに複数のシーンがある場合は、framesLoaded プロパティは、ムービークリップ内のすべてのシーンのロード済みフレームの数を返します。

次のコードは、framesLoaded プロパティおよび totalFrames プロパティを使用して、mc1 という名前のストリーミング MovieClip オブジェクトが完全にロードされているかどうかを判別する方法を示します。 if (mc1.framesLoaded == mc1.totalFrames) { trace("OK."); }
Loader クラス
scenes MovieClip インスタンス内のシーンの名前、フレーム数、フレームラベルがリストされた Scene オブジェクトの配列です。Array MovieClip インスタンス内のシーンの名前、フレーム数、フレームラベルがリストされた Scene オブジェクトの配列です。 次のコードは、MovieClip オブジェクトの scenes プロパティを使用する方法を示しています。MovieClip オブジェクトの名前は mc1 です。 import flash.display.Scene; for (var i:uint = 0; i < mc1.scenes.length; i++) { var scene:Scene = mc1.scenes[i]; trace("scene " + scene.name + ": " + scene.numFrames + " frames"); } ScenetotalFrames MovieClip インスタンス内のフレーム総数です。int MovieClip インスタンス内のフレーム総数です。

ムービークリップに複数のフレームがある場合は、totalFrames プロパティは、ムービークリップ内のすべてのシーンのフレーム総数を返します。

次のコードは、totalFrames プロパティ(mc1 という名前の MovieClip オブジェクトのプロパティ)の使用を示します。 trace(mc1.totalFrames);
trackAsMenu SimpleButton または MovieClip オブジェクトである他の表示オブジェクトがマウス解放イベントまたは他のユーザー入力解放イベントを受け取ることができるかどうかを示します。Boolean SimpleButton または MovieClip オブジェクトである他の表示オブジェクトがマウス解放イベントまたは他のユーザー入力解放イベントを受け取ることができるかどうかを示します。trackAsMenu プロパティを使用してメニューを作成できます。trackAsMenu プロパティは、任意の SimpleButton または MovieClip オブジェクトに対して設定できます。trackAsMenu プロパティのデフォルト値は false です。

trackAsMenu プロパティはいつでも変更できます。このプロパティを変更したムービークリップには、新しい動作が直ちに反映されます。

次のコードは、trackAsMenu プロパティを使用して、mc1 という名前の MovieClip オブジェクトのマウス解放イベントを有効化する方法を示します。 mc1.trackAsMenu = true;
SWFVersion SWFVersion クラスは、読み込まれる SWF ファイルのファイル形式のバージョンを示す定数値の列挙です。Object SWFVersion クラスは、読み込まれる SWF ファイルのファイル形式のバージョンを示す定数値の列挙です。SWFVersion 定数は flash.display.LoaderInfo オブジェクトの swfVersion プロパティの検査に使用されます。 flash.display.LoaderInfo.swfVersionFLASH10 SWF ファイル形式のバージョン 10.0 です。10uint SWF ファイル形式のバージョン 10.0 です。 FLASH11 SWF ファイル形式のバージョン 11.0 です。11uint SWF ファイル形式のバージョン 11.0 です。 FLASH1 SWF ファイル形式のバージョン 1.0 です。1uint SWF ファイル形式のバージョン 1.0 です。 FLASH2 SWF ファイル形式のバージョン 2.0 です。2uint SWF ファイル形式のバージョン 2.0 です。 FLASH3 SWF ファイル形式のバージョン 3.0 です。3uint SWF ファイル形式のバージョン 3.0 です。 FLASH4 SWF ファイル形式のバージョン 4.0 です。4uint SWF ファイル形式のバージョン 4.0 です。 FLASH5 SWF ファイル形式のバージョン 5.0 です。5uint SWF ファイル形式のバージョン 5.0 です。 FLASH6 SWF ファイル形式のバージョン 6.0 です。6uint SWF ファイル形式のバージョン 6.0 です。 FLASH7 SWF ファイル形式のバージョン 7.0 です。7uint SWF ファイル形式のバージョン 7.0 です。 FLASH8 SWF ファイル形式のバージョン 8.0 です。8uint SWF ファイル形式のバージョン 8.0 です。 FLASH9 SWF ファイル形式のバージョン 9.0 です。9uint SWF ファイル形式のバージョン 9.0 です。 NativeWindowResize NativeWindowResize クラスは、edgeOrCorner パラメーター(NativeWindow の startResize() メソッドのパラメーター)の有効な値を表す定数を定義します。ユーザーのアクションに応じてウィンドウのサイズを変更するときに使用する定数を定義します。 Object NativeWindowResize クラスは、edgeOrCorner パラメーター(NativeWindow の startResize() メソッドのパラメーター)の有効な値を表す定数を定義します。

定数は、ウィンドウのそれぞれの端と隅に名前を付けるために定義されます。

flash.display.NativeWindow.startResize()BOTTOM_LEFT ウィンドウの左下隅です。BLString ウィンドウの左下隅です。 BOTTOM_RIGHT ウィンドウの右下隅です。BRString ウィンドウの右下隅です。 BOTTOM ウィンドウの下端です。BString ウィンドウの下端です。 LEFT ウィンドウの左端です。LString ウィンドウの左端です。 NONE キーボードからのサイズ変更をサポートしているシステム(Windows など)上で、キーボードからサイズ変更を行う場合に使用します。String キーボードからのサイズ変更をサポートしているシステム(Windows など)上で、キーボードからサイズ変更を行う場合に使用します。Windows では、Alt+ スペースを押して表示するメニューからサイズ変更コマンドを選択する操作に相当します。NativeWindow.startResize(NativeWindowResize.NONE) を呼び出すと、Windows ユーザーはキーボードの矢印キーを使用してウィンドウのサイズを変更できます。 RIGHT ウィンドウの右端です。RString ウィンドウの右端です。 TOP_LEFT ウィンドウの左上隅です。TLString ウィンドウの左上隅です。 TOP_RIGHT ウィンドウの右上隅です。TRString ウィンドウの右上隅です。 TOP ウィンドウの上端です。TString ウィンドウの上端です。
BitmapDataChannel BitmapDataChannel クラスは、赤、青、緑、またはアルファ透明度のいずれのチャンネルを使用するかを示す定数値の列挙です。Object BitmapDataChannel クラスは、赤、青、緑、またはアルファ透明度のいずれのチャンネルを使用するかを示す定数値の列挙です。

メソッドを呼び出すとき、ビット単位の OR 演算子(|)を使って BitmapDataChannel 定数を結合すれば、複数のカラーチャンネルを指定することができます。

BitmapDataChannel 定数は、次のような値として使用されます。

  • sourceChannel パラメーターおよび destChannel パラメーター(flash.display.BitmapData.copyChannel() メソッドのパラメーター)
  • channelOptions パラメーター(flash.display.BitmapData.noise() メソッドのパラメーター)
  • flash.filters.DisplacementMapFilter.componentX プロパティおよび flash.filters.DisplacementMapFilter.componentY プロパティ
flash.display.BitmapData.copyChannel()flash.display.BitmapData.noise()flash.filters.DisplacementMapFilter.componentXflash.filters.DisplacementMapFilter.componentYALPHA アルファチャンネルです。8uint アルファチャンネルです。 BLUE 青チャンネルです。4uint 青チャンネルです。 GREEN 緑チャンネルです。2uint 緑チャンネルです。 RED 赤チャンネルです。1uint 赤チャンネルです。
GraphicsSolidFill 単色の塗りを定義します。flash.display:IGraphicsFillflash.display:IGraphicsDataObject 単色の塗りを定義します。

GraphicsSolidFill オブジェクトは、Graphics.drawGraphicsData() メソッドと共に使用します。GraphicsSolidFill オブジェクトの描画は、Graphics.beginFill() メソッドの呼び出しに相当します。

flash.display.Graphics.beginFill()flash.display.Graphics.drawGraphicsData()GraphicsSolidFill 新しい GraphicsSolidFill オブジェクトを作成します。coloruint0カラー値です。有効な値は、16 進数形式(0xRRGGBB)です。 alphaNumber1.0アルファ透明度値です。有効な値は 0(完全な透明)~ 1(完全な不透明)です。 新しい GraphicsSolidFill オブジェクトを作成します。 alpha 塗りのアルファ透明度値を示します。1.0Number 塗りのアルファ透明度値を示します。有効な値は 0(完全な透明)~ 1(完全な不透明)です。デフォルト値は 1 です。alpha が 0 に設定されている表示オブジェクトは、表示されない場合でも、アクティブです。 color 塗りのカラーです。0uint 塗りのカラーです。 有効な値は、16 進数形式(0xRRGGBB)です。デフォルト値は 0xFF0000(または uint 0)です。
IBitmapDrawable IBitmapDrawable インターフェイスは、BitmapData クラスの draw() メソッドの source パラメーターとして渡すことができるオブジェクトによって実装されます。 IBitmapDrawable インターフェイスは、source パラメーター(BitmapData クラスの draw() メソッドのパラメーター)として渡すことができるオブジェクトによって実装されます。これらのオブジェクトは、BitmapData または DisplayObject タイプのものです。 flash.display.BitmapData.draw()flash.display.BitmapDataflash.display.DisplayObjectCapsStyle CapsStyle クラスは、線の描画で使用されるキャップのスタイルを指定する定数値の列挙です。Object CapsStyle クラスは、線の描画で使用されるキャップのスタイルを指定する定数値の列挙です。この定数は、caps パラメーター(flash.display.Graphics.lineStyle() メソッドのパラメーター)の値として使用されます。キャップの種類として、次の 3 つを指定できます。

次の例では、CapsStyleExample クラスを使用して、線のキャップスタイルがそれぞれ異なる 3 本の平行線を描画します。
  1. それぞれの線のプロパティは、次のように設定されます。
    • 線の長さは 80 ピクセル
    • 境界線の色はオレンジ色
    • 境界線のサイズは 30 ピクセル
    • ハイライトカラーは灰色
    • ハイライトサイズは 0 ピクセル
    • アルファは 1(単色になる)
    • ピクセルのヒンティングは false に設定(ピクセル全体に対して線がヒンティングされない)
    • 線の縮小 / 拡大モードは通常(太さを縮小 / 拡大)
    • 境界線キャップの結合スタイルは MITER に設定されます。
    • マイター限度は 1(線に近いマイターが切り取られる)
  2. クラスコンストラクターは、x = 0、y = 0 から始まる 3 本の垂直線を、それぞれ異なる線のキャップのスタイル(なし、丸、角)を使用して drawLine() メソッドを 3 回呼び出して作成します。drawLine() メソッドの 3 回の呼び出しごとに、キャップスタイルと上記のプロパティを使用して垂直線および関連する線ハイライトが描画されます。まず新しい Shape オブジェクト child が作成され、次に Graphics クラスのメソッドを使用して線のスタイルが設定されて線とハイライトが描画されます。各 child インスタンスが表示リストに追加され、ステージに描画されます。
  3. 連結線セグメントは、refreshLayout() メソッドを使用して再描画されます。再描画される位置は y = 80 ピクセル、起点は x = 80 ピクセル、線のセグメント間の間隔は 25 ピクセルです。
package { import flash.display.CapsStyle; import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.display.Sprite; public class CapsStyleExample extends Sprite { private var lineLength:uint = 80; private var borderColor:uint = 0xFFCC00; private var borderSize:uint = 30; private var highlightColor:uint = 0x666666; private var highlightSize:uint = 0; private var gutter:uint = 25; private var borderAlpha:uint = 1; private var borderPixelHinting:Boolean = false; private var borderScaleMode:String = LineScaleMode.NORMAL; private var borderJointStyle:String = JointStyle.MITER; private var borderMiterLimit:uint = 1; public function CapsStyleExample() { drawLine(CapsStyle.NONE); drawLine(CapsStyle.ROUND); drawLine(CapsStyle.SQUARE); refreshLayout(); } private function drawLine(capsStyle:String):void { var child:Shape = new Shape(); child.graphics.lineStyle(borderSize, borderColor, borderAlpha, borderPixelHinting, borderScaleMode, capsStyle, borderJointStyle, borderMiterLimit); child.graphics.lineTo(0, 0); child.graphics.lineTo(0, lineLength); child.graphics.endFill(); child.graphics.moveTo(0, 0); child.graphics.lineStyle(highlightSize, highlightColor); child.graphics.lineTo(0, 0); child.graphics.lineTo(0, lineLength); addChild(child); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = lineLength; lastChild.y = lineLength; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = lineLength; lastChild = child; } } } }
flash.display.Graphics.lineStyle()NONE flash.display.Graphics.lineStyle() メソッドの caps パラメーターでキャップなしを指定するのに使用します。noneString caps パラメーター(flash.display.Graphics.lineStyle() メソッドのパラメーター)でキャップなしを指定するのに使用します。 ROUND flash.display.Graphics.lineStyle() メソッドの caps パラメーターで丸いキャップを指定するのに使用します。roundString caps パラメーター(flash.display.Graphics.lineStyle() メソッドのパラメーター)で丸いキャップを指定するのに使用します。 SQUARE flash.display.Graphics.lineStyle() メソッドの caps パラメーターで四角形のキャップを指定するのに使用します。squareString caps パラメーター(flash.display.Graphics.lineStyle() メソッドのパラメーター)で四角形のキャップを指定するのに使用します。
StageScaleMode StageScaleMode クラスは、Stage.scaleMode プロパティの値を提供します。Object StageScaleMode クラスは、Stage.scaleMode プロパティの値を提供します。 flash.display.Stage.scaleModeEXACT_FIT 指定された領域内にアプリケーション全体が、元の縦横比を維持しないで表示されるよう指定します。exactFitString 指定された領域内にアプリケーション全体が、元の縦横比を維持しないで表示されるよう指定します。歪みが発生する場合もあります。 NO_BORDER 指定された領域いっぱいにアプリケーション全体が歪まずに表示されるように指定します。ただし、アプリケーションの元の縦横比を保つために、ある程度トリミングされることがあります。noBorderString 指定された領域いっぱいにアプリケーション全体が歪まずに表示されるように指定します。ただし、アプリケーションの元の縦横比を保つために、ある程度トリミングされることがあります。 NO_SCALE アプリケーションのサイズが固定され、Flash Player のウィンドウのサイズが変更された場合でも、サイズが維持されるように指定します。noScaleString アプリケーションのサイズが固定され、Flash Player のウィンドウのサイズが変更された場合でも、サイズが維持されるように指定します。 Flash Player のウィンドウがコンテンツよりも小さい場合は、トリミングされることがあります。 SHOW_ALL 指定された領域内にアプリケーション全体が、アプリケーションの元の縦横比を維持したまま、歪まずに表示されるよう指定します。showAllString 指定された領域内にアプリケーション全体が、アプリケーションの元の縦横比を維持したまま、歪まずに表示されるよう指定します。 ただし、アプリケーションの両側に境界枠が表示されることがあります。 SpreadMethod SpreadMethod クラスは、Graphics クラスの beginGradientFill() メソッドおよび lineGradientStyle() メソッドの spreadMethod パラメーターの値を提供します。Object SpreadMethod クラスは、spreadMethod パラメーター(Graphics クラスの beginGradientFill() メソッドおよび lineGradientStyle() メソッドのパラメーター)の値を提供します。

以下は、さまざまな spread メソッドを使用して同じグラデーションの塗りを行う例です。

SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT
flash.display.Graphics.beginGradientFill()flash.display.Graphics.lineGradientStyle()PAD グラデーションで spread メソッド pad を使用することを指定します。padString グラデーションで spread メソッド pad を使用することを指定します。 REFLECT グラデーションで spread メソッド reflect を使用することを指定します。reflectString グラデーションで spread メソッド reflect を使用することを指定します。 REPEAT グラデーションで spread メソッド repeat を使用することを指定します。repeatString グラデーションで spread メソッド repeat を使用することを指定します。
FocusDirection FocusDirection クラスでは、direction パラメーター (Stage オブジェクトの assignFocus() メソッドのパラメーター) および direction プロパティ (FocusEvent オブジェクトのプロパティ) に使用する値が列挙されます。Object FocusDirection クラスでは、direction パラメーター(Stage オブジェクトの assignFocus() メソッドのパラメーター)および direction プロパティ(FocusEvent オブジェクトのプロパティ)に使用する値が列挙されます。 flash.events.FocusEvent.directionflash.display.Stage.assignFocus()BOTTOM 読み込み順の最後のオブジェクトにフォーカスを与えることを示します。bottomString 読み込み順の最後のオブジェクトにフォーカスを与えることを示します。 NONE インタラクティブオブジェクト内のフォーカスオブジェクトを変更しないことを示します。noneString インタラクティブオブジェクト内のフォーカスオブジェクトを変更しないことを示します。 TOP 読み込み順の最初のオブジェクトにフォーカスを与えることを示します。topString 読み込み順の最初のオブジェクトにフォーカスを与えることを示します。 StageAlign StageAlign クラスは、Stage.align プロパティに使用する定数値を提供します。Object StageAlign クラスは、Stage.align プロパティに使用する定数値を提供します。 flash.display.Stage.alignBOTTOM_LEFT ステージを左下の隅に揃えるよう指定します。BLString ステージを左下の隅に揃えるよう指定します。 BOTTOM_RIGHT ステージを右下の隅に揃えるよう指定します。BRString ステージを右下の隅に揃えるよう指定します。 BOTTOM ステージを下揃えにするよう指定します。BString ステージを下揃えにするよう指定します。 LEFT ステージを左揃えにするよう指定します。LString ステージを左揃えにするよう指定します。 RIGHT ステージを右揃えにするよう指定します。RString ステージを右揃えにするよう指定します。 TOP_LEFT ステージを左上の隅に揃えるよう指定します。TLString ステージを左上の隅に揃えるよう指定します。 TOP_RIGHT ステージを右上の隅に揃えるよう指定します。TRString ステージを右上の隅に揃えるよう指定します。 TOP ステージを上揃えにするよう指定します。TString ステージを上揃えにするよう指定します。 ColorCorrectionSupport ColorCorrectionSupport クラスは、flash.display.Stage.colorCorrectionSupport プロパティの値を提供します。Object ColorCorrectionSupport クラスは、flash.display.Stage.colorCorrectionSupport プロパティの値を提供します。 flash.display.Stage.colorCorrectionSupportDEFAULT_OFF カラー補正はサポートされていますが、デフォルトでオフになっています。defaultOffString カラー補正はサポートされていますが、デフォルトでオフになっています。 DEFAULT_ON カラー補正はデフォルトでサポートされています。defaultOnString カラー補正はデフォルトでサポートされています。 UNSUPPORTED カラー補正はホスト環境でサポートされていません。unsupportedString カラー補正はホスト環境でサポートされていません。 GraphicsShaderFill シェーダー塗りを定義します。flash.display:IGraphicsFillflash.display:IGraphicsDataObject シェーダー塗りを定義します。

GraphicsShaderFill オブジェクトは、Graphics.drawGraphicsData() メソッドと共に使用します。GraphicsShaderFill オブジェクトの描画は、Graphics.beginShaderFill() メソッドの呼び出しに相当します。

flash.display.Graphics.beginShaderFill()flash.display.Graphics.drawGraphicsData()GraphicsShaderFill 新しい GraphicsShaderFill オブジェクトを作成します。shaderflash.display:Shadernull塗りに使用するシェーダーです。この Shader インスタンスはイメージ入力の指定には必要ありません。ただし、シェーダーでイメージ入力が指定されている場合は、対応する Shader.data プロパティの ShaderInput プロパティに input プロパティを設定して、手動で入力する必要があります。 matrixflash.geom:Matrixnullflash.geom.Matrix クラスのマトリックスオブジェクトです。これを使用してシェーダー上に変形を定義できます。 新しい GraphicsShaderFill オブジェクトを作成します。 flash.geom.Matrixflash.display.Shadermatrix flash.geom.Matrix クラスのマトリックスオブジェクトです。これを使用してシェーダー上に変形を定義できます。flash.geom:Matrix flash.geom.Matrix クラスのマトリックスオブジェクトです。これを使用してシェーダー上に変形を定義できます。例えば、次のマトリックスを使用すると、シェーダーを 45 度(π/4 ラジアン)回転できます。 matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4);

シェーダーで受け取る座標は、matrix パラメーターに対して指定したマトリックスに基づきます。デフォルトの(null)のマトリックスの場合、シェーダーの座標は入力のサンプリングが可能なローカルピクセル座標になります。

flash.geom.Matrix
shader 塗りに使用するシェーダーです。flash.display:Shader 塗りに使用するシェーダーです。この Shader インスタンスはイメージ入力の指定には必要ありません。ただし、シェーダーでイメージ入力が指定されている場合は、対応する Shader.data プロパティの ShaderInput プロパティに input プロパティを設定して、手動で入力する必要があります。

Shader インスタンスを引数として渡すと、シェーダーが内部的にコピーされ、描画塗り操作は元のシェーダーを参照するのではなく、その内部コピーを使用します。パラメーター値、入力、バイトコードの変更などの変更をシェーダーに加えたとしても、塗りつぶしに使用したコピーシェーダーにはその変更は適用されません。

flash.display.Shader
Shape このクラスは、ActionScript 描画アプリケーションプログラムインターフェイス(API)を使用して単純なシェイプを作成するときに使用されます。シェイプに使用される表示オブジェクトです。 flash.display:DisplayObject このクラスは、ActionScript 描画アプリケーションプログラムインターフェイス(API)を使用して単純なシェイプを作成するときに使用されます。 Shape クラスには、Graphics クラスからメソッドにアクセスできる graphics プロパティがあります。

Sprite クラスにも graphics プロパティがあり、これには Shape クラスでは使用できない他の機能があります。例えば、Sprite オブジェクトは表示オブジェクトコンテナであるのに対し、Shape オブジェクトはそうではありません(子表示オブジェクトも持てません)。したがって、表示するグラフィックスが同じであっても、Sprite オブジェクトは、Shape オブジェクトよりも多くのメモリを消費します。ただし、Sprite オブジェクトではユーザー入力イベントがサポートされますが、Shape オブジェクトではサポートされません。

次の例では、ShapeExample クラスを使用して、円、角丸矩形、および四角形を描画します。これを行うには、以下の手順を実行します。
  1. 後で各シェイプのサイズを決定する際に使用する size プロパティを宣言します。
  2. 背景色をオレンジ色、境界線色を濃い灰色、境界線のサイズを 0 ピクセル、角丸の半径を 9 ピクセル、ステージの端と他のオブジェクトの間のスペースを 5 ピクセルに、それぞれ設定するプロパティを宣言します。
  3. 上記の手順で宣言したプロパティを Graphics クラスのビルトインメソッドと共に使用して、円、角丸矩形、および四角形を、座標 x = 0、y = 0 に描画します。
  4. refreshLayout() メソッドを使用し、ステージの一番上に配置された各シェイプを、x = 5、y = 5 から、シェイプ間のスペースを 5 ピクセルにして再描画します。
package { import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.display.Sprite; public class ShapeExample extends Sprite { private var size:uint = 80; private var bgColor:uint = 0xFFCC00; private var borderColor:uint = 0x666666; private var borderSize:uint = 0; private var cornerRadius:uint = 9; private var gutter:uint = 5; public function ShapeExample() { doDrawCircle(); doDrawRoundRect(); doDrawRect(); refreshLayout(); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = gutter; lastChild.y = gutter; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = gutter; lastChild = child; } } private function doDrawCircle():void { var child:Shape = new Shape(); var halfSize:uint = Math.round(size/2); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawCircle(halfSize, halfSize, halfSize); child.graphics.endFill(); addChild(child); } private function doDrawRoundRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRoundRect(0, 0, size, size, cornerRadius); child.graphics.endFill(); addChild(child); } private function doDrawRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); addChild(child); } } }
flash.display.Graphicsflash.display.SpriteShape 新しい Shape オブジェクトを作成します。 新しい Shape オブジェクトを作成します。 graphics ベクターの描画コマンドが発生する、この Shape オブジェクトに属する Graphics オブジェクトを指定します。flash.display:GraphicsShape オブジェクトの Graphics オブジェクトを指定します。 ベクターの描画コマンドが発生する、この Shape オブジェクトに属する Graphics オブジェクトを指定します。
ShaderParameterType このクラスによって、ShaderParameter クラスの type プロパティの有効な値を表す定数が定義されます。Object このクラスによって、ShaderParameter クラスの type プロパティの有効な値を表す定数が定義されます。各定数は、Flash Player で使用可能な Pixel Bender シェーダー言語のパラメーターに対するデータ型のいずれかを表します。 flash.display.ShaderParameter.typeBOOL2 シェーダーパラメーターが、ActionScript の 2 つの Boolean インスタンスの Array に相当する bool2 値に定義されていることを示します。bool2String シェーダーパラメーターが、ActionScript の 2 つの Boolean インスタンスの Array に相当する bool2 値に定義されていることを示します。 BOOL3 シェーダーパラメーターが、ActionScript の 3 つの Boolean インスタンスの Array に相当する bool3 値に定義されていることを示します。bool3String シェーダーパラメーターが、ActionScript の 3 つの Boolean インスタンスの Array に相当する bool3 値に定義されていることを示します。 BOOL4 シェーダーパラメーターが、ActionScript の 4 つの Boolean インスタンスの Array に相当する bool4 値に定義されていることを示します。bool4String シェーダーパラメーターが、ActionScript の 4 つの Boolean インスタンスの Array に相当する bool4 値に定義されていることを示します。 BOOL シェーダーパラメーターが、ActionScript の 1 つの Boolean インスタンスに相当する bool 値に定義されていることを示します。boolString シェーダーパラメーターが、ActionScript の 1 つの Boolean インスタンスに相当する bool 値に定義されていることを示します。

このパラメーターは 1 つの値しか取ることができませんが、ShaderParameter.value プロパティは Array なので、1 つの値が value プロパティに割り当てられた Array の唯一のエレメントでなければなりません。次のようになります。

// assumes the shader has a parameter named "param" // whose data type is bool myShader.data.param.value = [true];
FLOAT2 シェーダーパラメーターが、ActionScript の 2 つの Number インスタンスの Array に相当する float2 値に定義されていることを示します。float2String シェーダーパラメーターが、ActionScript の 2 つの Number インスタンスの Array に相当する float2 値に定義されていることを示します。 flash.display.ShaderParameter.typeFLOAT3 シェーダーパラメーターが、ActionScript の 3 つの Number インスタンスの Array に相当する float3 値に定義されていることを示します。float3String シェーダーパラメーターが、ActionScript の 3 つの Number インスタンスの Array に相当する float3 値に定義されていることを示します。 FLOAT4 シェーダーパラメーターが、ActionScript の 4 つの Number インスタンスの Array に相当する float4 値に定義されていることを示します。float4String シェーダーパラメーターが、ActionScript の 4 つの Number インスタンスの Array に相当する float4 値に定義されていることを示します。 FLOAT シェーダーパラメーターが、ActionScript の 1 つの Number インスタンスに相当する float 値に定義されていることを示します。floatString シェーダーパラメーターが、ActionScript の 1 つの Number インスタンスに相当する float 値に定義されていることを示します。

このパラメーターは 1 つの値しか取ることができませんが、ShaderParameter.value プロパティは Array なので、1 つの値が value プロパティに割り当てられた Array の唯一のエレメントでなければなりません。次のようになります。

// assumes the shader has a parameter named "param" // whose data type is float myShader.data.param.value = [22.5];
flash.display.ShaderParameter.type
INT2 シェーダーパラメーターが、ActionScript の 2 つの int または uint インスタンスの Array に相当する int2 値に定義されていることを示します。int2String シェーダーパラメーターが、ActionScript の 2 つの int または uint インスタンスの Array に相当する int2 値に定義されていることを示します。 INT3 シェーダーパラメーターが、ActionScript の 3 つの int または uint インスタンスの Array に相当する int3 値に定義されていることを示します。int3String シェーダーパラメーターが、ActionScript の 3 つの int または uint インスタンスの Array に相当する int3 値に定義されていることを示します。 INT4 シェーダーパラメーターが、ActionScript の 4 つの int または uint インスタンスの Array に相当する int4 値に定義されていることを示します。int4String シェーダーパラメーターが、ActionScript の 4 つの int または uint インスタンスの Array に相当する int4 値に定義されていることを示します。 INT シェーダーパラメーターが、ActionScript の 1 つの int または uint インスタンスに相当する int 値に定義されていることを示します。intString シェーダーパラメーターが、ActionScript の 1 つの int または uint インスタンスに相当する int 値に定義されていることを示します。

このパラメーターは 1 つの値しか取ることができませんが、ShaderParameter.value プロパティは Array なので、1 つの値が value プロパティに割り当てられた Array の唯一のエレメントでなければなりません。次のようになります。

// assumes the shader has a parameter named "param" // whose data type is int myShader.data.param.value = [275];
MATRIX2X2 シェーダーパラメーターが、2 x 2 マトリックスに相当する float2x2 値に定義されていることを示します。matrix2x2String シェーダーパラメーターが、2 x 2 マトリックスに相当する float2x2 値に定義されていることを示します。このマトリックスは、ActionScript では 4 つの Number インスタンスの Array で表されます。 MATRIX3X3 シェーダーパラメーターが、3 x 3 マトリックスに相当する float3x3 値に定義されていることを示します。matrix3x3String シェーダーパラメーターが、3 x 3 マトリックスに相当する float3x3 値に定義されていることを示します。このマトリックスは、ActionScript では 9 つの Number インスタンスの Array で表されます。 MATRIX4X4 シェーダーパラメーターが、4 x 4 マトリックスに相当する float4x4 値に定義されていることを示します。matrix4x4String シェーダーパラメーターが、4 x 4 マトリックスに相当する float4x4 値に定義されていることを示します。このマトリックスは、ActionScript では 16 の Number インスタンスの Array で表されます。
GraphicsPathWinding GraphicsPathWinding クラスは、flash.display.GraphicsPath.winding プロパティおよび flash.display.Graphics.drawPath() メソッドの値を提供します。これらの値により、パスの描画方向が決まります。Object GraphicsPathWinding クラスは、flash.display.GraphicsPath.winding プロパティおよび flash.display.Graphics.drawPath() メソッドの値を提供します。これらの値により、パスの描画方向が決まります。時計回りのパスは正の湾曲方向であり、反時計回りのパスは負の湾曲方向です。

パスが交差または重なり合う場合、湾曲の方向によって、交差または重なりで作成された領域の塗りの規則が決まります。

flash.display.GraphicsPath.windingflash.display.Graphics.drawPath()EVEN_ODD 奇数 / 偶数の湾曲タイプを設定します。evenOddString 奇数 / 偶数の湾曲タイプを設定します。奇数 / 偶数の湾曲タイプは、元のすべての描画 API で使用される規則であり、flash.display.Graphics.drawPath() メソッドのデフォルトのタイプです。重なり合うパスでは、開いた塗りと閉じた塗りが交互に発生します。同じ塗りの交差を使用して 2 つの四角形を描画した場合、交差領域は塗りつぶされません。隣接する領域は同じではありません(両方が塗りつぶされることも、両方が塗りつぶされないこともありません)。 NON_ZERO ゼロ以外の湾曲タイプを設定します。nonZeroString ゼロ以外の湾曲タイプを設定します。ゼロ以外の湾曲タイプは、反対方向の湾曲のパスが交差するとき、交差領域が塗りつぶされないことを指定します(奇数 / 偶数の湾曲タイプの場合と同じ)。同じ方向の湾曲のパスの場合は、交差領域が塗りつぶされます。
ActionScriptVersion ActionScriptVersion クラスは、読み込まれる SWF ファイルの言語バージョンを示す定数値の列挙です。Object ActionScriptVersion クラスは、読み込まれる SWF ファイルの言語バージョンを示す定数値の列挙です。言語バージョン定数は flash.display.LoaderInfo オブジェクトの actionScriptVersion プロパティの検査に使用されます。 flash.display.LoaderInfo.actionScriptVersionACTIONSCRIPT2 ActionScript 言語バージョン 2.0 以前。2uint ActionScript 言語バージョン 2.0 以前。 ACTIONSCRIPT3 ActionScript 言語バージョン 3.0。3uint ActionScript 言語バージョン 3.0。 GraphicsPath 描画コマンドおよびそれらのコマンドの座標パラメーターのコレクションです。flash.display:IGraphicsPathflash.display:IGraphicsDataObject 描画コマンドおよびそれらのコマンドの座標パラメーターのコレクションです。

GraphicsPath オブジェクトは、Graphics.drawGraphicsData() メソッドと共に使用します。GraphicsPath オブジェクトの描画は、Graphics.drawPath() メソッドの呼び出しに相当します。

GraphicsPath クラスには独自のメソッドのセット(curveTo()lineTo()moveTo()wideLineTo() および wideMoveTo())も含まれています。これらのメソッドは、Graphics クラスで GraphicsPath.commands および GraphicsPath.data ベクター配列を調整するためのメソッドに似ています。

flash.display.Graphics.drawGraphicsData()flash.display.Graphics.drawPath()GraphicsPath 新しい GraphicsPath オブジェクトを作成します。commandsnullGraphicsPathCommand クラスで定義されているコマンドを表す整数の Vector です。 datanullNumber の Vector で、数値の各ペアはポイント(x と y のペア)として扱われます。 windingStringevenOddGraphicsPathWinding クラスで定義されている値を使用して、湾曲規則を指定します。 新しい GraphicsPath オブジェクトを作成します。 flash.display.GraphicsPathCommandflash.display.GraphicsPathWindingcurveTo 新しい「curveTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。controlXNumber親表示オブジェクトの基準点からの相対的なコントロールポイントの水平座標を指定する数値。 controlYNumber親表示オブジェクトの基準点からの相対的なコントロールポイントの垂直座標を指定する数値。 anchorXNumber親表示オブジェクトの基準点からの相対的な次のアンカーポイントの水平座標を指定する数値。 anchorYNumber親表示オブジェクトの基準点からの相対的な次のアンカーポイントの垂直座標を指定する数値。 新しい「curveTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。 flash.display.GraphicsPathCommand.CURVE_TOflash.display.Graphics.curveTo()lineTo 新しい「lineTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。xNumber線のターゲットポイントの x 座標。 yNumber線のターゲットポイントの y 座標。 新しい「lineTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。 flash.display.GraphicsPathCommand.LINE_TOflash.display.Graphics.lineTo()moveTo 新しい「moveTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。xNumberターゲットポイントの x 座標。 yNumberターゲットポイントの y 座標。 新しい「moveTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。 flash.display.GraphicsPathCommand.MOVE_TOflash.display.Graphics.moveTo()wideLineTo 新しい「wideLineTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。xNumber線のターゲットポイントの x 座標。 yNumber線のターゲットポイントの y 座標。 新しい「wideLineTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。 flash.display.GraphicsPathCommand.WIDE_LINE_TOwideMoveTo 新しい「wideMoveTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。xNumberターゲットポイントの x 座標。 yNumberターゲットポイントの y 座標。 新しい「wideMoveTo」コマンドを commands ベクターに、新しい座標を data ベクターに追加します。 flash.display.GraphicsPathCommand.WIDE_MOVE_TOcommands パスを表す整数としての描画コマンドの Vector です。 パスを表す整数としての描画コマンドの Vector です。コマンドはそれぞれ GraphicsPathCommand クラスで定義されたいずれかの値となります。 flash.display.GraphicsPathCommanddata 描画コマンドと共に使用するパラメーターを含む Number の Vector です。 描画コマンドと共に使用するパラメーターを含む Number の Vector です。 winding GraphicsPathWinding クラスで定義されている値を使用して、湾曲規則を指定します。String GraphicsPathWinding クラスで定義されている値を使用して、湾曲規則を指定します。 flash.display.GraphicsPathWinding
MorphShape MorphShape クラスは、表示リスト上の MorphShape オブジェクトを表します。flash.display:DisplayObject MorphShape クラスは、表示リスト上の MorphShape オブジェクトを表します。ActionScript で直接 MorphShape オブジェクトを作成することはできません。このオブジェクトは、Flash オーサリングツールでシェイプトゥイーンを作成したときに作成されます。 PixelSnapping PixelSnapping クラスは、Bitmap オブジェクトの pixelSnapping プロパティを使用して、ピクセル吸着オプションを設定するための定数値の列挙です。Object PixelSnapping クラスは、Bitmap オブジェクトの pixelSnapping プロパティを使用して、ピクセル吸着オプションを設定するための定数値の列挙です。 flash.display.Bitmap.pixelSnappingALWAYS Bitmap オブジェクトの pixelSnapping プロパティで使用される定数値。変形とは無関係に、ビットマップイメージが常に最も近いピクセルに吸着することを指定します。alwaysString Bitmap オブジェクトの pixelSnapping プロパティで使用される定数値。変形とは無関係に、ビットマップイメージが常に最も近いピクセルに吸着することを指定します。 AUTO Bitmap オブジェクトの pixelSnapping プロパティで使用される定数値。ビットマップイメージが回転または傾斜なしで、99.9% から 100.1% の縮尺率で描画される場合に、ビットマップイメージが最も近いピクセルに吸着することを指定します。autoString Bitmap オブジェクトの pixelSnapping プロパティで使用される定数値です。ビットマップイメージが回転または傾斜なしで、99.9% ~ 100.1% の縮尺率で描画される場合に、ビットマップイメージが最も近いピクセルに吸着することを指定します。これらの条件が満たされると、イメージは、最も近いピクセルに吸着して縮尺 100% で描画されます。この設定によって、内部的に、ベクターレンダラーを使ってイメージが可能な限り高速に描画されます。 NEVER Bitmap オブジェクトの pixelSnapping プロパティで使用され、ピクセルへの吸着が発生しないことを指定する定数値です。neverString Bitmap オブジェクトの pixelSnapping プロパティで使用され、ピクセルへの吸着が発生しないことを指定する定数値です。 GraphicsPathCommand パス描画コマンドの指定に使用する値を定義します。Object パス描画コマンドの指定に使用する値を定義します。

このクラスの値は、Graphics.drawPath() メソッドで使用されるか、または GraphicsPath オブジェクトの commands ベクターに格納されます。

flash.display.Graphics.drawPath()flash.display.GraphicsPath.commandsCURVE_TO 現在の描画位置からデータベクターで指定されている(x,y)座標まで、コントロールポイントを使用して、曲線を描画する描画コマンドを指定します。3int 現在の描画位置からデータベクターで指定されている(x,y)座標まで、コントロールポイントを使用して、曲線を描画する描画コマンドを指定します。このコマンドは、Graphics.lineTo() メソッドと同じ効果をもたらし、データベクターコントロールおよびアンカー内の 2 つのポイント(cx, cy, ax, ay)を使用します。 flash.display.Graphics.curveTo()LINE_TO 現在の描画位置からデータベクターで指定されている(x,y)座標までの線を描画する描画コマンドを指定します。2int 現在の描画位置からデータベクターで指定されている(x,y)座標までの線を描画する描画コマンドを指定します。このコマンドは、Graphics.lineTo() メソッドと同じ効果をもたらし、データベクター内の 1 つのポイント(x,y)を使用します。 flash.display.Graphics.lineTo()MOVE_TO 現在の描画位置を、データベクターで指定されている(x,y)座標に移動する描画コマンドを指定します。1int 現在の描画位置を、データベクターで指定されている(x,y)座標に移動する描画コマンドを指定します。このコマンドは、Graphics.moveTo() メソッドと同じ効果をもたらし、データベクター内の 1 つのポイント(x,y)を使用します。 flash.display.Graphics.moveTo()NO_OP デフォルトの「do nothing」コマンドを表します。0int デフォルトの「do nothing」コマンドを表します。 WIDE_LINE_TO 「line to」描画コマンドを指定しますが、1 つではなく 2 つの座標セット(4 つの値)を使用します。5int 「line to」描画コマンドを指定しますが、1 つではなく 2 つの座標セット(4 つの値)を使用します。このコマンドを使用すると、各コマンドで使用されるデータ値の数を変更することなく、「line to」コマンドと「curve to」コマンドを切り替えられるようになります。このコマンドは、データベクター内の 2 つのセット、つまり、1 つのダミー位置と 1 つの(x,y)位置を使用します。

WIDE_LINE_TO コマンドおよび WIDE_MOVE_TO コマンドの各バリアントは、CURVE_TO コマンドと同じ数のパラメーター使用します。

LINE_TOflash.display.Graphics.lineTo()
WIDE_MOVE_TO 「move to」描画コマンドを指定しますが、1 つではなく 2 つの座標セット(4 つの値)を使用します。4int 「move to」描画コマンドを指定しますが、1 つではなく 2 つの座標セット(4 つの値)を使用します。このコマンドを使用すると、各コマンドで使用されるデータ値の数を変更することなく、「move to」コマンドと「curve to」コマンドを切り替えられるようになります。このコマンドは、データベクター内の 2 つのセット、つまり、1 つのダミー位置と 1 つの(x,y)位置を使用します。

WIDE_LINE_TO コマンドおよび WIDE_MOVE_TO コマンドの各バリアントは、CURVE_TO コマンドと同じ数のパラメーター使用します。

MOVE_TOflash.display.Graphics.moveTo()