ActionScript Map v1.01




このダイアグラムは OOP の観点から見た Flash MX ActionScript のビルトイントップレベル object/function object の相関関係を示しています。それぞれの関係は下のテストコードによる検証結果です。

2つのタイプの関係があり、一つはコンストラクタとそのインスタンスの関係、もう一つはスーパークラスとサブクラスの関係になります。ダイアグラムの中では、前者が実線で、後者が点線で示されています。

この他の'eval'や'escape'といった変換関数としてのみ使われるfunctionはここには含まれていません。

 


Test code (全て true を出力)

//ビルトインfunction objects
trace(Object.constructor == Function);
trace(MovieClip.constructor == Function);
trace(Array.constructor == Function);
trace(Boolean.constructor == Function);
trace(Color.constructor == Function);
trace(Date.constructor == Function);
trace(Number.constructor == Function);
trace(Sound.constructor == Function);
trace(String.constructor == Function);
trace(XMLNode.constructor == Function);
trace(XML.constructor == Function);
trace(XMLSocket.constructor == Function);
trace(Button.constructor == Function);
trace(LoadVars.constructor == Function);
trace(TextField.constructor == Function);
trace(TextFormat.constructor == Function);

//ユーザ定義functionも同じくFunctionクラスのインスタンス
myFunction = function () { };
trace(myFunction.constructor == Function);

//上記クラスは全てObjectクラスより継承
trace(Function.prototype.__proto__ == Object.prototype);
trace(MovieClip.prototype.__proto__ == Object.prototype);
trace(Array.prototype.__proto__ == Object.prototype);
trace(Boolean.prototype.__proto__ == Object.prototype);
trace(Color.prototype.__proto__ == Object.prototype);
trace(Date.prototype.__proto__ == Object.prototype);
trace(Number.prototype.__proto__ == Object.prototype);
trace(Sound.prototype.__proto__ == Object.prototype);
trace(String.prototype.__proto__ == Object.prototype);
trace(XMLNode.prototype.__proto__ == Object.prototype);
trace(XML.prototype.__proto__ == XMLNode.prototype);
trace(XMLSocket.prototype.__proto__ == Object.prototype);
trace(Button.prototype.__proto__ == Object.prototype);
trace(LoadVars.prototype.__proto__ == Object.prototype);
trace(TextField.prototype.__proto__ == Object.prototype);
trace(TextFormat.prototype.__proto__ == Object.prototype);
trace(myFunction.prototype.__proto__ == Object.prototype);

//ビルトインobjects
trace(Key.constructor == Object);
trace(Math.constructor == Object);
trace(Mouse.constructor == Object);
trace(Selection.constructor == Object);
trace(Accessibility.constructor == Object);
trace(CustomActions.constructor == Object);
trace(Stage.constructor == Object);
trace(System.constructor == Object);
trace(System.Capabilities.constructor == Object);
trace(CustomActions.constructor == Object);
trace(Stage.constructor == Object);
trace(System.constructor == Object);
trace(System.Capabilities.constructor == Object);

//Remoting 関連
#include "DataGlue.as"
#include "NetDebug.as"
#include "NetServices.as"
trace(NetServices.constructor == Object);
trace(NetConnection.prototype.__proto__ == Object.prototype);
trace(DataGlue.prototype.__proto__ == Object.prototype);
trace(NetDebug.prototype.__proto__ == Object.prototype);
trace(NetDebugConfig.prototype.__proto__ == Object.prototype);
trace(RecordSet.prototype.__proto__ == RsDataProviderClass.prototype);

//Remoting で内部的に使用されるクラス
trace(RsDataProviderClass.prototype.__proto__ == Object.prototype);
trace(RsDataFetcher.prototype.__proto__ == Object.prototype);
trace(NetServiceProxy.prototype.__proto__ == Object.prototype);
trace(NetServiceProxyResponder.prototype.__proto__ == Object.prototype);

//Flash Communication Server 関連
trace(Camera.prototype.__proto__ == Object.prototype);
trace(LocalConnection.prototype.__proto__ == Object.prototype);
trace(Microphone.prototype.__proto__ == Object.prototype);
trace(NetStream.prototype.__proto__ == Object.prototype);
trace(SharedObject.prototype.__proto__ == Object.prototype);
trace(Video.prototype.__proto__ == Object.prototype);


Back to Flash Home

Copyright©2000-2002 STUDIO FIRST RAYS. All rights reserved