ActionScript 3.0
基本からしっかりわかるActionScript 3.0
第1章
- 1-1 ActionScript 3.0 の特徴
- 本格的なプログラミング言語になった。
- 他の人のライブラリを利用しやすくなった。
- 書き方が厳密になり、計算速度が10倍速くなった。(2.0までは、あいまいな書き方でもFlashが解釈してくれた。そのため計算が遅かった)
- ボタンに直接スクリプトが書けなくなった。
- 1-2、1-3 Flashの作り方-2種-
- フレームアクションで作る
- クラスで作る
- プログラムだけを別のasファイルに書く
- システム全体を把握しやすいプログラムを書くことができる
- 1つのflaファイルと1つ(もしくは複数)のasファイルで作る
- 例:(flaファイル)(asファイル)(swf)
- テキストツールでクラシックテキスト-ダイナミックテキストのテキストボックスを作り、インスタンス名(disp_txt)をつける
- 名前を付けて保存
- ファイル→新規→ActionScript (AS)
- スクリプトを記入
- 名前を付けて保存(p20.as)(スクリプトのp20の部分と同じであればOK)
- flaファイルのプロパティのドキュメントクラスに、p20と記入(asファイルの名前と同じであればOK)(スクリプトの2か所=asファイル名=ドキュメントクラス)
- 1-4 スクリプトを書くパネル
第2章 プログラム とは
- 2-1 ActionScript の基本
- キーフレームに書く
- フレームが再生される(直前の)タイミングで、そのフレームに書かれているプログラムが実行される
- 1つのフレームに複数のプログラムが書かれている場合、上から下に、順番に実行される
- プログラムを全部実行してから、次のフレームに進む
- 書き方
- 1つの命令の最後には必ず、;(セミコロン)を書く
- 2-2 変数
- var は、variable(変数)の略
- 変数はデータ(数値や文字)を入れる箱
- 変数に名前をつけ、どのようなデータを入れるかを指定する (= 変数を宣言する)
- var a:int; (整数-int型-の変数aを作る)
- var coffee:String; (文字列-String型-の変数coffeeを作る)
- 宣言した変数には = でデータを入れる
- var a:int = 10; (整数の変数aを作り、10を入れる)
- var coffee:String = "キリマンジャロ"; (文字列の変数coffeeを作り、キリマンジャロを入れる)
- 変数の中身を確認するために、trace() を使う
- var a:int =30;
var coffee:String = "モカ";
trace(a,coffee); - traceの結果は、30 モカ(出力パネルに表示される)
- var a:int =30;
- 変数の名前のつけ方
- 半角英数文字、_(アンダースコア)、$(ドル)が使える
- 数字は先頭に使えない
- 予約語 は使えない(青色に変わるものは予約語。青色に変わらないものもあるので注意)
- 2つの単語を組み合わせる(fileName、start_btn、input_txtなど)
- 変数は、タイムラインのフレーム全体をとおして、1つしか宣言できない
- データの型
- 数値
- Number 整数や小数点付きの数値の型 var myWeight:Number = 45.5;
- int 整数。Numberより計算が早い var myAge:int = 12;
- uint 負のない整数。RGBカラー値などに使う var paintColor =0xff996633;
- 文字列
- String(文字列) var coffee:String = "ブルーマウンテン";
- 真偽 スイッチのオンオフに使ったり、条件判断を調べるときに使う
- Boolean(真偽) var playFlag:Boonlean = false;
- 数値
第3章 ムービークリップをコントロールする
- 3-1 ムービーを止めたり動かしたり(タイムラインとムービークリップは別。タイムラインを止めてもムービークリップは動き続ける。逆も然り。)
- stop();
- play();
- gotoAndPlay(フレーム番号かラベル名);
- gotoAndStop(フレーム番号かラベル名);
- nextFrame();
- prevFrame();
- 3-2 ムービークリップをコントロールする(そのステージで同じ名前は1回しか使えない、同姓同名のムービークリップは存在してはいけない)
- 3-3 ボタンを押したらストップ
- 3-4 位置や大きさを変える
- ボタン(a_btn)がクリックされたら、ムービークリップ(a_mc)の位置を、y座標0 に変える(スクリプト a_mc.y=0; )(swf)
- ボタン(a_btn)がクリックされたら、ムービークリップ(a_mc)の幅を400pxに変える(スクリプト a_mc.width = 400; )(swf)
- ボタン(a_btn)がクリックされたら、ムービークリップ(a_mc)の縦の倍率を2倍に変える(スクリプト a_mc.scaleY = 2;)(swf)
- ボタン(a_btn)がクリックされるたびに、ムービークリップ(a_mc)が20度ずつ時計回りに回転する(スクリプト a_mc.rotation += 20; )(swf)
- ボタン(a_btn)がクリックされたら、ムービークリップ(a_mc)を非表示にする(スクリプト a_mc.visible = false; )(swf)
- ボタン(a_btn)がクリックされたら、ムービークリップ(a_mc)の透明度を20%に変える(スクリプト a_mc.alpha = 0.2; )(swf)
- 3-5 ムービークリップの入れ子(パス)
- 3-6 かみしばいを作ってみよう(スクリプト)(swf)
- フレームで停止
- 次へボタンを押すと次のフレームに移動
- 前へボタンを押すと前のフレームに移動
第4章 スクリプトでムービークリップを作る
- 4-1 new、addChild、removeChild (セットで覚えよう)
- var a_mc:MovieClip = new MovieClip(); インスタント名がa_mcというムービークリップを作る
- addChild(a_mc); ステージに登場させる
- removeChild(a_mc); ステージから退場させる
- 4-2 作ってみよう (swf)
- 4-3 リンケージ設定
第5章 イベント処理
- 5-1 きっかけがあったら何かをする。もしくは、していた仕事をやめる
- ボタン(a_btn)をクリックしたら、ボタン(a_btn)の仕事をやめる(スクリプト)(swf)(?)
- 5-2 マウスを操作すると何かをする
- MouseEvent.CLICK ボタン(a_btn)をクリックしたら・・・
- 以下動作しない。もしくは未検証
- MouseEvent.DOUBLE_CLICK ボタン(a_btn)をダブルクリックしたら(?)
- MouseEvent.RIGHT_CLICK? ボタン(a_btn)を右クリックしたら(?)
- MouseEvent.MOUSE_DOWN ボタン(a_btn)でマウスボタンを押したら(?)
- MouseEvent.MOUSE_UP ボタン(a_btn)でマウスボタンから指を放したら(?)
- MouseEvent.MOUSE_MOVE 動いたら、文字列を表示する(スクリプト)※パブリッシュプレビュー-Flashでは動作確認できたが、swfファイルは動作不可。原因不明
- MouseEvent.MOUSE_OVER 各インスタンス(a_mc)に乗ったら文字列が表示される(スクリプト)(swf)
- MouseEvent.MOUSE_OUT 各インスタンスから離れたら(?)
- MouseEvent.ROLL_OVER ボタン(a_btn)にロールオーバーしたら(?)
- MouseEvent.ROLL_OUT ボタン(a_btn)にロールアウトしたら(?)
- 5-3 キーボードを押すと何かをする KeyboardEvent
- 5-4 フレームが進むたびに何かをする ENTER_FRAME
- その他のイベント(swfのないものは未検証)
- 5-5 Timer(パス)
- 5-6 作ってみよう(スクリプト)(swf)
- 素材を作る
(付録がないので、1から自力で作ります) - レイヤー、フレームを作る
- スクリプトを書く
- 苦労しました
- 回路から落ちたらゲームオーバーということなので、「回路(circuit)」がレイヤーの一番上になければならない
- ゴール(goalムービークリップ)を認識してくれないので、ひときわ大きな透明の四角を文字の上に重ねた
- 画像はIllustrator、Photoshop、Flashで作りました。
- 第6章、第7章、第8章、第9章、第10章、第11章、第12章(パス)
第13章 外部ファイルにアクセスする
- 13-2 外部画像、swfファイルを読み込む(スクリプト)(swf)
- コードスニペットをアレンジしました。(解析はパス)
- ジャンプではなく、ステージに読み込んでいます。クリア画面に、最初のボタンが透けていますし、URLが元のままです。
疑問点
- p.17 テキストだけで、ファイルサイズが52キロバイトもあるのはなぜ?(フォントの埋め込みはしていない)・・・OK
- 解決:TLFが原因。(クラシックに変更しました)
- p.26 コードスニペットはCS5の機能。CS4ではどうするのか?
- p.33 出力パネルとは?・・・OK
- 解決:出力パネルはウィンドウ-出力で表示される
- p.37 データ型の変換とは?イメージできないのでパス。動くものが作れるようになったら試してみます。
- p.82 ムービークリップを作り、退場させる。見えないのでわからない
- p.86 クラス名をわざわざ使う必要性が今ひとつわからない
- p.91 ボタン a_btn をクリックしたら、計算をする場合、 計算結果をどこにどう表示するのか?・・・OK
- 解決:出力パネル
- P.92 そのボタンの仕事を解除する
- 「ボタン」にどういう仕事をさせておけばよいのか?ボタンに自発的な仕事ができるのか?
- p.93 ボタンの名前はどこに表示されるのか?・・・OK
- 解決:出力パネル
- p.94 マウスの位置はどこに表示されるのか・・・OK
- 解決:出力パネル
- P.101 テキストフィールドをスクロールさせるには?
サーティファイ Flashクリエイター能力認定試験 CS4対応 出題範囲 (ActionScript)
- [アクション]パネルの使用
- [アクション]パネルを使用して、キーフレームにActionScriptを記述することができる。
- フレームまたはシーンへのジャンプ
- ムービーの再生と停止
- すべてのサウンドの停止
- ターゲットパスを指定した制御
- マウス操作へのアクション設定
- マウスイベントに割り当てるアクションを設定することができる。
- キーボード操作へのアクション設定
- キーボードイベントに割り当てるアクションを設定することができる。
- ムービークリップのプロパティ変更
- ステージ上の特定のムービークリップに対し、サイズ、位置、表示・非表示のプロパティを変更することができる。
- 指定したURLへのジャンプ
- 外部SWFファイルの読み込み
- URLRequestオブジェクト、Loaderオブジェクト、addChild()メソッドを使用して、外部SWFファイルをロードすることができる。未
出題範囲に対する疑問点
- stopAllSounds関数:ActionScript 3.0では、SoundMixer.stopAll();を使うのでは?(参考URL)
- 本番(CS4)ではCS5の機能であるコードスニペットが使えない。まる暗記するしかないか?