SpriteはAS3で良く利用するクラスの一つです。
このクラスをクラスリンケージに設定して使うとき、不思議な感じのところがありました。
以前、単純にドットシンタックスで、プロパティ追加しようと試みたときのことです。

通常(Strictモード)ですと、Spriteにドットシンタックスでプロパティを追加することはできず、以下のようなエラーとなりコンパイルできません。
“1119:未定義である可能性が高いプロパティmakerに静的型flash.display:Spriteの参照を利用してアクセスしています。”

/** * ピュアなSpriteにはドットシンタックスでプロパティ追加できず、コンパイルエラー */ var sp:Sprite = new Sprite(); sp.taste = ""; //この行がエラー

ですが、Spriteをクラスリンケージ(基本クラス)に設定すると、ドットシンタックスで動的にプロパティ追加できます。

/** * クラスリンケージにSpriteを指定するとドットシンタックスでプロパティ追加可能 */ var c:Coke = new Coke; //Spriteが基本クラス c.taste = "diet"; addChild(c);

Spriteのラッパークラスとしてクラス定義したと考えれば納得なのですが、Spriteが基本クラスとなっているのでピュアなSpriteと同じ挙動なような気もするのです。

・・少し、濁った感が否めません。

HTML5飯