Macromedia Flash非公式テクニカルノート 10. ダイナミックなクラスの作成
Platform: All デフォルトでは、クラスのプロパティとメソッドは固定です。つまり、クラスのインスタンスには、クラスによって予め宣言あるいは定義されていないプロパティやメソッドの作成やアクセスはできません。たとえば、Personクラスに、2つのプロパティnameとageが定義された場合を考えてみましょう。 class Person { もし他のスクリプトでPersonクラスのインスタンスを生成し、クラスに存在しないプロパティにアクセスしようとすると、コンパイラはエラーを発生します。たとえば、以下のコードはPersonクラスの新規インスタンス(a_person)を生成します。そして、存在しないhairColorという名前のプロパティに、値を設定しようとしています。 var a_person:Person = new Person(); このコードは、コンパイルエラーになります。それは、Personクラスには、hairColorという名前のプロパティが宣言されていないからです。多くの場合、これはユーザーの希望する動作となります。 しかしときには、もともとクラスに定義されていないプロパティやメソッドを、ランタイムで追加したり、それらにアクセスしたい場合もあります。クラス修飾子'dynamic'で、まさにそれが可能になります。たとえば、以下のコードは、'dynamic'修飾子を前記のPersonクラスに加えています。 dynamic class Person { すると、Personクラスのインスタンスには、もとのクラスに定義されていないプロパティやメソッドの追加・アクセスが可能になります。 var a_person:Person = new Person(); 'dynamic'なクラスのサブクラスも、'dynamic'になります。 出典 _____ Copyright © 2001-2003 Fumio Nonaka. All rights reserved. |
|||