パッケージトップレベル
public dynamic class Object
SubclassesAbstractMessage, AbstractTarget, Accessibility, AccessibilityProperties, ActionScriptVersion, AddChild, AntiAliasType, ApplicationDomain, arguments, Array, ArrayUtil, AxisLabel, AxisLabelSet, Back, BaseListData, BindingUtils, BitmapData, BitmapDataChannel, BitmapFill, BitmapFilter, BitmapFilterQuality, BitmapFilterType, BlendMode, Boolean, Bounce, BoundedValue, BoxDirection, ButtonLabelPlacement, ByteArray, Capabilities, CapsStyle, ChangeWatcher, ChartState, Circular, Class, ClassFactory, CollectionEventKind, ColorTransform, ColorUtil, ComponentDescriptor, Conflict, ConflictDetector, ContainerCreationPolicy, ContainerLayout, ContextMenuBuiltInItems, CreditCardValidatorCardType, CSMSettings, Cubic, CuePointManager, CurrencyValidatorAlignSymbol, CursorBookmark, CursorManager, CursorManagerPriority, DataDescription, DataGridEventReason, DataService, Date, DateBase, DateChooserEventDetail, DefaultDataDescriptor, DeferredInstanceFromClass, DeferredInstanceFromFunction, DescribeTypeCache, Dictionary, DisplacementMapFilterMode, DragManager, DragSource, EdgeMetrics, EffectTargetFilter, Elastic, Endian, Error, Event, EventDispatcher, EventPhase, EventPriority, Exponential, ExternalInterface, FileFilter, FlexPrintJob, FlexPrintJobScaleType, FocusManager, Font, FontStyle, FontType, Formatter, FormItemDirection, FrameLabel, Function, GradientEntry, GradientType, Graphics, GraphicsUtil, GridFitType, HaloColors, HistoryManager, HitData, ID3Info, IMEConversionMode, InstanceCache, int, InterpolationMethod, ItemResponder, JointStyle, Keyboard, KeyLocation, LegendData, Linear, LineScaleMode, LineSeriesSegment, ListBaseSeekPending, ListBaseSelectionData, ListEventReason, ListRowInfo, LoaderConfig, LoaderContext, Locale, Log, LogEventLevel, Managed, Math, Matrix, MBeanFeatureInfo, MBeanInfo, Mouse, Namespace, NameUtil, Number, NumberBase, NumberBaseRoundType, Object, ObjectEncoding, ObjectInstance, ObjectName, ObjectUtil, PageInformation, PixelSnapping, Point, PopUpManager, PopUpManagerChildList, PrintJobOptions, PrintJobOrientation, ProgressBarDirection, ProgressBarLabelPlacement, ProgressBarMode, PropertyChangeEventKind, PropertyChanges, Proxy, QName, Quadratic, Quartic, Quintic, Rectangle, RectangularDropShadow, RegExp, RemoveChild, RenderData, ResourceBundle, Responder, Scene, ScrollBarDirection, ScrollEventDetail, ScrollEventDirection, ScrollPolicy, Security, SecurityDomain, SecurityPanel, ServerConfig, SetProperty, SetStyle, SharedObjectFlushStatus, SimpleXMLDecoder, SimpleXMLEncoder, Sine, SliderDirection, SliderEventClickTarget, SOAPHeader, SolidColor, SoundLoaderContext, SoundMixer, SoundTransform, SpreadMethod, StageAlign, StageQuality, StageScaleMode, String, StringUtil, Stroke, StyleManager, SWFVersion, SwitchSymbolFormatter, System, TextColorType, TextDisplayMode, TextFieldAutoSize, TextFieldType, TextFormat, TextFormatAlign, TextLineMetrics, TextRange, TextRenderer, TextSnapshot, TileBaseDirection, TileDirection, Transform, Transition, UIComponentCachePolicy, UIDUtil, uint, UpdateCollectionRange, URLLoaderDataFormat, URLRequest, URLRequestHeader, URLRequestMethod, URLUtil, URLVariables, ValidationResult, XML, XMLList, XMLNode, XMLNodeType, XMLUtil, ZipCodeValidatorDomainType

Object クラスは、ActionScript クラス階層のルートにあります。オブジェクトは、new 演算子シンタックスを使用したコンストラクタで作成され、プロパティを動的に割り当てることができます。また、次のようにオブジェクトリテラルを割り当てて作成することもできます。
var obj:Object = {a:"foo", b:"bar"}

明示的な基本クラスを宣言していないクラスはすべて、ビルトインの Object クラスを拡張します。

Object クラスを使用して、結合配列を作成できます。基本的に、結合配列は Object クラスのインスタンスであり、キー値ペアはプロパティとその値という形式で表現されます。Object データタイプを使用して結合配列を宣言する別の理由は、そうすると、オブジェクトリテラルを使用して結合配列にデータを設定できるからです (ただし、宣言時のみ)。次の例では、オブジェクトリテラルを使用して結合配列を作成し、ドット演算子と配列アクセス演算子を両方とも使用して項目にアクセスします。その後、新しいプロパティを作成することで新しいキー値ペアを追加します。

 var myAssocArray:Object = {fname:"John", lname:"Public"};
 trace(myAssocArray.fname);     // Output: John
 trace(myAssocArray["lname"]);  // Output: Public
 myAssocArray.initial = "Q";
 trace(myAssocArray.initial);   // Output: Q

ActionScript 3.0 には、クラス継承とプロトタイプ継承の 2 つのタイプの継承があります。

次の例に示すように、クラス継承とプロトタイプ継承は共存可能です。

 class A {
     var x = 1
     prototype.px = 2
 }
 dynamic class B extends A {
     var y = 3
     prototype.py = 4
 }
  
 var b = new B()
 b.x // 1 via class inheritance
 b.px // 2 via prototype inheritance from A.prototype
 b.y // 3
 b.py // 4 via prototype inheritance from B.prototype
  
 B.prototype.px = 5
 b.px // now 5 because B.prototype hides A.prototype
  
 b.px = 6
 b.px // now 6 because b hides B.prototype

クラスの代わりに関数を使用すると、カスタムプロトタイプ継承ツリーを作成できます。クラスを使用すると、プロトタイプ継承ツリーはクラス継承ツリーをミラーします。ただし、プロトタイプオブジェクトは動的であるため、プロトタイプベースのプロパティを実行時に追加および削除できます。

例の表示

関連項目

prototype
データ型の詳細


パブリックプロパティ
 プロパティ定義
  constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  prototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義
  Object()
Object オブジェクトを作成し、そのオブジェクトのコンストラクタメソッドへの参照をオブジェクトの constructor プロパティに格納します。
Object
  hasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
  isPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  propertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
  setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  toString():String
指定されたオブジェクトのストリング表現を返します。
Object
  valueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
プロパティの詳細
constructorプロパティ
public var constructor:Object

特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。オブジェクトがクラスのインスタンスの場合、constructor プロパティはクラスオブジェクトへの参照を保持します。オブジェクトがコンストラクタ関数で作成されている場合、constructor プロパティはコンストラクタ関数への参照を保持します。コンストラクタ関数と、クラスのコンストラクタメソッドとを混同しないように注意してください。コンストラクタ関数は、オブジェクトの作成に使用する Function オブジェクトで、クラスの定義に class キーワードを使用することの代わりになります。

class キーワードを使用してクラスを定義している場合、クラスのプロトタイプオブジェクトには、クラスオブジェクトへの参照を保持する constructor という名前のプロパティが割り当てられます。クラスのインスタンスは、プロトタイプオブジェクトからこのプロパティを継承します。たとえば、次のコードでは新しいクラス A、および myA という名前のクラスインスタンスを作成します。

  dynamic class A {}
  trace(A.prototype.constructor);      // [class A]
  trace(A.prototype.constructor == A); // true
  var myA:A = new A();
  trace(myA.constructor == A);         // true

上級ユーザーの場合は、class キーワードの代わりに function キーワードを使用して、オブジェクト作成のテンプレートとして使用可能な Function オブジェクトを定義できます。このような関数は、new 演算子と組み合わせてオブジェクトを作成できるため、コンストラクタ関数と呼ばれています。function キーワードを使用してコンストラクタ関数を作成する場合、そのプロトタイプオブジェクトには、コンストラクタ関数への参照を保持する constructor という名前のプロパティが割り当てられます。次に、コンストラクタ関数を使用してオブジェクトを作成すると、そのオブジェクトはコンストラクタ関数のプロトタイプオブジェクトから constructor プロパティを継承します。たとえば、次のコードでは新しいコンストラクタ関数 f、および myF という名前のオブジェクトを作成します。

  function f() {}
  trace(f.prototype.constructor);      // function Function() {}
  trace(f.prototype.constructor == f); // true
  var myF = new f();
  trace(myF.constructor == f);         // true

メモ :constructor プロパティは書き込み可能です。つまり、割り当てステートメントを使用してユーザーコードで値を変更できます。constructor プロパティの値の変更はお勧めしませんが、constructor プロパティの値に依存したコードを書く場合は、その値がリセットされないようにする必要があります。プロトタイプオブジェクト (たとえば、className.prototype.constructor) を使用してプロパティにアクセスするときにのみ、この値を変更できます。

関連項目

prototypeプロパティ 
public static var prototype:Object

クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。prototype プロパティは自動的に作成され、作成したクラスまたは関数オブジェクトに割り当てられます。このプロパティは、作成したクラスまたは関数に固有であるという点で静的です。たとえば、クラスを作成すると、prototype プロパティの値は、そのクラスのすべてのインスタンスで共有され、クラスプロパティとしてのみアクセスできます。クラスのインスタンスは、prototype プロパティに直接アクセスできません。

クラスのプロトタイプオブジェクトは、そのクラスの特別なインスタンスであり、クラスのすべてのインスタンス間で状態を共有するためのメカニズムを提供します。実行時に、クラスインスタンスにプロパティが見つからない場合は、委譲先であるクラスのプロトタイプオブジェクトにそのプロパティがないかがチェックされます。プロトタイプオブジェクトにもない場合は、そのプロパティが見つかるまで、プロトタイプオブジェクトの委譲先でチェックを行うという処理が階層の上位に向かって連続的に継続されます。

メモ: ActionScript 3.0 では、プロトタイプ継承は主要な継承メカニズムではありません。ActionScript 3.0 での主要な継承メカニズムは、クラス定義の固定プロパティを継承するクラス継承です。

関連項目

コンストラクタの詳細
Object()コンストラクタ
public 関数 Object()

Object オブジェクトを作成し、そのオブジェクトのコンストラクタメソッドへの参照をオブジェクトの constructor プロパティに格納します。

関連項目

メソッドの詳細
hasOwnProperty()メソッド
AS3 function hasOwnProperty(name:String):Boolean

オブジェクトに指定されたプロパティが定義されているかどうかを示します。ターゲットオブジェクトに name パラメータで指定されたストリングに一致するプロパティがある場合は true を返します。それ以外の場合は false を返します。次のタイプのプロパティについては、オブジェクトがクラスオブジェクトではなく、クラスのインスタンスである場合に true が返されます。

次のタイプのプロパティについては、オブジェクトがクラスのインスタンスである場合に false が返されます。

また、ActionScript 3.0 には、クラス定義の直接的な表現であるクラスオブジェクトがあります。hasOwnProperty() メソッドをクラスオブジェクトに対して呼び出すと、プロパティがそのクラスオブジェクトに定義された静的プロパティである場合にのみ、true が返されます。たとえば、CustomArray という Array のサブクラスを作成し、CustomArray に foo という静的プロパティを定義した場合、CustomArray.hasOwnProperty("foo") を呼び出すと true が返されます。ただし、Array クラスに定義した静的プロパティ DESCENDING の場合、CustomArray.hasOwnProperty("DESCENDING") を呼び出すと、false が返されます。

メモ: Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。たとえば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function hasOwnProperty():Boolean が実装されます。

パラメータ
name:String — オブジェクトのプロパティです。

戻り値
Boolean — ターゲットオブジェクトに name パラメータで指定されたプロパティがある場合、この値は true になり、それ以外の場合は false になります。
isPrototypeOf()メソッド 
AS3 function isPrototypeOf(theClass:Object):Boolean

Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。このメソッドは、オブジェクトが theClass パラメータで指定されたオブジェクトのプロトタイプチェーン内にある場合に true を返します。ターゲットオブジェクトが theClass オブジェクトのプロトタイプチェーン内にない場合、および theClass パラメータがオブジェクトでない場合も、false を返します。

メモ: Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。たとえば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function isPrototypeOf():Boolean が実装されます。

パラメータ
theClass:Object — 指定したオブジェクトが参照する可能性があるクラスです。

戻り値
Boolean — オブジェクトが theClass パラメータで指定されたオブジェクトのプロトタイプチェーン内にある場合、この値は true になり、それ以外の場合は false になります。
propertyIsEnumerable()メソッド 
AS3 function propertyIsEnumerable(name:String):Boolean

指定されたプロパティが存在し、列挙可能かどうかを示します。true の場合、このプロパティが存在し、for..in ループで列挙できます。このメソッドではターゲットオブジェクトのプロトタイプチェーンをチェックしないため、プロパティがターゲットオブジェクト上に存在している必要があります。

作成するプロパティは列挙できますが、ビルトインプロパティは通常列挙できません。

メモ: Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。たとえば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function propertyIsEnumerable():Boolean が実装されます。

パラメータ
name:String — オブジェクトのプロパティです。

戻り値
Booleanname パラメータで指定されたプロパティが列挙可能な場合、この値は true になり、それ以外の場合は false になります。
setPropertyIsEnumerable()メソッド 
public function setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void

ループ処理に対するダイナミックプロパティの可用性を設定します。このメソッドではターゲットオブジェクトのプロトタイプチェーンをチェックしないため、プロパティがターゲットオブジェクト上に存在している必要があります。

パラメータ
name:String — オブジェクトのプロパティです。
 
isEnum:Boolean (default = true)false に設定した場合、ダイナミックプロパティは for..in ループに現れず、propertyIsEnumerable() メソッドは false を返します。

関連項目

toString()メソッド 
public function toString():String

指定されたオブジェクトのストリング表現を返します。

メモ: Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。たとえば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function toString():String が実装されます。

戻り値
String — オブジェクトのストリング表現です。
valueOf()メソッド 
public function valueOf():Object

指定されたオブジェクトのプリミティブ値を返します。このオブジェクトにプリミティブ値がない場合、オブジェクト自体が返されます。

メモ: Object クラスのメソッドは、Object のプロトタイプに動的に作成されます。Object のサブクラスでこのメソッドを再定義する場合は、override キーワードを使用しないでください。たとえば、Object のサブクラスでは、基本クラスのオーバーライドを使用する代わりに function valueOf():Object が実装されます。

戻り値
Object — このオブジェクトのプリミティブ値、またはオブジェクト自体です。

関連項目


次の例では、ObjectExample クラスと Circle クラスを使用して、 Object クラスの動的な特徴と、値オブジェクトを Shape オブジェクトに変換して、 ステージ上の指定した x および y 座標に追加する方法を示します。

この例では、値オブジェクト firstInitObjsecondInitObj を作成します。カスタム クラス Circle は、値オブジェクトを受け入れ、対応する内部プロパティを値オブジェクトに定義されたプロパティに設定しながら ループします。

package {
    import flash.display.Sprite;

    public class ObjectExample extends Sprite {
        public function ObjectExample() {
            var firstInitObj:Object = new Object();
            firstInitObj.bgColor = 0xFF0000;
            firstInitObj.radius = 25;
            firstInitObj.xCenter = 25;
            firstInitObj.yCenter = 25;
                        
            var firstCircle:Circle = new Circle(firstInitObj);
            addChild(firstCircle);
            firstCircle.x = 50;
            firstCircle.y = 50;

            var secondInitObj:Object = {bgColor:0xCCCCCC, radius:50, xCenter:50, yCenter:50};

            var secondCircle:Circle = new Circle(secondInitObj);            
            addChild(secondCircle);
            secondCircle.x = 100;
            secondCircle.y = 100;
        }
        
    }
}

import flash.display.Shape;
    
class Circle extends Shape {
    public var bgColor:Number = 0xFFFFFF;
    public var radius:Number = 0;
    public var xCenter:Number = 0;
    public var yCenter:Number = 0;
        
    public function Circle(initObj:Object) {
        for(var i:String in initObj) {
            this[i] = initObj[i];
        }
        draw();
    }
        
    public function draw():void {
        graphics.beginFill(bgColor);
        graphics.drawCircle(xCenter, yCenter, radius);
        graphics.endFill();
    }
}