あまり知られていないAS 3の名前空間。

2135 ワード

http://help.adobe.com/zh_CN/as 3/learn/WSf 00ab 63 af 761 f 170-419129 37 da 73 f 7-7 fe.html菗WSf 00ab 63 af 761 f 170-41912937 da 7-7 fe 0
AS 3名前空間
2つの継承機構、すなわち固定属性の継承と原型の継承があるため、コアクラスの属性と方法に関わる場合は、2つの機構の互換性の問題がある。アクションScriptに基づくECMAScript言語規範と互換性がある場合は、プロトタイプの継承が必要であり、これはコアクラスの属性と方法がこのクラスのプロトタイプオブジェクトで定義されることを意味する。一方、アクションScript 3.0と互換性があるなら、固定属性の継承が必要であり、これはコアクラスの属性と方法が使用されることを意味する。 const、var 和 機能 キーワードはクラス定義で定義されています。また、固定属性を使用すると、プロトタイプではなく、運転時の性能が格段に向上します。
アクションScript 3.0では、プロトタイプの継承と固定属性をコアクラスに継承することにより、この問題を解決した。各コアクラスは2つの属性と方法を含む。一つの組はプロトタイプオブジェクトで定義され、ECMAScript仕様と互換性があるため、もう一つの組は固定属性定義とAS 3名前空間定義を使用して、アクションScript 3.0と互換性がある。
AS 3名前空間は、2つのグループの属性と方法の間で選択するための所定のメカニズムを提供する。AS 3名前空間を使用しない場合、コアクラスのインスタンスは、コアクラスの原型オブジェクトに定義された属性と方法を引き継ぎます。AS 3の名前空間の使用が決定されると、コアクラスのインスタンスはAS 3のバージョンを引き継ぎます。固定属性の優先度は常にプロトタイプの属性より高いためです。言い換えれば、固定属性が利用可能であれば、同じ名前のプロトタイプ属性を使用せずに常に固定属性を使用します。
AS 3名前空間で属性または方法を定義することにより、AS 3名前空間バージョンを使用する属性または方法を選択することができます。例えば、下記のコードはAS 3バージョンの Aray.pop() 方法:
var nums:Array = new Array(1, 2, 3); 

nums.AS3::pop(); 

trace(nums); // output: 1,2
あるいは、使ってもいいです。 use namespace 命令はコードブロック内で定義されているすべてのAS 3名前空間を開きます。例えば、以下のコードを使用します。 use namespace コマンド ポップ() 和 push() 方法はAS 3名前空間を開きます。
use namespace AS3; 

 

var nums:Array = new Array(1, 2, 3); 

nums.pop(); 

nums.push(5); 

trace(nums) // output: 1,2,5
アクションScript 3.0はまた、AS 3名前空間をプログラム全体に適用するために、各属性セットにコンパイラオプションを提供する。as 3 コンパイラオプションはAS 3名前空間、-esを表します。 コンパイラオプションはプロトタイプ継承オプションを表します。 ECMAScriptを表します)。プログラム全体のAS 3名前空間を開くには、 -as 3 コンパイラオプションは true,将 -はい。 コンパイラオプションは falseプロトタイプバージョンを使用するには、コンパイラオプションを反対の値に設定してください。Flash BuiderとFlash Professionalのデフォルトコンパイラ設定は -as 3=true、-es=false。
任意のコアクラスを拡張し、任意の方法をカバーする計画であれば、AS 3名前空間がカバー方法を宣言する方法にどのような影響を与えるかを知るべきである。AS 3名前空間を使用するには、コアメソッドをカバーするいかなる方法もAS 3名前空間及び override を選択します。AS 3名前空間を使用して、サブクラスのコアクラスを再定義するつもりがない場合は、AS 3名前空間または名前空間を使用してはいけません。 override キーワード。