ホーム >> 左脳Script >> Adobe AIR >> Flex >> Embed で テキスト を埋め込むには

Embed で テキスト を埋め込むには


Action Script 3 のデータ埋め込みについて。

Flex の HTMLコントロールに予め固定のドキュメントを指定したかったので、

<mx:HTML width="0%" height="100%" htmlText="@embed(source='help.html')"/>
こんな風に書けたらなぁ・・・と思いつつ、ちょっと調べてみました。

ちなみに、上記の記述は「htmlTextは@embedに対応して無いよ」と怒られました。

Embed

as3 で、「データを埋め込む」となると、大抵は Embed を使う事になると思います。

以下、pngファイルイメージ埋め込みの例。→参照:アセットの埋め込み

<mx:Script>
    <![CDATA[
        [Embed(source = "smp.png")][Bindable]public var imgSample:Class;
    ]]>
</mx:Script>
<mx:Image source="{imgSample}"/>

jpg、png、gif、swf、mp3あたりは拡張子からデータ種別を自動判別してくれるようです。
→参考:アプリケーションアセットの埋め込み

これら以外のデータを指定する場合や、データファイルの拡張子から内容が判別できない場合、意図的にデータ型を指定したい場合は、mimetype 指定をする必要があります。
しかし、アセットの埋め込みについてに書かれているように、指定できる型は限られていて、テキストやHTML、バイナリデータなどは全てapplication/octet-stream」を明示的に指定する必要があります。
コンパイラが型を認識できないと、エラーが出てしまうのです。


結局

結局、冒頭にあったコードは以下のようにしてやりたかったことを実現できる事が判りました。

<mx:Script>
    <![CDATA[
        [Embed(source = "help.html", mimeType="application/octet-stream")]
        public var helpDoc:Class;
    ]]>
</mx:Script>
<mx:HTML width="0%" height="100%" htmlText="{new helpDoc()}"/>

テキストもバイナリデータ列として取り込まれるようです。エンコードが必要なテキストを扱う場合は、データを扱う前にデコードをするなどの工夫が必要になります。




トラックバック(0)

トラックバックURL: http://n-yagi.0r2.net/sanoupulurun/mt-tb.cgi/241

コメントする

ホーム >> 左脳Script >> Adobe AIR >> Flex >> Embed で テキスト を埋め込むには

アーカイブ

このブログ記事について

このページは、n-yagiが2009年12月16日 19:07に書いたブログ記事です。

ひとつ前のブログ記事は「ニコニコ動画をダウンロードするには」です。

次のブログ記事は「今更、Flexコンポーネント で FLV Player を」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。