「FLash CS4」体験版ダウンロードはこちらから
「Adobe CS4」購入はこちらから
前回、テキストフィールドにhtmlを表示してデジタル時計を制作していくという方針を決定した。今回はいよいよ実践していこう。サンプルファイルは、こちらからダウンロードできる。
htmlをテキストフィールドに表示する
Flashのテキストフィールドは、素のテキスト(文字列)以外にも、htmlを指定することで、表示内容を調整することができる。その基本的な方法は、次の通りだ。
テキストフィールドインスタンス.htmlText = "(html文書)"
すこし、テストしてみよう。「ソース:firstHtml.fla」
1.ステージにfirstHtml_txtというテキストフィールドを作成する。
次のアクションスクリプトを記述する。
firstHtml_txt.htmlText = "<font color='#ff0000'>トゴル</font>"
「トゴル」という文字が赤く表示されただろうか。この方法で、デジタル時計に色を付けられるという目処がつくはずだ。しかし、このfontという古いタグを使用する方法は、違和感があるかもしれない。そこでもうひと工夫してみよう。
テキストフィールドにスタイルシートを適用する
Flashのテキストフィールドは、htmlを表示可能だが、同時にスタイルシート(※「Flash CS4」で使用できるスタイルシートのバージョンはCSS1まで。なお現在Webで主流として使用されているCSS2.1と比べれば未対応のスタイルが多いので、注意が必要)も適用できる。当然、色指定もCSSで可能だ。以下のの手順でCSS対応を行った。
1.テキストフィールドをdisplay_txtに統合
3個あったテキストフィールドを1個に統合し、画面いっぱいのサイズで新たなテキストフィールド(ダイナミックテキスト、インスタンス名「display_txt」)を作成しておく。
2.テキスト表示部分をCSS対応のhtmlに書き換える
display_txtに代入するhtmlテキストには、CSSに対応するようにclass属性などを付加する必要がある。そのため、テキストフィールドへ代入するActionScriptは次のようになる。
(修正前)
yearMonthDay_txt.text = "2010.12.08"
youbi_txt.text = "TUE"
hoursMinutesSeconds_txt.text = "23:59.59"
(修正後)
<p><span class="year">2010</span><span class="y2m">.</span><span class="month">12</span><span class="m2d">.</span><span class="date">08</span><br><span class="day">TUE</span><br><span class="hours">23</span><span class="h2m">:</span><span class="minutes">59</span><span class="m2s">.</span><span class="seconds">58</span></p>
3.上記htmlを見ながら、class属性などに対応するCSSを作成する。
CSS
p{text-align:right;font-family:LiquidCrystal,Arial,Helvetica;}
.year{color:#CBFF00;font-size:20;}
.y2m{color:#CBFF00;font-size:20;}
.month{color:#99FF00;font-size:40;}
.m2d{color:#99FF00;font-size:20;}
.date{color:#65FF00;font-size:30;}
.day{color:#00CC33;font-size:18;}
.hours{color:#FF00D9;font-size:80;}
.h2m{color:#FF00D9;font-size:80;}
.minutes{color:#00CBFF;font-size:80;}
.m2s{color:#00CBFF;font-size:80;}
.seconds{color:#FFFF32;font-size:80;}
上記の色やサイズを指定したCSSは編集しやすいようにテキストフィールド(ダイナミック、インスタンス名「css_txt」)を作成してそこに入れておく。また、1行目のfont-familyに指定したフォントは、すくなくとも開発環境にインストールされている必要があるので注意しよう。
左がステージいっぱいに広げて配置したdisplay_txt、右がCSSを格納しておくcss_txtだ。
4.CSSをテキストフィールドに適用
テキストフィールドにCSSを適用する場合は、styleSheetプロパティを使用しよう。次のActionScript(フレームに記述)でテキストフィールド「display_txt」のstyleSheetプロパティにcss_txtの内容から解析したCSSを適用する。
var css:StyleSheet = new StyleSheet()
css.parseCSS(css_txt.text)
display_txt.styleSheet = css
これで、最初にデザインした通りにActionScriptを使用したデジタル時計が出来るはずだ。「ソース:digitalWatch_03.fla」
|
デザインを変更したい場合はCSSに手を加えよう。Flashで対応しているCSSのプロパティについてはここを参照しよう。次回は、時間を取得してダイナミックに表示内容を更新する予定だ。
伊藤のりゆき(NORI)
有限会社トゴル・カンパニー代表。オーサリングエンジニア。Flashでの制作を中心に活動。ライターとしてFlash関連書籍や雑誌記事の執筆を行うほか、AdobeTVでも解説。著書の「ActionScript3.0辞典」が発売中。NORIでつぶやき中。