パッケージflash.display
public class DisplayObject
継承DisplayObject Inheritance EventDispatcher Inheritance Object
実装IBitmapDrawable
SubclassesAVM1Movie, Bitmap, InteractiveObject, MorphShape, Shape, StaticText, Video

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

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

DisplayObject は抽象基本クラスであるため、DisplayObject を直接呼び出すことはできません。new DisplayObject() を呼び出すと ArgumentError 例外がスローされます。すべての表示オブジェクトは DisplayObject クラスから継承します。DisplayObject クラスのカスタムサブクラスを作成する場合は、有効な new コンストラクタを持つ DisplayObject クラスのサブクラスを拡張する必要があります。

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

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

例の表示

関連項目

flash.display.DisplayObjectContainer
表示アーキテクチャについて
表示オブジェクトの操作
例 :表示オブジェクトに対するマトリックス変換の適用


パブリックプロパティ
 プロパティ定義
  accessibilityProperties : AccessibilityProperties
この表示オブジェクトの現在のアクセシビリティオプションです。
DisplayObject
  alpha : Number
指定されたオブジェクトのアルファ透明度値を示します。
DisplayObject
  blendMode : String
使用するブレンドモードを指定する BlendMode クラスの値です。
DisplayObject
  cacheAsBitmap : Boolean
true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash Player にキャッシュされます。
DisplayObject
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  filters : Array
表示オブジェクトに現在関連付けられている各フィルタオブジェクトが格納されているインデックス付きの配列です。
DisplayObject
  height : Number
表示オブジェクトの高さを示します (ピクセル単位)。
DisplayObject
  loaderInfo : LoaderInfo
[read-only] この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。
DisplayObject
  mask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。
DisplayObject
  mouseX : Number
[read-only] マウス位置の x 座標を示します (ピクセル単位)。
DisplayObject
  mouseY : Number
[read-only] マウス位置の y 座標を示します (ピクセル単位)。
DisplayObject
  name : String
DisplayObject のインスタンス名を示します。
DisplayObject
  opaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。
DisplayObject
  parent : DisplayObjectContainer
[read-only] この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。
DisplayObject
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  root : DisplayObject
[read-only] ロードされた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。
DisplayObject
  rotation : Number
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。
DisplayObject
  scale9Grid : Rectangle
現在有効な拡大 / 縮小グリッドです。
DisplayObject
  scaleX : Number
基準点から適用されるオブジェクトの水平スケール (percentage) を示します。
DisplayObject
  scaleY : Number
オブジェクトの基準点から適用されるオブジェクトの垂直スケール (percentage) を示します。
DisplayObject
  scrollRect : Rectangle
表示オブジェクトのスクロール矩形の境界。
DisplayObject
  stage : Stage
[read-only] 表示オブジェクトのステージ。
DisplayObject
  transform : Transform
表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。
DisplayObject
  visible : Boolean
表示オブジェクトが可視かどうかを示します。
DisplayObject
  width : Number
表示オブジェクトの幅を示します (ピクセル単位)。
DisplayObject
  x : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。
DisplayObject
  y : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。
DisplayObject
パブリックメソッド
 メソッド定義
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
  getBounds(targetCoordinateSpace:DisplayObject):Rectangle
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。
DisplayObject
  getRect(targetCoordinateSpace:DisplayObject):Rectangle
シェイプ上の線を除き、targetCoordinateSpace パラメータによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。
DisplayObject
  globalToLocal(point:Point):Point
point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。
DisplayObject
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
  hitTestObject(obj:DisplayObject):Boolean
表示オブジェクトを評価して、obj 表示オブジェクトと重複または交差するかどうかを調べます。
DisplayObject
  hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。
DisplayObject
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  localToGlobal(point:Point):Point
point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。
DisplayObject
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント一覧定義
  activate Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。DisplayObject
  added 表示オブジェクトが表示リストに追加されたときに送出されます。DisplayObject
  deactivate Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。DisplayObject
  enterFrame 再生ヘッドが新しいフレームに入るときに送出されます。DisplayObject
  removed 表示オブジェクトが表示リストから削除されようとしているときに送出されます。DisplayObject
  render 表示リストが更新およびレンダリングされようとしているときに送出されます。DisplayObject
プロパティの詳細
accessibilityPropertiesプロパティ
accessibilityProperties:AccessibilityProperties  [read-write]

この表示オブジェクトの現在のアクセシビリティオプションです。accessibilityProperties プロパティ、または accessibilityProperties 内のいずれかのフィールドを変更した場合、変更内容を有効にするには、Accessibility.updateProperties() メソッドを呼び出す必要があります。

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

実装
    public function get accessibilityProperties():AccessibilityProperties
    public function set accessibilityProperties(value:AccessibilityProperties):void

関連項目



次の例では、単純な 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

alphaプロパティ 
alpha:Number  [read-write]

指定されたオブジェクトのアルファ透明度値を示します。有効な値は 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  [read-write]

使用するブレンドモードを指定する BlendMode クラスの値です。内部的には、2 つの方法でビットマップを描画することができます。ブレンドモードを有効にした場合、または外部クリッピングマスクを使用する場合には、ビットマップで塗りつぶされた四角形シェイプをベクターレンダーに追加することによってビットマップが描画されます。このプロパティを無効な値に設定しようとすると、Flash Player は値を BlendMode.NORMAL に設定します。

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

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

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

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

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

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

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

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

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 に設定されています。
BlendMode.ERASE 表示オブジェクトのアルファ値に基づいて背景を消去します。これを行うには、親表示オブジェクトの blendModeBlendMode.LAYER に設定されなければなりません。たとえば、図の親表示オブジェクト (白い背景) は、blendMode = BlendMode.LAYER に設定されています。
BlendMode.OVERLAY 背景の暗さに基づいて、各ピクセルの色を調整します。背景が 50% グレーよりも明るい場合、表示オブジェクトと背景の色が網がけされ、より明るくなります。背景が 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。
BlendMode.HARDLIGHT 表示オブジェクトの暗さに基づいて、各ピクセルの色を調整します。表示オブジェクトが 50% グレーよりも明るい場合、表示オブジェクトと背景の色が網がけされ、より明るくなります。表示オブジェクトが 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。
実装
    public function get blendMode():String
    public function set blendMode(value:String):void

関連項目



次のコードでは、四角形と円の 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;
}

cacheAsBitmapプロパティ 
cacheAsBitmap:Boolean  [read-write]

true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash Player にキャッシュされます。このキャッシュ処理により、複雑なベクターコンテンツを含んでいる表示オブジェクトのパフォーマンスを向上できます。

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

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

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

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

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

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

実装
    public function get cacheAsBitmap():Boolean
    public function set cacheAsBitmap(value:Boolean):void

関連項目



次の例では、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

filtersプロパティ 
filters:Array  [read-write]

表示オブジェクトに現在関連付けられている各フィルタオブジェクトが格納されているインデックス付きの配列です。flash.filters パッケージには、使用可能な特定のフィルタを定義する複数のクラスが含まれています。

ActionScript コードを使用することにより、設計時または実行時に Flash オーサリングツールでフィルタを適用することができます。ActionScript を使ってフィルタを適用するには、filters 配列全体の一時コピーを作成してその一時配列を変更した後、一時配列の値を filters 配列に代入し直す必要があります。新しいフィルタオブジェクトを filters 配列に直接追加することはできません。次のコードは、myDisplayObject という名前のターゲット表示オブジェクトに影響を与えません。

     myDisplayObject.filters[0].push(myDropShadow);
     

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)
     

filter 配列内のそれぞれのインデックス位置に割り当てられるフィルタの種類を判別するために、is 演算子を使用できます。たとえば、次のコードは、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;
     }
     
実装
    public function get filters():Array
    public function set filters(value:Array):void

関連項目

heightプロパティ 
height:Number  [read-write]

表示オブジェクトの高さを示します (ピクセル単位)。

実装
    public function get height():Number
    public function set height(value:Number):void


次のコードでは、2 つの TextField オブジェクトを作成し、 各 textHeight プロパティに基づいてそれぞれの height プロパティを 調整します。また、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  [read-only]

この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。loaderInfo プロパティは、SWF ファイルのルート表示オブジェクト用、または (ActionScript を使用して描画されるビットマップではなく) ロードされるビットマップ用として定義されています。myDisplayObject という名前の表示オブジェクトを含んでいる SWF ファイルに関連した loaderInfo オブジェクトを見つけるには、myDisplayObject.root.loaderInfo を使用します。

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

実装
    public function get loaderInfo():LoaderInfo

関連項目



次のコードでは、this が表示オブジェクトを 参照する場合を想定しています。このコードでは、表示オブジェクトのルート SWF ファイルの URL を出力します。
 trace (this.loaderInfo.url);
 

maskプロパティ 
mask:DisplayObject  [read-write]

呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。ステージの拡大および縮小時にマスクが確実に機能するためには、表示リストのアクティブな部分に mask 表示オブジェクトが含まれている必要があります。mask オブジェクト自体は描画されません。マスクを除去するには masknull に設定します。

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

実装
    public function get mask():DisplayObject
    public function set mask(value:DisplayObject):void


次のコードでは、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プロパティ 
mouseX:Number  [read-only]

マウス位置の x 座標を示します (ピクセル単位)。

実装
    public function get mouseX():Number


次のコードでは、Sprite オブジェクトを作成し、ユーザーがスプライトをクリックすると、mouseXmouseY の位置がトレースされます。
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  [read-only]

マウス位置の y 座標を示します (ピクセル単位)。

実装
    public function get mouseY():Number


次のコードでは、Sprite オブジェクトを作成し、ユーザーがスプライトをクリックすると、mouseXmouseY の位置がトレースされます。
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  [read-write]

DisplayObject のインスタンス名を示します。親表示オブジェクトコンテナの子リスト内でオブジェクトを識別するには、表示オブジェクトコンテナの getChildByName() メソッドを呼び出します。

実装
    public function get name():String
    public function set name(value:String):void

Throws
IllegalOperationError — Flash オーサリングツールで、タイムライン上に配置されたオブジェクトに対して、このプロパティを設定しようとした場合


次のコードでは、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プロパティ 
opaqueBackground:Object  [read-write]

表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。透明のビットマップにはアルファチャンネルデータが含まれ、透明に描画されます。不透明のビットマップには、アルファチャンネルがありません (したがって透明のビットマップより速くレンダリングされます)。ビットマップが不透明の場合、使用する独自の背景色を指定する必要があります。

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

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

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

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

実装
    public function get opaqueBackground():Object
    public function set opaqueBackground(value:Object):void

関連項目



次のコードでは、青色の円の 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);

parentプロパティ 
parent:DisplayObjectContainer  [read-only]

この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。表示リスト階層内の現在の表示オブジェクトの上位にある表示オブジェクトへの相対パスを指定するには、parent プロパティを使用します。

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

     this.parent.parent.alpha = 20;
     
実装
    public function get parent():DisplayObjectContainer

Throws
SecurityError — 親表示オブジェクトは、アクセス権限が与えられていないセキュリティ Sandbox に属しています。親ムービーで Security.allowDomain() メソッドを呼び出すことにより、このような状況を避けることができます。


次のコードでは、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プロパティ 
root:DisplayObject  [read-only]

ロードされた 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


次のコードでは、Stage オブジェクト、ロードされていない表示オブジェクト (Loader オブジェクト)、 ロードされたオブジェクト (ロードされた Bitmap オブジェクト) の root プロパティの違いを 表示します。Loader オブジェクトについては、表示リストに追加される前と後の両方を表示します。
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  [read-write]

DisplayObject インスタンスの元の位置からの回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 に加算または 360 から減算され、範囲内に収まる値になるように調整されます。たとえば、my_video.rotation = 450 というステートメントは my_video.rotation = 90 と同義です。

実装
    public function get rotation():Number
    public function set rotation(value:Number):void


次のコードでは、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プロパティ 
scale9Grid:Rectangle  [read-write]

現在有効な拡大 / 縮小グリッドです。null に設定されている場合、拡大または縮小変換が適用されると表示オブジェクト全体は通常どおりに拡大または縮小されます。

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

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

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

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

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


表示オブジェクトです。

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

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

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

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

実装
    public function get scale9Grid():Rectangle
    public function set scale9Grid(value:Rectangle):void

Throws
ArgumentError — メソッドに無効な引数を渡した場合

関連項目



次のコードでは、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;
    }
}

scaleXプロパティ 
scaleX:Number  [read-write]

基準点から適用されるオブジェクトの水平スケール (percentage) を示します。デフォルトの基準点は (0,0) です。1.0 は縮尺 100% と同等です。

ローカル座標系を拡大または縮小すると、x および y プロパティの設定に影響します。これらの設定は、整数のピクセル数で表されます。

実装
    public function get scaleX():Number
    public function set scaleX(value:Number):void


次のコードでは、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プロパティ 
scaleY:Number  [read-write]

オブジェクトの基準点から適用されるオブジェクトの垂直スケール (percentage) を示します。デフォルトの基準点は (0,0) です。1.0 は縮尺 100% です。

ローカル座標系を拡大または縮小すると、x および y プロパティの設定に影響します。これらの設定は、整数のピクセル数で表されます。

実装
    public function get scaleY():Number
    public function set scaleY(value:Number):void


次のコードでは、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;
}

scrollRectプロパティ 
scrollRect:Rectangle  [read-write]

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

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

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

実装
    public function get scrollRect():Rectangle
    public function set scrollRect(value:Rectangle):void

関連項目



次の例は、scrollRect プロパティが 表示オブジェクト circle のスクロール領域を定義する方法を示しています。circle オブジェクトをクリックすると、 clicked() イベントハンドラメソッドが y プロパティ (circle オブジェクトの scrollRect プロパティに含まれる) を調整し、結果としてオブジェクトが下にスクロールします。

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  [read-only]

表示オブジェクトのステージ。Flash アプリケーションには Stage オブジェクトが 1 つだけあります。たとえば、複数の表示オブジェクトを作成して表示リストにロードすることができます。その場合、(ロードされた SWF ファイルに表示オブジェクトが属する場合であっても) それぞれの表示オブジェクトの stage プロパティは、同じ Stage オブジェクトを参照します。

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

実装
    public function get stage():Stage


次のコードでは、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プロパティ 
transform:Transform  [read-write]

表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。特定のプロパティ— matrix、colorTransform、および 3 つの読み取り専用プロパティ (concatenatedMatrixconcatenatedColorTransform、および pixelBounds) については、Transform クラスで説明します。

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

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


    var myMatrix:Object = 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 と同じ値になります。

実装
    public function get transform():Transform
    public function set transform(value:Transform):void

関連項目



次のコードでは、Sprite オブジェクト square を設定します。 ユーザーがスプライトをクリックすると、transformer() メソッドにより、 スプライトの transform プロパティの colorTransform および matrix プロパティが調整されます。

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  [read-write]

表示オブジェクトが可視かどうかを示します。非可視の表示オブジェクトは無効になります。たとえば、ある InteractiveObject インスタンスが visible=false に設定されている場合、これをクリックすることはできません。

実装
    public function get visible():Boolean
    public function set visible(value:Boolean):void


次のコードでは、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プロパティ 
width:Number  [read-write]

表示オブジェクトの幅を示します (ピクセル単位)。

実装
    public function get width():Number
    public function set width(value:Number):void


次のコードでは、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プロパティ 
x:Number  [read-write]

親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。変形されている DisplayObjectContainer にオブジェクトが含まれる場合、そのオブジェクトの座標系は、それを囲む DisplayObjectContainer のローカル座標系になります。したがって、反時計回りに 90 度回転した DisplayObjectContainer の場合、その DisplayObjectContainer の子は、反時計回りに 90 度回転した座標系を継承します。オブジェクトの座標は、基準点の位置を参照します。

実装
    public function get x():Number
    public function set x(value:Number):void


次のコードでは、Sprite オブジェクト circle を設定します。 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  [read-write]

親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。変形されている DisplayObjectContainer にオブジェクトが含まれる場合、そのオブジェクトの座標系は、それを囲む DisplayObjectContainer のローカル座標系になります。したがって、反時計回りに 90 度回転した DisplayObjectContainer の場合、その DisplayObjectContainer の子は、反時計回りに 90 度回転した座標系を継承します。オブジェクトの座標は、基準点の位置を参照します。

実装
    public function get y():Number
    public function set y(value:Number):void


次のコードでは、2 つの TextField オブジェクトを作成し、 各 textHeight プロパティに基づいてそれぞれの height プロパティを 調整します。また、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);

メソッドの詳細
getBounds()メソッド
public function getBounds(targetCoordinateSpace:DisplayObject):Rectangle

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 — 使用する座標系を定義する表示オブジェクトです。

戻り値
RectangletargetCoordinateSpace オブジェクトの座標系を基準とする、表示オブジェクトの領域を定義する矩形です。

関連項目

getRect()メソッド 
public function getRect(targetCoordinateSpace:DisplayObject):Rectangle

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

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

パラメータ
targetCoordinateSpace:DisplayObject — 使用する座標系を定義する表示オブジェクトです。

戻り値
RectangletargetCoordinateSpace オブジェクトの座標系を基準とする、表示オブジェクトの領域を定義する矩形です。

関連項目



次の例は、getBounds() メソッドによって、 getRect() メソッドを使用したときよりも大きい矩形が返される場合があることを示しています。そうなる理由は、追加的な領域が 線に必要となるためです。この場合、triangle スプライトには余分の線が含まれます (lineStyle() メソッドの width および jointStyle パラメータが メソッドを呼び出します。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

point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。

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

パラメータ
point:Point — Point クラスを使って作成されるオブジェクトです。Point オブジェクトは、x および y 座標をプロパティとして指定します。

戻り値
Point — 表示オブジェクトからの相対座標を持つ 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]

hitTestObject()メソッド 
public function hitTestObject(obj:DisplayObject):Boolean

表示オブジェクトを評価して、obj 表示オブジェクトと重複または交差するかどうかを調べます。

パラメータ
obj:DisplayObject — 検査の対象となる表示オブジェクトです。

戻り値
Boolean — 表示オブジェクトが交差する場合は true、そうでない場合は false です。


次のコードでは、3 つの Shape オブジェクトを作成し、 hitTestObject() メソッドを呼び出したときの結果を表示します。

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)); // true
trace(circle2.hitTestObject(circle3)); // true

hitTestPoint()メソッド 
public function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean

表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。x および y パラメータは、表示オブジェクトが含まれる表示オブジェクトコンテナではなく Stage の座標空間内のポイントを指定します (その表示オブジェクトコンテナが Stage の場合を除く)。

パラメータ
x:Number — このオブジェクトの検査の基準となる x 座標です。
 
y:Number — このオ