パッケージ | flash.display |
クラス | public class DisplayObject |
継承 | DisplayObject EventDispatcher Object |
実装 | IBitmapDrawable |
サブクラス | AVM1Movie, Bitmap, InteractiveObject, MorphShape, Shape, StaticText, Video |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 クラスのブロードキャストイベントである activate
と deactivate
も継承します。
ActionScript 1.0 および 2.0 の MovieClip、TextField、および Button クラスで使用されていたいくつかのプロパティ(例えば _alpha
、_height
、_name
、_width
、_x
、_y
など)と同等のプロパティが、ActionScript 3.0 DisplayObject クラスに存在します。これらの名前は変更され、アンダースコア(_)文字では始まりません。
詳しくは、『ActionScript 3.0 開発ガイド』の「表示のプログラミング」の章を参照してください。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties
この表示オブジェクトの現在のアクセシビリティオプションです。 | DisplayObject | ||
alpha : Number
指定されたオブジェクトのアルファ透明度値を示します。 | DisplayObject | ||
blendMode : String
使用するブレンドモードを指定する BlendMode クラスの値です。 | DisplayObject | ||
blendShader : Shader [書き込み専用]
前景と背景のブレンドに使用するシェーダーを設定します。 | DisplayObject | ||
cacheAsBitmap : Boolean
true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash ランタイムにキャッシュされます。 | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
null 以外の場合、この Matrix オブジェクトは、cacheAsBitmap を true に設定したときの表示オブジェクトのレンダリング方法を定義します。 | DisplayObject | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
filters : Array
表示オブジェクトに現在関連付けられている各フィルターオブジェクトが格納されているインデックス付きの配列です。 | DisplayObject | ||
height : Number
表示オブジェクトの高さを示します(ピクセル単位)。 | DisplayObject | ||
loaderInfo : LoaderInfo [読み取り専用]
この表示オブジェクトが属するファイルの読み込み情報を含む LoaderInfo オブジェクトを返します。 | DisplayObject | ||
mask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。 | DisplayObject | ||
metaData : Object
メタデータが PlaceObject4 タグによってこの DisplayObject のインスタンスと一緒に SWF ファイル内に保存されている場合に、DisplayObject インスタンスのメタデータオブジェクトを取得します。 | DisplayObject | ||
mouseX : Number [読み取り専用]
マウスまたはユーザー入力デバイスの x 軸の位置をピクセルで示します。 | DisplayObject | ||
mouseY : Number [読み取り専用]
マウスまたはユーザー入力デバイスの y 軸の位置をピクセルで示します。 | DisplayObject | ||
name : String
DisplayObject のインスタンス名を示します。 | DisplayObject | ||
opaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。 | DisplayObject | ||
parent : DisplayObjectContainer [読み取り専用]
この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。 | DisplayObject | ||
root : DisplayObject [読み取り専用]
読み込まれた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。 | DisplayObject | ||
rotation : Number
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。 | DisplayObject | ||
rotationX : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの x 軸の回転角を度単位で示します。 | DisplayObject | ||
rotationY : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの y 軸の回転角を度単位で示します。 | DisplayObject | ||
rotationZ : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの z 軸の回転角を度単位で示します。 | DisplayObject | ||
scale9Grid : Rectangle
現在有効な拡大 / 縮小グリッドです。 | DisplayObject | ||
scaleX : Number
基準点から適用されるオブジェクトの水平スケール(パーセンテージ)を示します。 | DisplayObject | ||
scaleY : Number
オブジェクトの基準点から適用されるオブジェクトの垂直スケール(パーセンテージ)を示します。 | DisplayObject | ||
scaleZ : Number
オブジェクトの基準点から適用されるオブジェクトの奥行きスケール(パーセンテージ)を示します。 | DisplayObject | ||
scrollRect : Rectangle
表示オブジェクトのスクロール矩形の境界です。 | DisplayObject | ||
stage : Stage [読み取り専用]
表示オブジェクトのステージです。 | DisplayObject | ||
transform : flash.geom:Transform
表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。 | DisplayObject | ||
visible : Boolean
表示オブジェクトが可視かどうかを示します。 | DisplayObject | ||
width : Number
表示オブジェクトの幅を示します(ピクセル単位)。 | DisplayObject | ||
x : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。 | DisplayObject | ||
y : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。 | DisplayObject | ||
z : Number
3D 親コンテナを基準にした、DisplayObject インスタンスの z 軸に沿った z 座標位置を示します。 | DisplayObject |
メソッド | 定義元 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。 | DisplayObject | ||
シェイプ上の線を除き、targetCoordinateSpace パラメーターによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。 | DisplayObject | ||
point オブジェクトをステージ(グローバル)座標から表示オブジェクトの(ローカル)座標に変換します。 | DisplayObject | ||
ステージ(グローバル)座標の 2 次元のポイントを 3 次元の表示オブジェクトの(ローカル)座標に変換します。 | DisplayObject | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
表示オブジェクトの境界ボックスを評価して、obj 表示オブジェクトの境界ボックスと重複または交差するかどうかを調べます。 | DisplayObject | ||
表示オブジェクトを評価して、x および y パラメーターで指定されたポイントと重複または交差するかどうかを調べます。 | DisplayObject | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
3 次元の表示オブジェクトの(ローカル)座標の 3 次元のポイントをステージ(グローバル)座標の 2 次元のポイントに変換します。 | DisplayObject | ||
point オブジェクトを表示オブジェクトの(ローカル)座標からステージ(グローバル)座標に変換します。 | DisplayObject | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
イベント | 概要 | 定義元 | ||
---|---|---|---|---|
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | |||
表示オブジェクトが表示リストに追加されたときに送出されます。 | DisplayObject | |||
表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの追加により、ステージ上の表示リストに追加されたときに送出されます。 | DisplayObject | |||
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | |||
[ブロードキャストイベント] 再生ヘッドが新しいフレームに入るときに送出されます。 | DisplayObject | |||
[ブロードキャストイベント] 再生ヘッドが現在のフレームを終了するときに送出されます。 | DisplayObject | |||
[ブロードキャストイベント] フレーム表示オブジェクトのコンストラクターが実行した後で、かつフレームスクリプトが実行される前に送出されます。 | DisplayObject | |||
表示オブジェクトが表示リストから削除されようとしているときに送出されます。 | DisplayObject | |||
表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの削除により、表示リストから削除されようとしているときに送出されます。 | DisplayObject | |||
[ブロードキャストイベント] 表示リストが更新およびレンダリングされようとしているときに送出されます。 | DisplayObject |
accessibilityProperties | プロパティ |
accessibilityProperties:AccessibilityProperties
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
この表示オブジェクトの現在のアクセシビリティオプションです。accessibilityProperties
プロパティ、または accessibilityProperties
内のいずれかのフィールドを変更した場合、変更内容を有効にするには、Accessibility.updateProperties()
メソッドを呼び出す必要があります。
注意:Flash オーサリング環境で作成されたオブジェクトの場合、そのオブジェクトのアクセシビリティパネルに入力した情報が accessibilityProperties
の値に再設定されます。
実装
public function get accessibilityProperties():AccessibilityProperties
public function set accessibilityProperties(value:AccessibilityProperties):void
関連する API エレメント
例 ( この例の使用方法 )
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
alpha | プロパティ |
alpha:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定されたオブジェクトのアルファ透明度値を示します。有効な値は 0(完全な透明)~ 1(完全な不透明)です。デフォルト値は 1 です。alpha
が 0 に設定されている表示オブジェクトは、表示されない場合でも、アクティブです。
実装
public function get alpha():Number
public function set alpha(value:Number):void
例 ( この例の使用方法 )
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
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
使用するブレンドモードを指定する BlendMode クラスの値です。内部的には、2 つの方法でビットマップを描画できます。ブレンドモードを有効にした場合、または外部クリッピングマスクを使用する場合には、ビットマップで塗りつぶされた四角形シェイプをベクターレンダーに追加することによってビットマップが描画されます。このプロパティを無効な値に設定しようとすると、Flash ランタイムは値を BlendMode.NORMAL
に設定します。
blendMode
プロパティは、表示オブジェクトの各ピクセルに影響します。 各ピクセルは、3 つの要素カラー(赤、緑、青)で構成されており、各要素カラーは 0x00 ~ 0xFF の値を持ちます。Flash Player または Adobe AIR は、ムービークリップ内の 1 つのピクセルの各要素カラーを、背景のピクセルの対応するカラーと比較します。 例えば、blendMode
が BlendMode.LIGHTEN
に設定されている場合、Flash Player または Adobe AIR は表示オブジェクトの赤の値と背景の赤の値とを比較して、明るい方の値を表示色の赤の成分として使用します。
次の表では、blendMode
の設定について説明します。BlendMode クラスは、使用可能なストリング値を定義します。表の中の図は、別の表示オブジェクト(1)に重なった円形の表示オブジェクト(2)に適用される blendMode
値を示しています。
BlendMode 定数 | 図 | 説明 |
---|---|---|
BlendMode.NORMAL | 表示オブジェクトは、背景の前に表示されます。表示オブジェクトのピクセル値は、背景のピクセル値より優先されます。表示オブジェクトが透明な部分では、背景が表示されます。 | |
BlendMode.LAYER | 表示オブジェクトに関する透明度グループを強制的に作成します。つまり、表示オブジェクトが処理される前に、一時バッファー内で表示オブジェクトが事前に構成されます。ビットマップキャッシュを使って表示オブジェクトが事前キャッシュされる場合、または表示オブジェクトが、blendMode が BlendMode.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 | 表示オブジェクトの各ピクセルのアルファ値を背景に適用します。これを行うには、親表示オブジェクトの blendMode が BlendMode.LAYER に設定されている必要があります。例えば、図の親表示オブジェクト(白い背景)は、blendMode = BlendMode.LAYER に設定されています。GPU レンダリングではサポートされません。 | |
BlendMode.ERASE | 表示オブジェクトのアルファ値に基づいて背景を消去します。これを行うには、親表示オブジェクトの blendMode が BlendMode.LAYER に設定されている必要があります。例えば、図の親表示オブジェクト(白い背景)は、blendMode = BlendMode.LAYER に設定されています。GPU レンダリングではサポートされません。 | |
BlendMode.OVERLAY | 背景の暗さに基づいて、各ピクセルの色を調整します。背景が 50% グレーよりも明るい場合、表示オブジェクトと背景の色が網がけされ、より明るくなります。背景が 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。GPU レンダリングではサポートされません。 | |
BlendMode.HARDLIGHT | 表示オブジェクトの暗さに基づいて、各ピクセルの色を調整します。表示オブジェクトが 50% グレーよりも明るい場合、表示オブジェクトと背景の色が網がけされ、より明るくなります。表示オブジェクトが 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。GPU レンダリングではサポートされません。 | |
BlendMode.SHADER | N/A | カスタムシェーダールーチンを使用して、カラーを調整します。使用するシェーダーは、blendShader プロパティに割り当てられた Shader インスタンスとして指定されます。Shader インスタンスに表示オブジェクトの blendShader プロパティを設定すると、表示オブジェクトの blendMode プロパティが BlendMode.SHADER に自動的に設定されます。blendShader プロパティを先に設定しないで blendMode プロパティを BlendMode.SHADER に設定すると、blendMode プロパティは BlendMode.NORMAL に設定されます。GPU レンダリングではサポートされません。 |
実装
public function get blendMode():String
public function set blendMode(value:String):void
関連する API エレメント
例 ( この例の使用方法 )
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; }
blendShader | プロパティ |
blendShader:Shader
[書き込み専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
前景と背景のブレンドに使用するシェーダーを設定します。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 インスタンスをこのプロパティに割り当てると、シェーダーが内部的にコピーされます。ブレンド操作は、元のシェーダーを参照するのではなく、その内部コピーを使用します。パラメーター値、入力、バイトコードの変更などの変更をシェーダーに加えたとしても、ブレンドモードで使用したコピーシェーダーにはその変更は適用されません。
実装
public function set blendShader(value:Shader):void
例外
ArgumentError — シェーダー出力タイプがこの操作に対応しない場合(シェーダーは pixel4 出力を指定する必要があります)。
| |
ArgumentError — シェーダーが指定したイメージ入力が 2 より少ないか、または最初の 2 つの入力が image4 入力でない場合。
| |
ArgumentError — シェーダーが指定したイメージ入力が存在しない場合。
| |
ArgumentError — ByteArray または Vector の場合。<Number> インスタンスが入力として使用され、ShaderInput の width および height プロパティが指定されていない、または指定された値が入力オブジェクトのデータ量と一致しない場合。詳しくは、ShaderInput.input プロパティを参照してください。
|
関連する API エレメント
cacheAsBitmap | プロパティ |
cacheAsBitmap:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 位置の変更時)にパフォーマンスが向上する可能性があります。
実装
public function get cacheAsBitmap():Boolean
public function set cacheAsBitmap(value:Boolean):void
関連する API エレメント
例 ( この例の使用方法 )
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
cacheAsBitmapMatrix | プロパティ |
cacheAsBitmapMatrix:Matrix
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.0 |
null 以外の場合、この Matrix オブジェクトは cacheAsBitmap
を true
に設定したときの表示オブジェクトのレンダリング方法を定義します。アプリケーションでは、このマトリックスを、ビットマップバージョンの表示オブジェクトをレンダリングするときに適用された変換マトリックスとして使用します。
AIR プロファイルのサポート:この機能はモバイルデバイスでサポートされますが、デスクトップオペレーティングシステムではサポートされません。また、AIR for TV デバイスでのサポートについては制限があります。具体的には、AIR for TV デバイスでは変形操作の種類として拡大・縮小および移動がサポートされますが、回転および傾斜はサポートされません。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。
cacheAsBitmapMatrix
セットを使用して、アプリケーションは移動、回転、拡大や縮小などの様々な 2D 変形にわたって、キャッシュされたビットマップイメージを保持します。アプリケーションでハードウェアアクセラレーションが使用されている場合、オブジェクトはテクスチャとしてビデオメモリに格納されます。これにより、GPU が、サポートされている変形をオブジェクトに適用できます。GPU では、これらの変換を CPU よりも高速に実行できます。
ハードウェアアクセラレーションを使用するには、Flash Professional CS5 の iPhone 設定ダイアログボックスの「一般」タブで「レンダリング」を「GPU」に設定します。または、アプリケーション記述ファイルで renderMode
プロパティを gpu
に設定します。AIR for TV デバイスでは、ハードウェアアクセラレーションが使用可能な場合、これが自動的に使用されます。
例えば、次のコードは表示オブジェクトの未変換のビットマップ表現を 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 オブジェクトでは無視されます。
実装
public function get cacheAsBitmapMatrix():Matrix
public function set cacheAsBitmapMatrix(value:Matrix):void
関連する API エレメント
例 ( この例の使用方法 )
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; } }
filters | プロパティ |
filters:Array
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
表示オブジェクトに現在関連付けられている各フィルターオブジェクトが格納されているインデックス付きの配列です。flash.filters パッケージには、使用可能な特定のフィルターを定義する複数のクラスが含まれています。
ActionScript コードを使用することにより、設計時または実行時に Flash Professional でフィルターを適用できます。ActionScript を使ってフィルターを適用するには、filters
配列全体の一時コピーを作成してその一時配列を変更した後、一時配列の値を filters
配列に割り当てて戻す必要があります。新しいフィルターオブジェクトを filters
配列に直接追加することはできません。
ActionScript を使ってフィルターを追加するには、次の手順を実行する必要があります(ターゲット表示オブジェクトの名前を myDisplayObject
とします)。
- 適切なフィルタークラスのコンストラクターメソッドを使用して、新しいフィルターオブジェクトを作成します。
myDisplayObject.filters
配列の値を、myFilters
などの名前の一時配列に代入します。- 新しいフィルターオブジェクトを一時配列
myFilters
に追加します。 - 一時配列の値を
myDisplayObject.filters
配列に代入します。
filters
配列が未定義の場合、一時配列を使用する必要はありません。その代わりに、作成される 1 つまたは複数のフィルターオブジェクトを格納する配列リテラルを直接割り当てることができます。最初の例では、定義済みおよび未定義の filters
配列を処理するコードを使用して、ドロップシャドウフィルターを追加します。
既存のフィルターオブジェクトを変更するには、次のように、filters
配列のコピーを変更する必要があります。
filters
配列の値を、myFilters
などの名前の一時配列に代入します。- 一時配列
myFilters
を使用してプロパティを変更します。例えば、配列内の最初のフィルターの quality プロパティを設定するには、次のようなコードを使用できます。myFilters[0].quality = 1;
- 一時配列の値を
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);
実装
public function get filters():Array
public function set filters(value:Array):void
例外
ArgumentError — filters に ShaderFilter が含まれ、シェーダー出力タイプがこの操作に対応しない場合(シェーダーは pixel4 出力を指定する必要があります)。
| |
ArgumentError — filters に ShaderFilter が含まれ、シェーダーがイメージ出力を指定していないか、最初の入力が image4 入力でない場合。
| |
ArgumentError — filters に ShaderFilter が含まれ、シェーダーが指定したイメージ入力が存在しない場合。
| |
ArgumentError — filters に ShaderFilter、ByteArray、または Vector が含まれる場合。<Number> インスタンスがシェーダー入力として使用され、ShaderInput オブジェクトの width および height プロパティが指定されていない、または指定された値が入力データのデータ量と一致しない場合。詳しくは、ShaderInput.input プロパティを参照してください。
|
関連する API エレメント
height | プロパティ |
height:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトの高さを示します(ピクセル単位)。この高さは、表示オブジェクトのコンテンツの境界に基づいて計算されます。次のコードに示すように、この 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 になります。
実装
public function get height():Number
public function set height(value:Number):void
例 ( この例の使用方法 )
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:LoaderInfo
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
この表示オブジェクトが属するファイルの読み込み情報を含む LoaderInfo オブジェクトを返します。loaderInfo
プロパティは、SWF ファイルのルート表示オブジェクト用、または(ActionScript を使用して描画されるビットマップではなく)ロードされるビットマップ用として定義されています。loaderInfo
オブジェクト(myDisplayObject
という名前の表示オブジェクトを含んでいる SWF ファイルに関連)を見つけるには、myDisplayObject.root.loaderInfo
を使用します。
this.root.loaderInfo.addEventListener(Event.COMPLETE, func)
を呼び出すことにより、大きな SWF ファイルのダウンロードを監視できます。
実装
public function get loaderInfo():LoaderInfo
関連する API エレメント
例 ( この例の使用方法 )
this
が表示オブジェクトを参照するものと想定しています。このコードでは、表示オブジェクトのルート SWF ファイルの URL を出力します。
trace (this.loaderInfo.url);
mask | プロパティ |
mask:DisplayObject
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
呼び出し元の表示オブジェクトは、指定された mask
オブジェクトによってマスクされます。ステージの拡大および縮小時にマスクが確実に機能するためには、表示リストのアクティブな部分に mask
表示オブジェクトが含まれている必要があります。mask
オブジェクト自体は描画されません。マスクを除去するには mask
を null
に設定します。
マスクオブジェクトを拡大および縮小するためには、そのオブジェクトが表示リストに含まれている必要があります。(startDrag()
メソッドを呼び出すことにより)マスク Sprite オブジェクトをドラッグするためには、そのオブジェクトが表示リストに含まれなければなりません。マスクスプライトに対して startDrag()
メソッドを呼び出すには(この呼び出しは、スプライトによって送出される mouseDown
イベントに基づきます)、スプライトの buttonMode
プロパティを true
に設定します。
cacheAsBitmap
プロパティに true
を設定し、cacheAsBitmapMatrix
プロパティに Matrix オブジェクトを設定して表示オブジェクトがキャッシュされる場合は、マスクおよびその適用対象である表示オブジェクトの両方が、同じキャッシュ対象ビットマップの一部である必要があります。つまり、表示オブジェクトがキャッシュされる場合は、マスクはその表示オブジェクトの子である必要があります。表示リスト内でその表示オブジェクトの祖先にあたるオブジェクトがキャッシュされる場合、マスクはその祖先の子、またはその祖先の子孫である必要があります。マスク適用対象オブジェクトの祖先のうち複数がキャッシュされる場合は、マスクは、表示リスト内でそのマスク適用対象オブジェクトに最も近いキャッシュ対象コンテナの子孫である必要があります。
注意:1 つの mask
オブジェクトを使用して複数の呼び出し元表示オブジェクトをマスクすることはできません。mask
が 2 番目の表示オブジェクトに割り当てられると、そのオブジェクトは最初の表示オブジェクトのマスクとして削除され、最初の表示オブジェクトの mask
プロパティは null
になります。
実装
public function get mask():DisplayObject
public function set mask(value:DisplayObject):void
例 ( この例の使用方法 )
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(); }
metaData | プロパティ |
mouseX | プロパティ |
mouseX:Number
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
マウスまたはユーザー入力デバイスの x 軸の位置をピクセルで示します。
注意:DisplayObject が回転している場合、返される x 座標は回転前のオブジェクトの座標を反映します。
実装
public function get mouseX():Number
例 ( この例の使用方法 )
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 | プロパティ |
mouseY:Number
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
マウスまたはユーザー入力デバイスの y 軸の位置をピクセルで示します。
注意:DisplayObject が回転している場合、返される y 座標は回転前のオブジェクトの座標を反映します。
実装
public function get mouseY():Number
例 ( この例の使用方法 )
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 | プロパティ |
name:String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
DisplayObject のインスタンス名を示します。親表示オブジェクトコンテナの子リスト内でオブジェクトを識別するには、表示オブジェクトコンテナの getChildByName()
メソッドを呼び出します。
実装
public function get name():String
public function set name(value:String):void
例外
IllegalOperationError — Flash オーサリングツールで、タイムライン上に配置されたオブジェクトに対して、このプロパティを設定しようとした場合
|
例 ( この例の使用方法 )
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 | プロパティ |
opaqueBackground:Object
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。透明のビットマップにはアルファチャンネルデータが含まれ、透明に描画されます。不透明のビットマップには、アルファチャンネルがありません(したがって透明のビットマップより速くレンダリングされます)。ビットマップが不透明の場合、使用する独自の背景色を指定する必要があります。
数値が設定された場合、これは数値によって指定される RGB 背景色を持つ不透明な(透明でない)サーフェスになります。null
(デフォルト値)に設定された場合、表示オブジェクトの背景は透明になります。
opaqueBackground
プロパティの主な用途は、レンダリング最適化のために cacheAsBitmap
プロパティと共に使用することです。cacheAsBitmap
プロパティが true に設定されている表示オブジェクトでは、opaqueBackground
を設定すると、レンダリングのパフォーマンスが向上する可能性があります。
不透明な背景領域は照合されません(hitTestPoint()
メソッドを、shapeFlag
パラメーターを true
に設定して呼び出す場合)。
不透明な背景領域は、マウスイベントに反応しません。
実装
public function get opaqueBackground():Object
public function set opaqueBackground(value:Object):void
関連する API エレメント
例 ( この例の使用方法 )
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);
parent | プロパティ |
parent:DisplayObjectContainer
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。表示リスト階層内の現在の表示オブジェクトの上位にある表示オブジェクトへの相対パスを指定するには、parent
プロパティを使用します。
parent
を使用して表示リストの複数のレベルを上に移動するには、次のようにします。
this.parent.parent.alpha = 20;
実装
public function get parent():DisplayObjectContainer
例外
SecurityError — 親表示オブジェクトは、アクセス権限が与えられていないセキュリティ Sandbox に属しています。親ムービーで Security.allowDomain() メソッドを呼び出すことにより、このような状況を避けることができます。
|
例 ( この例の使用方法 )
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 | プロパティ |
root:DisplayObject
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
読み込まれた 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
プロパティが設定されている表示オブジェクトの子として追加されるまで続きます。
実装
public function get root():DisplayObject
例 ( この例の使用方法 )
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] }
rotation | プロパティ |
rotation:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 を加算または減算して、範囲内に収まる値になるように調整されます。例えば、my_video.rotation = 450
というステートメントは my_video.rotation = 90
と同義です。
実装
public function get rotation():Number
public function set rotation(value:Number):void
例 ( この例の使用方法 )
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; }
rotationX | プロパティ |
rotationX:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの x 軸の回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 を加算または減算して、範囲内に収まる値になるように調整されます。
実装
public function get rotationX():Number
public function set rotationX(value:Number):void
例 ( この例の使用方法 )
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; } } }
//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 | プロパティ |
rotationY:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの y 軸の回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 を加算または減算して、範囲内に収まる値になるように調整されます。
実装
public function get rotationY():Number
public function set rotationY(value:Number):void
例 ( この例の使用方法 )
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 | プロパティ |
rotationZ:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの z 軸の回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 を加算または減算して、範囲内に収まる値になるように調整されます。
実装
public function get rotationZ():Number
public function set rotationZ(value:Number):void
scale9Grid | プロパティ |
scale9Grid:Rectangle
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
現在有効な拡大 / 縮小グリッドです。null
に設定されている場合、拡大または縮小変換が適用されると表示オブジェクト全体は通常どおりに拡大または縮小されます。
scale9Grid
プロパティを定義すると、グリッドの中央領域を定義する scale9Grid
矩形に基づいて、9 つの領域からなるグリッドに表示オブジェクトが分割されます。グリッドの他の 8 領域は、次のような領域です。
- 矩形の外側の左上端
- 矩形の上側の領域
- 矩形の外側の右上端
- 矩形の左側の領域
- 矩形の右側の領域
- 矩形の外側の左下端
- 矩形の下側にある領域
- 矩形の外側の右下端
矩形で定義される、中心以外の 8 つの領域は、拡大 / 縮小時に特別な規則が適用される額縁のようなものと考えることができます。
scale9Grid
プロパティが設定されているときに表示オブジェクトを拡大 / 縮小すると、テキストとグラデーションはすべて通常どおり拡大 / 縮小しますが、それ以外の種類のオブジェクトには次のような規則が適用されます。
- 中央領域のコンテンツは通常どおり拡大 / 縮小します。
- 左上、右上、左下、右下のコンテンツは拡大 / 縮小しません。
- 上下の領域のコンテンツは水平方向にのみ拡大 / 縮小します。左右の領域のコンテンツは垂直方向にのみ拡大 / 縮小します。
- すべての塗り(ビットマップ、ビデオ、グラデーションを含む)は、形状に収まるように伸縮されます。
表示オブジェクトが回転されると、それ以降の拡大 / 縮小はすべて通常どおりになり、scale9Grid
プロパティは無視されます。
例えば、次のような表示オブジェクトと、その表示オブジェクトの scale9Grid
として適用される矩形があるとします。
表示オブジェクトです。 |
赤の矩形は |
表示オブジェクトを拡大 / 縮小または伸縮すると、矩形内のオブジェクトは通常どおり拡大 / 縮小しますが、矩形外のオブジェクトは scale9Grid
の規則に従って拡大 / 縮小します。
75% に縮小: | |
50% に縮小: | |
25% に縮小: | |
水平方向に 150% 伸長: |
scale9Grid
設定の一般的な使用法は、拡大 / 縮小時にエッジ領域が同じ幅に保たれるコンポーネントとして表示オブジェクトをセットアップすることです。
実装
public function get scale9Grid():Rectangle
public function set scale9Grid(value:Rectangle):void
例外
ArgumentError — メソッドに無効な引数を渡した場合
|
関連する API エレメント
例 ( この例の使用方法 )
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; } }
scaleX | プロパティ |
scaleX:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
基準点から適用されるオブジェクトの水平スケール(パーセンテージ)を示します。 デフォルトの基準点は (0,0) です。1.0 は縮尺 100% と同等です。
ローカル座標系を拡大 / 縮小すると、x
および y
プロパティの値が変化します。この変化は、整数のピクセル数で表されます。
実装
public function get scaleX():Number
public function set scaleX(value:Number):void
例 ( この例の使用方法 )
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 | プロパティ |
scaleY:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
オブジェクトの基準点から適用されるオブジェクトの垂直スケール(パーセンテージ)を示します。 デフォルトの基準点は (0,0) です。1.0 は縮尺 100% です。
ローカル座標系を拡大 / 縮小すると、x
および y
プロパティの値が変化します。この変化は、整数のピクセル数で表されます。
実装
public function get scaleY():Number
public function set scaleY(value:Number):void
例 ( この例の使用方法 )
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 | プロパティ |
scaleZ:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
オブジェクトの基準点から適用されるオブジェクトの奥行きスケール(パーセンテージ)を示します。デフォルトの基準点は (0,0) です。1.0 は縮尺 100% です。
ローカル座標系を拡大 / 縮小すると、x
、y
、および z
プロパティの値が変化します。これらの値はピクセル単位の整数値で表されます。
実装
public function get scaleZ():Number
public function set scaleZ(value:Number):void
関連する API エレメント
scrollRect | プロパティ |
scrollRect:Rectangle
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
表示オブジェクトのスクロール矩形の境界です。表示オブジェクトは矩形で定義されたサイズにトリミングされ、x
および y
プロパティ(scrollRect
オブジェクトのプロパティ)を変更すると、表示オブジェクトは矩形の内部でスクロールします。
scrollRect
矩形オブジェクトのプロパティは、表示オブジェクトの座標空間を使用し、表示オブジェクト全体と同じように拡大および縮小されます。スクロールしている表示オブジェクト上のトリミングされたウィンドウの隅の境界は、表示オブジェクトの原点 (0,0)、および矩形の幅と高さによって定義されるポイントです。これらは原点を中心に配置されるのではなく、原点を使って領域の左上隅を定義します。スクロールされる表示オブジェクトは、常にピクセル増分全体の中でスクロールします。
x
プロパティ(scrollRect
矩形オブジェクトのプロパティ)を設定することにより、オブジェクトを左右にスクロールできます。y
プロパティ(scrollRect
矩形オブジェクトのプロパティ)を設定することにより、オブジェクトを上下にスクロールできます。表示オブジェクトを 90 度回転して左右にスクロールすると、この表示オブジェクトは実際には上下にスクロールします。
ただし、scrollRect
プロパティに加えた変更が処理されるのは、そのオブジェクトがレンダリングされるときのみです。したがって、scrollRect
を変更した直後に localToGlobal
のようなメソッドを呼び出しても意図した結果は得られない可能性があります。
注意:Flash Player 11.4 および AIR 3.4 以降では、矩形の幅や高さに対する負の値は 0 に変更されます。
実装
public function get scrollRect():Rectangle
public function set scrollRect(value:Rectangle):void
関連する API エレメント
例 ( この例の使用方法 )
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; }
stage | プロパティ |
stage:Stage
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトのステージです。Flash ランタイムアプリケーションには Stage オブジェクトが 1 つだけあります。例えば、複数の表示オブジェクトを作成して表示リストにロードすることができます。その場合、(ロードされた SWF ファイルに表示オブジェクトが属する場合であっても)それぞれの表示オブジェクトの stage
プロパティは、同じ Stage オブジェクトを参照します。
表示オブジェクトが表示リストに追加されていない場合、stage
プロパティは null
に設定されます。
実装
public function get stage():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 | プロパティ |
transform:flash.geom:Transform
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。特定のプロパティつまり matrix、colorTransform、および 3 つの読み取り専用プロパティ(concatenatedMatrix
、concatenatedColorTransform
、および 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 for TV デバイスでは、ハードウェアアクセラレーションが使用可能な場合、これがカラー変換に自動的に使用されます。
実装
public function get transform():flash.geom:Transform
public function set transform(value:flash.geom:Transform):void
関連する API エレメント
例 ( この例の使用方法 )
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; }
visible | プロパティ |
visible:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトが可視かどうかを示します。非可視の表示オブジェクトは無効になります。例えば、ある InteractiveObject インスタンスが visible=false
に設定されている場合、これをクリックすることはできません。
実装
public function get visible():Boolean
public function set visible(value:Boolean):void
例 ( この例の使用方法 )
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 | プロパティ |
width:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトの幅を示します(ピクセル単位)。この幅は、表示オブジェクトのコンテンツの境界に基づいて計算されます。次のコードに示すように、この 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 になります。
実装
public function get width():Number
public function set width(value:Number):void
例 ( この例の使用方法 )
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 | プロパティ |
x:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。変形されている DisplayObjectContainer にオブジェクトが含まれる場合、そのオブジェクトの座標系は、それを囲む DisplayObjectContainer のローカル座標系になります。したがって、反時計回りに 90 度回転した DisplayObjectContainer の場合、その DisplayObjectContainer の子は、反時計回りに 90 度回転した座標系を継承します。オブジェクトの座標は、基準点の位置を参照します。
実装
public function get x():Number
public function set x(value:Number):void
例 ( この例の使用方法 )
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 | プロパティ |
y:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。変形されている DisplayObjectContainer にオブジェクトが含まれる場合、そのオブジェクトの座標系は、それを囲む DisplayObjectContainer のローカル座標系になります。したがって、反時計回りに 90 度回転した DisplayObjectContainer の場合、その DisplayObjectContainer の子は、反時計回りに 90 度回転した座標系を継承します。オブジェクトの座標は、基準点の位置を参照します。
実装
public function get y():Number
public function set y(value:Number):void
例 ( この例の使用方法 )
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 | プロパティ |
z:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
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)
実装
public function get z():Number
public function set z(value:Number):void
関連する API エレメント
例 ( この例の使用方法 )
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; } } }
getBounds | () | メソッド |
public function getBounds(targetCoordinateSpace:DisplayObject):Rectangle
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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()
メソッドに関する説明を参照してください。
パラメーター
targetCoordinateSpace:DisplayObject — 使用する座標系を定義する表示オブジェクトです。
|
Rectangle — targetCoordinateSpace オブジェクトの座標系を基準とする、表示オブジェクトの領域を定義する矩形です。
|
関連する API エレメント
getRect | () | メソッド |
public function getRect(targetCoordinateSpace:DisplayObject):Rectangle
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
シェイプ上の線を除き、targetCoordinateSpace
パラメーターによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。getRect()
メソッドから返される値は、getBounds()
メソッドから返される値と同じか、それより小さくなります。
注意: 表示オブジェクトのローカル座標をステージ座標に、またはステージ座標をローカル座標に変換するには、それぞれ localToGlobal()
および globalToLocal()
メソッドを使用します。
パラメーター
targetCoordinateSpace:DisplayObject — 使用する座標系を定義する表示オブジェクトです。
|
Rectangle — targetCoordinateSpace オブジェクトの座標系を基準とする、表示オブジェクトの領域を定義する矩形です。
|
関連する API エレメント
例 ( この例の使用方法 )
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)
globalToLocal | () | メソッド |
public function globalToLocal(point:Point):Point
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
point
オブジェクトをステージ(グローバル)座標から表示オブジェクトの(ローカル)座標に変換します。
このメソッドを使用するには、まず Point クラスのインスタンスを作成してください。割り当てられる x 値と y 値は、メイン表示領域の起点 (0,0) からの相対値であるため、これらの値はグローバル座標を表します。次に、Point インスタンスを globalToLocal()
メソッドにパラメーターとして渡します。このメソッドは、Stage の起点ではなく、表示オブジェクトの起点からの相対値である x 値と y 値を持つ新しい Point オブジェクトを返します。
パラメーター
point:Point — Point クラスを使って作成されるオブジェクトです。Point オブジェクトは、x および y 座標をプロパティとして指定します。
|
Point — 表示オブジェクトからの相対座標を持つ Point オブジェクトです。
|
関連する API エレメント
例 ( この例の使用方法 )
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]
globalToLocal3D | () | メソッド |
public function globalToLocal3D(point:Point):Vector3D
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
ステージ(グローバル)座標の 2 次元のポイントを 3 次元の表示オブジェクトの(ローカル)座標に変換します。
このメソッドを使用するには、まず Point クラスのインスタンスを作成してください。Point オブジェクトに割り当てられる x 値と y 値は、メイン表示領域の起点 (0,0) からの相対値であるため、これらの値はグローバル座標を表します。次に、Point オブジェクトを globalToLocal3D()
メソッドの point
パラメーターとして渡します。このメソッドは、3 次元の表示オブジェクトの基点を基準とした x
値、y
値、および z
値を含む Vector3D オブジェクトとして 3 次元座標を返します。
パラメーター
point:Point — グローバル座標の x 座標と y 座標を表す 2 次元の Point オブジェクトです。
|
Vector3D — 3 次元の表示オブジェクトを基準とした座標を持つ Vector3D オブジェクトです。
|
hitTestObject | () | メソッド |
public function hitTestObject(obj:DisplayObject):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトの境界ボックスを評価して、obj
表示オブジェクトの境界ボックスと重複または交差するかどうかを調べます。
パラメーター
obj:DisplayObject — 検査の対象となる表示オブジェクトです。
|
Boolean — 表示オブジェクトの境界ボックスが交差する場合は true を返します。交差しない場合は false を返します。
|
例 ( この例の使用方法 )
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 | () | メソッド |
public function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトを評価して、x
および y
パラメーターで指定されたポイントと重複または交差するかどうかを調べます。x
および y
パラメーターは、表示オブジェクトが含まれる表示オブジェクトコンテナではなく Stage の座標空間内のポイントを指定します(その表示オブジェクトコンテナが Stage の場合を除く)。
パラメーター
x:Number — このオブジェクトの検査の基準となる x 座標です。
| |
y:Number — このオブジェクトの検査の基準となる y 座標です。
| |
shapeFlag:Boolean (default = false ) — オブジェクトの実際のピクセルと比較して検査する場合は true 、境界ボックスと比較して検査する場合は false です。
|
Boolean — 指定されたポイントと表示オブジェクトが重複または交差する場合は true 、そうでなければ false です。
|
関連する API エレメント
例 ( この例の使用方法 )
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]
local3DToGlobal | () | メソッド |
public function local3DToGlobal(point3d:Vector3D):Point
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
3 次元の表示オブジェクトの(ローカル)座標の 3 次元のポイントをステージ(グローバル)座標の 2 次元のポイントに変換します。
例えば、display.Graphics
のメソッドを使用して描画する場合は、2 次元座標(x,y)のみを使用できます。3 次元のオブジェクトを描画するには、表示オブジェクトの 3 次元座標を 2 次元座標にマッピングする必要があります。まず、3 次元の表示オブジェクトの x 座標、y 座標、および z 座標を保持する Vector3D クラスのインスタンスを作成します。次に、Vector3D オブジェクトを local3DToGlobal()
メソッドの point3d
パラメーターとして渡します。このメソッドからは 2 次元の Point オブジェクトが返されます。これを Graphics API で使用すると、3 次元のオブジェクトを描画できます。
パラメーター
point3d:Vector3D — 3 次元の表示オブジェクトの 3 次元のポイントまたは座標を含む Vector3D オブジェクト。
|
Point — 3 次元のポイントを 2 次元空間で表す 2 次元のポイント。
|
例 ( この例の使用方法 )
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 | () | メソッド |
public function localToGlobal(point:Point):Point
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
point
オブジェクトを表示オブジェクトの(ローカル)座標からステージ(グローバル)座標に変換します。
このメソッドを使用すれば、特定の表示オブジェクトの起点 (0,0) との相対値(ローカル座標)からステージの起点との相対値(グローバル座標)に、任意の x および y 座標を変換できます。
このメソッドを使用するには、まず Point クラスのインスタンスを作成してください。割り当てられる x 値と y 値は、表示オブジェクトの起点からの相対値であるため、これらの値はローカル座標を表します。
次に、作成した Point インスタンスを localToGlobal()
メソッドにパラメーターとして渡します。このメソッドは、表示オブジェクトの起点ではなく、Stage の起点からの相対値である x 値と y 値を持つ新しい Point オブジェクトを返します。
パラメーター
point:Point — Point クラスを使用し、x および y 座標をプロパティとして指定して作成されるポイントの名前または識別子です。
|
Point — ステージからの相対座標を持つ Point オブジェクトです。
|
関連する API エレメント
例 ( この例の使用方法 )
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)); }
added | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.ADDED
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトが表示リストに追加されたときに送出されます。DisplayObjectContainer.addChild()
メソッドおよび DisplayObjectContainer.addChildAt()
メソッドがこのイベントをトリガーします。
Event.ADDED
定数は、type
プロパティ(added
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | true |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 表示リストに追加される DisplayObejct インスタンスです。target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。 |
関連する API エレメント
addedToStage | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.ADDED_TO_STAGE
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9.0.28.0, Flash Lite 4 |
表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの追加により、ステージ上の表示リストに追加されたときに送出されます。DisplayObjectContainer.addChild()
メソッドおよび DisplayObjectContainer.addChildAt()
メソッドがこのイベントをトリガーします。
Event.ADDED_TO_STAGE
定数は、type
プロパティ(addedToStage
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 直接または DisplayObject インスタンスが含まれているサブツリーを追加することで、オンステージ表示リストに追加される DisplayObject インスタンスです。DisplayObject インスタンスが直接追加される場合、このイベントの前に added イベントが発生します。 |
関連する API エレメント
enterFrame | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.ENTER_FRAME
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[ブロードキャストイベント] 再生ヘッドが新しいフレームに入るときに送出されます。再生ヘッドが移動しない場合、またはフレームが 1 つしか存在しない場合、このイベントはフレームレートに合わせて継続的に送出されます。このイベントはブロードキャストイベントであるため、このイベントに登録されているリスナーを持つすべての表示イベントによって送出されます。
Event.ENTER_FRAME
定数は、type
プロパティ(enterFrame
イベントオブジェクト)の値を定義します。
注意:このイベントには「キャプチャ段階」と「バブリング段階」はありません。したがって、ターゲットが表示リストにあるかないかに関わらず、潜在的なターゲットにはイベントリスナーを直接追加する必要があります。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | enterFrame イベントに対するリスナーが登録された任意の DisplayObject インスタンスです。 |
exitFrame | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.EXIT_FRAME
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 2, Flash Lite 4 |
[ブロードキャストイベント] 再生ヘッドが現在のフレームを終了するときに送出されます。すべてのフレームスクリプトが実行されています。再生ヘッドが移動しない場合、またはフレームが 1 つしか存在しない場合、このイベントはフレームレートに合わせて継続的に送出されます。このイベントはブロードキャストイベントであるため、このイベントに登録されているリスナーを持つすべての表示イベントによって送出されます。
Event.EXIT_FRAME
定数は、type
プロパティ(exitFrame
イベントオブジェクト)の値を定義します。
注意:このイベントには「キャプチャ段階」と「バブリング段階」はありません。したがって、ターゲットが表示リストにあるかないかに関わらず、潜在的なターゲットにはイベントリスナーを直接追加する必要があります。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | enterFrame イベントに対するリスナーが登録された任意の DisplayObject インスタンスです。 |
frameConstructed | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.FRAME_CONSTRUCTED
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 2, Flash Lite 4 |
[ブロードキャストイベント] フレーム表示オブジェクトのコンストラクターが実行した後で、かつフレームスクリプトが実行される前に送出されます。再生ヘッドが移動しない場合、またはフレームが 1 つしか存在しない場合、このイベントはフレームレートに合わせて継続的に送出されます。このイベントはブロードキャストイベントであるため、このイベントに登録されているリスナーを持つすべての表示イベントによって送出されます。
Event.FRAME_CONSTRUCTED
定数は、type
プロパティ(frameConstructed
イベントオブジェクト)の値を定義します。
注意:このイベントには「キャプチャ段階」と「バブリング段階」はありません。したがって、ターゲットが表示リストにあるかないかに関わらず、潜在的なターゲットにはイベントリスナーを直接追加する必要があります。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | frameConstructed イベントに対するリスナーが登録された任意の DisplayObject インスタンスです。 |
removed | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.REMOVED
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示オブジェクトが表示リストから削除されようとしているときに送出されます。このイベントを生成する DisplayObjectContainer クラスの 2 つのメソッドは、removeChild()
および removeChildAt()
の 2 つのエディションがあります。
さらに、新しいオブジェクトの領域を確保するためにオブジェクトを削除する必要がある場合には、DisplayObjectContainer オブジェクトの addChild()
、addChildAt()
、および setChildIndex()
もまたこのイベントを生成します。
Event.REMOVED
定数は、type
プロパティ(removed
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | true |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 表示リストから削除される DisplayObejct インスタンスです。target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。 |
removedFromStage | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.REMOVED_FROM_STAGE
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9.0.28.0, Flash Lite 4 |
表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの削除により、表示リストから削除されようとしているときに送出されます。このイベントを生成する DisplayObjectContainer クラスの 2 つのメソッドは、removeChild()
および removeChildAt()
の 2 つのエディションがあります。
さらに、新しいオブジェクトの領域を確保するためにオブジェクトを削除する必要がある場合には、DisplayObjectContainer オブジェクトの addChild()
、addChildAt()
、および setChildIndex()
もまたこのイベントを生成します。
Event.REMOVED_FROM_STAGE
定数は、type
プロパティ(removedFromStage
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 直接または DisplayObject インスタンスが含まれているサブツリーを削除することで、オンステージ表示リストから削除される DisplayObject インスタンスです。DisplayObject インスタンスが直接削除される場合、このイベントの前に removed イベントが発生します。 |
render | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.RENDER
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[ブロードキャストイベント] 表示リストが更新およびレンダリングされようとしているときに送出されます。このイベントは、表示リストのレンダリング前に、このイベントをリッスンしているオブジェクトが変更を行う最後の機会を提供します。Stage オブジェクトの invalidate()
メソッドは、render
イベントを送出させるたびに呼び出す必要があります。 Render
イベントは、Stage.invalidate()
を呼び出したオブジェクトとの間に相互の信頼関係があるオブジェクトにしか送出されません。このイベントはブロードキャストイベントであるため、このイベントに登録されているリスナーを持つすべての表示イベントによって送出されます。
注意:表示がレンダリングされない場合、このイベントは送出されません。 これが該当するのは、コンテンツが最小化または非表示になっている場合です。
Event.RENDER
定数は、type
プロパティ(render
イベントオブジェクト)の値を定義します。
注意:このイベントには「キャプチャ段階」と「バブリング段階」はありません。したがって、ターゲットが表示リストにあるかないかに関わらず、潜在的なターゲットにはイベントリスナーを直接追加する必要があります。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false 。デフォルトの動作をキャンセルすることはできません。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | render イベントに対するリスナーが登録された任意の DisplayObject インスタンスです。 |
DisplayObjectExample
クラスを使用して、オレンジ色の四角形をステージの隅に描画した後、各イベントに関するテキスト情報を表示することによってイベントに応答します。これを行うには、以下の手順を実行します。
- 四角形の色とサイズに関するクラスプロパティが宣言されます。
- コンストラクターは
draw()
メソッドを呼び出します。このメソッドでは、オレンジ色の四角形が、ステージのデフォルト座標 x = 0, y = 0 に描画されます。 - 四角形には次のようなイベントリスナーメソッドがあります。
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); } }
Tue Jun 12 2018, 10:34 AM Z