サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

TextFieldに<img>タグで画像が表示できない

ID: FN0401001 Product: Flash

Platform: All
Version: MX 2004

1. 現象
Flash MX 2004から、TextFieldインスタンスに設定するHTMLテキストとして<img>タグが使えるようになりました。しかし、<img>タグで指定した画像を、表示できないことがあります。

2. 原因
[1]たとえば、メインのタイムラインにTextFieldインスタンスmy_txtを配置して、以下のスクリプトを記述しても、JPEG画像image.jpgは表示されません。外部JPEGファイルは、SWFおよびHTMLと同階層に保存されているものとします。

_root.my_txt.html = true;
_root.my_txt.htmlText = "<img src='image.jpg'>";

'TextField.htmlText'プロパティに<img>タグを含んだHTMLテキストを設定する場合、<img>タグ以外にテキストや他のタグが存在しないと、指定した画像が表示されないようです[*1]。

[2]拡張子が".JPG"のように大文字の場合、<img>タグでイメージデータを読込むことができません(Flash Player 7.0r19)[*1]。

[*1] [1][2]ともにFlash 8からFlash Player 8に書出した場合は、問題が解消されているようです(Flash 8.0/Mac OS X.4.6確認)。

3. 対処法
[1]'TextField.htmlText'プロパティに<img>タグを含むHTMLテキストを設定する場合には、<img>タグ以外にテキストか他のタグを挿入してください。画像以外を表示したくないときには、改行の<br>タグやスペースの&nbsp;を<img>タグの後に追加します。

以下のスクリプトなら、TextFieldインスタンスに<img>タグで指定した画像を表示することができます。

_root.my_txt.html = true;
_root.my_txt.multiline = true;  // [*2]
_root.my_txt.wordWrap = true;  // [*2]
_root.my_txt.htmlText = "<img src='image.jpg'><br>";

サンプルのSWFは、HTMLテキストの内容を自由に編集したうえ、ボタンによりHTMLでレンダリングすることができます。ボタンをもう1度クリックすると、HTMLテキストの表示に戻ります(ソースFLAファイル/Zip圧縮/約24KB)。

[*2] <IMG>タグの後に<BR>などのタグを加えた場合には、TextFieldインスタンスを折返しなしの複数行に設定しておく必要があります。この設定は、スクリプトでなく、オーサリング時に[プロパティインスペクタ]で行っても結構です。

[2]<img>タグで表示するイメージファイルには、大文字の拡張子を使用しないでください。

上記サンプルSWFと同階層に、JPEG画像ファイル"CAPS.JPG"が配置してあります。しかし、<img>タグにこのファイル名を指定して、TextFieldに表示することはできません。

_____

作成者: 野中文雄
更新日: 2006年6月4日 注釈[*1]としてFlash Player 8書出しの結果を追加
更新日: 2004年8月13日 注釈[*2]の追加とレイアウトの一部変更
更新日: 2004年7月4日 原因および対処法の[2]として拡張子の問題を追加
作成日: 2004年1月5日


Copyright © 2001-2004 Fumio Nonaka.  All rights reserved.