描画の要?

MXMLでのアプリケーション開発は、コンポーネントをペタペタ貼り付けて作っていきますが、
当然これらのコンポーネントだけで開発するわけではありません。
用意したビットマップを貼り付けたり、物体を大量生成してニヤニヤしたりもするはずです。


僕がこれまでActionScriptプロジェクトで多く使用してきた「Sprite」ですが、
コンポーネントである「Panel」に「addChild」してみると、

TypeError: Error #1034: 強制型変換に失敗しました。flash.display::Sprite@100ef51 を mx.core.IUIComponent に変換できません。

というランタイムエラーがでてうまくいきません。
「Sprite」はFlexプロジェクト中では使えないのか?
と思っていましたが、適当に調べていくうちに「Image」というコンポーネントの存在を知りました。


具体的なコードでの実験を示します。
まずは「Panel」に直接「Sprite」を「addChild」します。

var p:Panel = new Panel();
p.addChild(new Sprite());

これを実行しますと、上で書いたようなランタイムエラーが出ます。
「Sprite」の代わりに「Shape」で試しても同じようなランタイムエラーが出ます。


これを「Panel」と「Sprite」の間に「Image」を挟んで「addChild」してみます。

var p:Panel = new Panel();
var img:Image = new Image();

img.addChild(new Sprite());
p.addChild(img);

これで実行してみますと、特にエラーも無く問題無く動くようです。
「Sprite」の代わりに「Shape」で試しても結果は同じです。


この結果から『予想』します。
「Image」へならこれまでの「Sprite」や「Shape」などの描画の基本を「addChild」できる。
つまりActionScriptプロジェクトで行ってきた描画方法が使える。
はたしてこの考えでいいのでしょうか。
今後試してみます。