intrinsic ステートメント

intrinsic class className [extends superClass] [implements interfaceName [, interfaceName...] ] {
 //class definition here
}

定義済みのクラスをコンパイル時にタイプチェックできるようにします。Flash では、intrinsic クラス宣言を使用することで、ArrayObject、および String といったビルトインクラスのタイプチェックをコンパイル時に行えます。このキーワードは、関数の実装が必要でないこと、およびバイトコードを生成しないことをコンパイラに示します。

intrinsic キーワードは、変数や関数の宣言に使用することもできます。Flash では、このキーワードを使用することで、グローバル関数やグローバルプロパティのタイプチェックをコンパイル時に行えます。

intrinsic キーワードは、ビルトインクラス、ビルドインオブジェクト、グローバル変数、グローバル関数のタイプチェックをコンパイル時に行えるようにする目的で作成されたものです。このキーワードは汎用的に使用するというものではなく、定義済みのクラス (特に ActionScript 1.0 を使用して定義されているクラス) をコンパイル時にタイプチェックする方法を模索しているデベロッパーにとって有用なものです。

このキーワードは、[アクション] パネルに記述するスクリプトではありません。外部スクリプトファイルで使用する場合にのみサポートされます。

対応バージョン : ActionScript 2.0、Flash Player 6

次の例では、定義済みの ActionScript 1.0 クラスのコンパイル時タイプチェックを有効にしています。このコードでは、myCircle.setRadius() 呼び出しにより Number 値ではなく String 値がパラメータとして送られるので、コンパイル時エラーが発生します。パラメータを Number 値に (たとえば "10"10 に) 変換することで、このエラーを回避できます。

// The following code must be placed in a file named Circle.as 
// that resides within your classpath:
intrinsic class Circle {
 var radius:Number;
 function Circle(radius:Number);
 function getArea():Number;
 function getDiameter():Number;
 function setRadius(param_radius:Number):Number;
}

// This ActionScript 1.0 class definition may be placed in your FLA file.
// Circle class is defined using ActionScript 1.0
function Circle(radius) {
 this.radius = radius;
 this.getArea = function(){
 return Math.PI*this.radius*this.radius;
 };
 this.getDiameter = function() {
 return 2*this.radius;
 };
 this.setRadius = function(param_radius) {
 this.radius = param_radius;
 }
}

// ActionScript 2.0 code that uses the Circle class
var myCircle:Circle = new Circle(5);
trace(myCircle.getArea());
trace(myCircle.getDiameter());
myCircle.setRadius("10");
trace(myCircle.radius);
trace(myCircle.getArea());
trace(myCircle.getDiameter());

関連項目

class ステートメント


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001330.html