アクション_Flash
アクション
動きを「プログラム」するときに使用するウィンドウです。Flashでは「ActionScript」というスクリプト言語(Javaライク)で個々の要素を制御することができます。たとえば、テキストを配置した場合、そのテキスト文字列・色・表示位置などをプログラムにて変更することができます。
ActionScriptテキストエディタでの環境設定
デフォルト状態では、背景が白でテキストが黒のテキストエディタになっています。が、一般的に(好みかもしれないですが)プログラムを書く場合はずっとソースコードとにらめっこするわけですので、疲れない設定にすることをお勧めします。エディタでの色を変更することができます。トップメニューの[編集(E)]-[環境設定(S)...]にて、「環境設定」ダイアログが表示されます。ここで、「ActionScript」タブを選択します。
テキストの色・背景色・フォント・フォントサイズを変更することができます。等幅にするために「MS ゴシック」を選択しています。
簡単なActionScriptの使用例
ここでは、簡単に画面に時間(時:分:秒)が文字列として表示され、逐次更新されるサンプルを作ってみます。
ツールより「テキストツール」選択し、文字列をドキュメントに配置します。
このテキストのプロパティは以下のようにしています。ここで注意点として、テキストの種類として「ダイナミックテキスト」、フォントは「_等幅」を選択するようにしてください。フォントは他OSでは鬼門になるところでして、依存関係が少ない「等幅」を選択することで、他OSに移行したときのトラブルを抑えます(ただ、完全にイコールではない点も注意してください)。また、「ダイナミックテキスト」を選択することで、ActionScriptから表示文字列を変更することができるようになります。ActionScriptでのテキスト名として「ItemClock」と指定しています。
タイムラインは以下のようにして、アクション用のレイヤを追加している点に注目してください。別にアクション専用レイヤを作る必要はないのですが、規模が大きくなってきた場合に分けたほうが可読性が増します。
この、アクション用のレイヤの1フレーム目にてActionScriptの記述を行います。
あ、それからアニメーションする(画面更新する)には、必ず2フレーム以降を空でいいですので作成するようにしておいてください。こうしないと、1フレーム目〜2フレーム目となって1フレーム目に戻る、ということができなくなります。
アクションウィンドウにて、ActionScriptのソースを記述します。タイムライン上ではActionScript記述があるフレームにて「a」のマークがつきます。
ActionScriptのソース部は以下のようになります。これは、現在の時分秒を取得して(t = new Date()にて時間を取得)「ItemClock」で示される文字列のtext属性として、「時間:分:秒」の形で代入しています。
//時:分:秒を「ItemClock」に文字列として指定する t = new Date(); h = t.getHours(); m = t.getMinutes(); s = t.getSeconds(); ItemClock.text = String(h) + ":" + String(m) + ":" + String(s);
このときの「t」が日付情報取得用のオブジェクトです。「getHours()」にて時間を数値で取得します(0-24)。「getMinutes()」にて分を数値で取得します(0-59)。「getSeconds()」にて秒を数値で取得します(0-59)。
そして、「ItemClock」の「text」として(ItemClock.text)、時分秒を文字列に変換しつつ連結していきます。
ActionScriptでは、あいまいではありますが文字列と数値の区別があります。「String(1024)」とすることで、数値「1024」を文字列の"1024"に変換することになります。
逆に文字列を数値に変換するには「cou = parseInt("1024");」のようにします。
以上でswfファイルを生成すると、以下のように1秒ごとにカウントアップされるデジタル時計ができます。
Flash swfファイル:clock1.swf(340)
Flashソース:clock1.fla(373)
Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.