• ベストアンサー

外部テキストのタグ

外部テキストを読み込ませることは出来るのですが・・・ タグがどうしても表示されてしまいます。 「テキストをHTMLとしてレンダリング」というチェックをしてるのですが、 タグが表示されてしまいます。 どうしたらいいのか分かる方いらっしゃいますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

#1です。 まず、#1の補足ですが。 テキストフィールドを選択して「プロパティ」パネルを見ると、「テキストを HTML としてレンダリング」というボタンがあります。 これを ON にしておくと、スクリプトで改めて HTML を有効にしなくても、最初から HTML が有効になります。 ただし、#1にも書きました通り、このボタンや html プロパティで HTML を有効にしてあったとしても、読み込んだ変数を text プロパティに代入すると、タグが付いた状態で表示されてしまいます。 ---------------------------------------------- 「プロパティ」パネルで設定した文字の配置(中央揃え・右揃えなど)は、text または htmlText プロパティを書き換えた時点で無効になります。 しかし、テキストフィールドの細かいフォーマット(書式)を設定できる TextFormat というクラスを使って、再度フォーマットを設定することは可能です。 まず、TextFormat クラスのオブジェクトを作り、変更したい設定したいフォーマットを定義します。 文字の配置を変更するには、align というプロパティに配置を表す文字列を指定します。 left で左揃え、center で中央揃え、right で右揃えになります。 ジャスティファイ(均等割付)だけは、ダイナミックテキストでは利用できません。  //書式定義用オブジェクトの生成  format = new TextFormat();  //テキストを中央揃えに設定する  format.align = "center"; テキストフィールド(インスタンス名を” disp ”とします)にフォーマットを適用するスクリプトは、  disp.setTextFormat( format ); となります。 適用するタイミングですが、text や htmlText プロパティを書き換えると一部のフォーマットが無効になりますので、これらを書き換えた後に実行することになります。 #1でご紹介したスクリプトと合わせてまとめますと、  //書式定義用オブジェクトの生成  format = new TextFormat();  //テキストを中央揃えに設定する  format.align = "center";  //読み込み用オブジェクトの生成  load_obj = new LoadVars();  //Shift-JISで読み込む  System.useCodepage = true;  load_obj.load( "***.txt" );  //読み込み完了時の処理  load_obj.onLoad = function( success )  {   //正常に終了した場合のみ、テキストフィールドに表示   if( success )   {    //HTMLを有効にして表示    disp.html = true;    disp.htmlText = load_obj.test;    //中央揃えの書式を適用    disp.setTextFormat( format );   }  }; こんな感じになります。 TextFormat では、文字のサイズやフォント・箇条書き等も設定できます。 詳しくはヘルプなどをご参照ください。

EV2
質問者

お礼

解決しました。 何度もありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

読み込んだ変数は、どのようにして表示させていますでしょうか? テキストフィールドに表示する内容を管理しているプロパティを書き換える方法では、HTML を使う時と使わない時とでは、書き換えるプロパティが違います。 HTML タグを解釈(レンダリング)した状態で表示を更新するには、text プロパティの HTML 版である、htmlText というプロパティを書き換えます。 text プロパティを書き換えると、HTML を有効にしていても、タグが付いた状態で表示されてしまいます。 例えば、ステージにテキストフィールドを配置し、インスタンス名を” disp ”と付けたとします。 テキストファイルの内容が  test=<B><I>サンプル</I></B> だとして、これを読み込み、テキストフィールドのプロパティを書き換えてテキストフィールドに表示するスクリプトは、次のようになります。 このスクリプトは、メインのタイムラインのフレームに設定してください。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください)  //LoadVarsオブジェクトを生成  load_obj = new LoadVars();  //Shift-JISで読み込む  System.useCodepage = true;  load_obj.load( "***.txt" );  //読み込み完了時の処理  load_obj.onLoad = function( success )  {   //正常に終了した場合のみ、テキストフィールドに表示   if( success )   {    //HTMLを有効にして表示    disp.html = true;    disp.htmlText = load_obj.test;   }  }; テキストファイルやCGIから変数を読み込むには、loadVariables アクション(もしくは MovieClip クラスの loadVariables メソッド)か LoadVars クラスを使います。 外部から変数を読み込む時は、変数の読み込みが完了したことを確認してから先の処理をした方が安全です。 LoadVars で読み込んだ時は、読み込み完了時に実行する処理を定義する、onLoad というイベントハンドラが使えます。 上記のスクリプトでは、これを利用して、読み込みの完了を待ってテキストフィールドの表示を更新しています。 なお、LoadVars クラスを使って読み込んだ場合は、読み込まれた変数は、読み込みを担当した LoadVars クラスのオブジェクト(上記のスクリプトでは load_obj )のものになっています。 読み込んだ変数の内容を見るには  load_obj.変数名 となりますので、ご注意ください。

EV2
質問者

お礼

早速試したところ出来ました! スクリプトにはあまり詳しくないもので・・・検索で出てきた方法を試してました。一つはやたら長いスクリプトなうえにタグがそのまま出てきてしまい・・・もう一つの簡単なスクリプトでは、ムービープレビューではタグが消えるものの、実際表示するHTMLと組み合わせるとタグが残ってしまいました。 どちらもタグを有効にするには「”テキストをHTMLとしてレンダリング”にチェックをする」でした。スクリプトで制御する方法までは検索では出てきませんでした・・・ もう一つお尋ねしても宜しいでしょうか。テキストプロパティで「中央揃え」や「右揃え」などを指定しても、読み込んだテキストには反映されないのでしょうか・・・よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A