ActionScriptとは
ActionScriptとは
- ActionScript(アクションスクリプト)とは、アドビシステムズ社の製品であるFlashに使用されるプログラミング言語
- ECMAScript(ECMA-262)を拡張したスクリプト(European Computer Manufacturer Association)
ActionScriptでできること
- タイムラインに関係なく動くアニメーションを作る
- ユーザーインターフェースの作成に役立てる
- サーバーアプリケーションとデータのやりとりをする
- サウンド・ビデオをストリーミング配信する
ActionScriptを学ぶ理由
- 各ユーザーが個別の体験を得られる環境の提供
- ムービークリップとそのプロパティに対するより柔軟な制御
- ムービー内の要素の、プログラムによる(タイムラインを使わない)アニメーション化
- フォームやチャットプログラムなどを作成するためのデータ入出力
- 時間経過や現在の日付に反応する動的なプロジェクトの作成
- サウンドのボリュームやパンの動的な制御
ActionScript の 6W1H
- What「何がしたいのか」を考える
- How「どうすればよいのか」を考える
- When「動きの流れ」を考える
- Who「それぞれの役割」を考える
- What「それぞれの関係」を考える
- Write「Script」を書いてる
- Why「なぜ動かないか」を考える
ActionScriptの実行環境
コンパイラ型とインタプリタ型
- どちらも人間が記述したテキスト形式
- 正確には「ソース・プログラム」と呼びます
- ソース・プログラムはそのままではコンピューターには理解できないため、「オブジェクト・プログラム」と呼ばれるコンピューターが直接実行できる形式に変化する必要があります
- オブジェクト・プログラムの中身はコンピューターのCPUが直接実行できる形式です
- 機械用の言語という意味で、「機械語(マシン語)」と呼びます
コンパイラ型
- ソース・プログラムを「コンパイル」という処理を行なって一気にオブジェクト・プログラムに変換します
- その処理を行うプログラムのことを「コンパイラ」と呼びます
- ソース・プログラムはテキストファイルですが、オブジェクト・プログラムは「バイナリファイル」です
インタプリタ型
- オブジェクト・プログラムを作成することなく、インタプリタと呼ばれるプログラムが、ソース・プログラムを逐次解釈しながら実行していきます
- ActionScriptの仲間である「JavaScript」は、インタプリタ型です
ActionScriptは、両方の機能をもつ中間のタイプです。
AVM (ActionScript Virtual Machine)と呼ばれる仮想環境で動作するマシン語のコードです。
インタプリタ型の言語のように手軽に使用できるプログラム言語のことを「スクリプト言語」と呼びます。
アクションの種類
アクションには2種類の記述の方法があります。
- オブジェクトアクション
- フレームアクション
※ActionScript3.0は、フレームアクションのみ
オブジェクトアクション
- ムービークリップやボタンに直接割り当てる
- 記述したアクションは、そのインスタンスにだけ作用する
- どのオブジェクトが何を実行するのか、直感的にわかりやすい
- あとで見直したとき、どのオブジェクトにどんなアクションを書いたのかわからなくなりやすい
- アクションに制限がある
オブジェクトアクションの書き方
- ステージ上のインスタンスを選択し、アクションパネルに記述する
フレームアクション
フレームアクションの書き方
- アクションの記述用レイヤーを作成
- タイムラインの空白キーフレームを選択し、アクションパネルに記述する
アクションパネル
初心者は、いま書いているActionが「フレーム」になのか「オブジェクト」になのかがわからないときがあります。
まず、「アクションパネルの左上」に注意してみましょう。
フレームアクション
オブジェクトアクション
初心者の記述ミスの原因は、記述しているところが「フレーム」か「オブジェクト」かを確認せずに記述をはじめることです。
演習
【A01】
変数を使った計算式を書き、出力パネルに結果を表示させなさい。
10×(8+12)÷4 の値は?
var num1:Number = 10; var num2:Number = 8; var num3:Number = 12; var num4:Number = 4; total = num1 * (num2 + num3) / num4; trace(total);
【A02】
「車Aの時速は100km」「車Bの時速は140km」
東京←→大阪の距離は560km
どちらが何時間早く着くか求めなさい?
var speedA:Number = 100; //車Aのスピード var speedB:Number = 140; //車Bのスピード var distance:Number = 560; //東京→大阪間の距離 //時間を求める計算式 timeA = distance / speedA; timeB = distance / speedB; ans = timeA - timeB trace(ans);
【A03】
「ビールを12杯:1杯500円」「ウーロン茶を4杯:1杯300円」「サラダを2皿:1皿600円」「チキンを2皿:1皿800円」
「ピザを2枚:1枚800円」
これを5人で割り勘にしたときの一人あたりの金額を求めなさい。
var beer:Number = 500; //ビールの値段 var uron:Number = 300; //ウーロン茶の値段 var salad:Number = 600; //サラダの値段 var chicken:Number = 800; //チキンの値段 var pizza:Number = 800; //ピザの値段 total = (beer * 12) + (uron * 4) + (salad * 2) + (chicken * 2) + (pizza * 2);// 合計を計算 var ninzu:Number = 5; hitoribun = total / ninzu; //一人当たりの金額 trace("一人当たりの金額は"+hitoribun+"円です。");
【A04】
自分の氏名を出力パネルに表示しなさい。
var seiStr:String = "山本"; var naStr:String = "武"; shimeiStr = seiStr + naStr; trace("私の名前は、" + shimeiStr + "です。");