- ベストアンサー
FLASH8にてテキストエリア内の文字サイズ変更
質問させていただきます。 FLASH8にて コンポーネントの「User Interface」の「TexeArea」で 外部からテキストデータを読込むのですが CCSをいじっても文字サイズが変わりません。 どのようにすればサイズを変更できるのでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
TextArea 内の全体の文字サイズを変更したいだけでしたら、setStyle メソッドで” fontSize ”スタイルを使って指定する方法が簡単です。 TextArea コンポーネントのインスタンス名が” disp ”だとすると、このインスタンスのスタイルを設定するスクリプトは disp.setStyle( "スタイル名" , 値 ); です。 値に何を渡すかはスタイルにより異なり、数値の場合もあれば文字列を受け取るスタイルもあります。 文字のサイズを変更するスタイル名は” fontSize ”で、値には数値を渡します。 例えば、文字のサイズを 20 pt にするなら disp.setStyle( "fontSize" , 20 ); というように書きます。 このスクリプトは、TextArea コンポーネントのインスタンスを配置したタイムラインのフレームに設定してください。 インスタンスのターゲットパスさえ間違えなければ、他の場所にも設定できます。 他にも、文字の色を指定する” color ”、背景色を変える” backgroundColor ”スタイルなども使えます。 その他のスタイルはヘルプをご参考になさってください。 ・ Flash ドキュメンテーション: TextArea コンポーネントでのスタイルの使用 http://livedocs.adobe.com/flash/8_jp/main/00004040.html ----------------------------------------------------------------- TextArea コンポーネントでも普通のダイナミックテキストのテキストフィールドと同様に、HTML タグを使って文字を装飾できます。 文字のサイズを指定するには、<FONT> タグの size オプションを使います。 例えば、読み込むテキストファイル” test.txt ”の内容が (↓各行頭に全角のスペースが入っています。コピーする際はご注意ください) test=<FONT size='20'>ここだけ大きく</FONT> あとは普通のサイズで だとします。 ステージに TextArea コンポーネントのインスタンス” disp ”があるとします。 上記のテキストファイルを読み込んで表示するスクリプトは、次のようになります。 このスクリプトは、メインのタイムラインのフレームに設定してください。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください) //TextAreaのHTMLを有効にする disp.html = true; //オブジェクトの作成と、読み込みが済んだ時の処理を定義 load_obj = new LoadVars(); load_obj.onLoad = function( success ) { if( success ) { //TextAreaに表示 disp.text = this.test; } }; //Shift-JISで読み込む System.useCodepage = true; load_obj.load( "test.txt" ); ダイナミックテキストのテキストフィールドで HTML タグをレンダリングして表示するには、html プロパティを true に設定し、” htmlText ”プロパティに読み込んだ変数や文字列などを代入します。 TextArea コンポーネントでも html プロパティを true にするところは同じですが、表示する文字列は” text ”プロパティに代入します。 ダイナミックテキストのテキストフィールドですと、text プロパティを書き換えると HTML タグごと表示されてしまうところです。 しかし、TextArea コンポーネントには htmlText プロパティがなく、html プロパティの値に応じて自動的に判別されます。 ダイナミックテキスト式に htmlText プロパティを書き換えると何も表示されなくなってしまいますので、ご注意ください。 <FONT> タグで文字サイズを指定すると、どうも fontSize スタイルが利かず、タグで指定していない部分はデフォルトの 10 pt に固定されてしまうようです。 10 pt 以外のサイズにしたい場合は、全ての部分を <FONT> タグでサイズを指定する必要があるかと思います。 *********************** TextArea コンポーネントでも、スタイルシートでスタイルを指定することができます。 スタイルシートの使用方法を全部書くと長くなりますので、ここでは要点だけをご紹介します。 スタイルシートも HTML タグによる装飾の一種ですから、TextArea コンポーネントのインスタンスで HTML を有効にします。 先のスクリプトと同じ要領で、html プロパティを true に設定してください。 スタイルシートは TextField クラスの子クラスである TextField.StyleSheet クラスで読み込みます。 読み込み用のオブジェクトを作り、load メソッドで外部 css ファイルを読み込むか、setStyle メソッドでスタイルを定義します。 こうして定義されたスタイルを、TextArea コンポーネントのインスタンスに関連付けます。 TextArea コンポーネントは” styleSheet ”というプロパティを持っています。 このプロパティに、先ほどスタイルを定義するために作った TextField.StyleSheet クラスのオブジェクトを指定します。 クラス名とは大文字・小文字が異なるので、間違えないようにご注意ください。 ----------------------------------------------------------------- TextArea コンポーネントは陰影の付いたおしゃれな枠や、スクロールバーが自動で表示されたりするなど高機能で便利は便利なのですが、普通のテキストフィールドよりも扱いが面倒です。 特に、スクリプトまたは HTML タグでしか書式を設定できない点がとても不便です。 Flash MX 2004 でスクロールバーコンポーネントの代わりに登場した TextArea コンポーネントですが、このような点が今ひとつ不評だったためか、後のアップデータでスクロールバーのコンポーネントが復活しました。 Flash 8 では最初から UIScrollBar のコンポーネントが入っていて、テキストフィールドに簡単にスクロールバーを付けられるようになっています。 普通のテキストフィールドならスクリプトだけでなく「プロパティ」パネルで書式を変更できますし、HTML タグやスタイルシートでの装飾も可能です。 どうしても TextArea コンポーネントでなければならない理由がないのであれば、テキストフィールド+ UIScrollBar の組み合わせの方が扱いやすいと思います。
その他の回答 (2)
- suo2k
- ベストアンサー率44% (183/408)
そのCSS、FLASHの中で読み込んでいますか? HTMLファイル内で読み込んでも反映されませんよ。
- MAN_MA_RUI
- ベストアンサー率41% (426/1024)
FlashをCSSで操作することは出来ません。 通常のテキストはブラウザがHTMLとCSSをそれぞれ読み込んで描画処理を行っていますが、FlashはブラウザがFlash Playerの機能を呼び出し、Flash Playerに表示を行わせているためです。 通常のテキストはブラウザが管理する範囲であるためCSSの指示をHTMLの表示に適用できるのですが、FlashはFlash Playerの管理領域なのでCSSの命令が伝えられないのです。 これに関してはズームなどの処理を行ってもどうにも出来なかったはずです。 Flash側に文字サイズ変更のオプションをつけるしかないと思いますよ。