!!!アクション 動きを「プログラム」するときに使用するウィンドウです。 Flashでは「ActionScript」というスクリプト言語(Javaライク)で 個々の要素を制御することができます。 たとえば、テキストを配置した場合、そのテキスト文字列・色・表示位置などを プログラムにて変更することができます。 {{ref_image flash_as_20040709.png}} !!ActionScriptテキストエディタでの環境設定 デフォルト状態では、背景が白でテキストが黒のテキストエディタになっています。 が、一般的に(好みかもしれないですが)プログラムを書く場合は ずっとソースコードとにらめっこするわけですので、疲れない設定にする ことをお勧めします。 エディタでの色を変更することができます。 トップメニューの[編集(E)]-[環境設定(S)...]にて、「環境設定」ダイアログが表示されます。 ここで、「ActionScript」タブを選択します。 {{ref_image flash_as2_20040709.png}} テキストの色・背景色・フォント・フォントサイズを変更することができます。 等幅にするために「MS ゴシック」を選択しています。 !!簡単なActionScriptの使用例 ここでは、簡単に画面に時間(時:分:秒)が文字列として表示され、逐次更新されるサンプルを 作ってみます。 [[ツール|ツール_Flash]]より「テキストツール」選択し、文字列をドキュメントに 配置します。 {{ref_image flash_asclock_20040709.png}} このテキストのプロパティは以下のようにしています。 ここで注意点として、テキストの種類として「ダイナミックテキスト」、 フォントは「_等幅」を選択するようにしてください。 フォントは他OSでは鬼門になるところでして、依存関係が少ない「等幅」を選択する ことで、他OSに移行したときのトラブルを抑えます(ただ、完全にイコールでは ない点も注意してください)。 また、「ダイナミックテキスト」を選択することで、ActionScriptから 表示文字列を変更することができるようになります。 ActionScriptでのテキスト名として「ItemClock」と指定しています。 {{ref_image flash_asclock2_20040709.png}} タイムラインは以下のようにして、アクション用のレイヤを追加している点に 注目してください。別にアクション専用レイヤを作る必要はないのですが、 規模が大きくなってきた場合に分けたほうが可読性が増します。 {{ref_image flash_asclock3_20040709.png}} この、アクション用のレイヤの1フレーム目にてActionScriptの記述を行います。 あ、それからアニメーションする(画面更新する)には、必ず2フレーム以降を 空でいいですので作成するようにしておいてください。 こうしないと、1フレーム目〜2フレーム目となって1フレーム目に戻る、ということが できなくなります。 アクションウィンドウにて、ActionScriptのソースを記述します。 タイムライン上ではActionScript記述があるフレームにて「a」のマークがつきます。 {{ref_image flash_asclock4_20040709.png}} 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秒ごとにカウントアップされるデジタル時計ができます。 {{ref_image flash_asclock5_20040709.png}} Flash swfファイル:{{ref clock1.swf}} Flashソース:{{ref clock1.fla}}