Embedメタタグ

FlexActionScriptベースで何か作るときに、外で作ったベクター画像とかの使い方を調べてて、とりあえずEmbedメタタグ使えば外部SWF内のシンボル等埋め込みできることはわかったんですが、これ、埋め込んだもの使うときに型指定として使うクラスに「mx.core.SpriteAsset」と「mx.core.MovieClipAsset」と「mx.core.MovieClipLoaderAsset」の三つがあって、使うswfファイルの内容+上の三つのどれ使うかによってコンパイル時にエラーが出たり出なかったり。
ひとまず

  • Flash8で書き出したswfファイルを「[Embed(source="hoge.swf")]」で読み込み+使用時の型指定はMovieClipAsset/MovieClipLoaderAsset
  • Flash9 Previewver9書き出ししたswfファイル+「[Embed(source="hoge.swf")]」で読み込み+使用時の型指定はMovieClipAsset/MovieClipLoaderAsset
  • Flash9 Previewver9書き出ししたシンボル含むswf+「[Embed(source="hoge.swf",symbol="Fuga")]」で読み込み+使用時の型指定はSpriteAsset
    • ※ライブラリ内にムービークリップシンボル(名前は適当)がある
    • ※そいつには「リンケージ」の画面でクラス名「Fuga」が指定されている
    • ※クラスは「自動生成」扱い、かつ、そのMCは1フレームのアニメーションなしのもの)

っていうパターンでうまく読み込めるのは確認できた。「swfファイル内の特定のシンボル」でなければ結構素直にいける感じ。
Sprite〜とMovieClip〜は「静止画」と「タイムライン有り」の違い、的なイメージで大きな間違いはなさそう。MovieClipLoaderAssetとMovieClipAssetの違いはイマイチよくわからないのですが、何かご存知の方いませんか…orz

ちなみに上記内容はヘルプの「Flex 2 Developer's Guide > Flex Programming Topics > Embedding Assets > Embedding asset types」あたりに記載がありました。

静止ベクター画像の場合はSVGも使える、みたいな記述があったんで、後でSVGも試してみよ。(※SVGの場合はSpriteAsset、の模様)

しかしFlexのヘルプ見てると、プレビュー版じゃないFlash9IDEの使用が前提になってる記述があるようなないような、そんな印象も…。Flash9もUIとか結構変わってきそうな予感がしますね。