基本からしっかりわかるActionScript 3.0

第1章
  • 1-1 ActionScript 3.0 の特徴
    • 本格的なプログラミング言語になった。
    • 他の人のライブラリを利用しやすくなった。
    • 書き方が厳密になり、計算速度が10倍速くなった。(2.0までは、あいまいな書き方でもFlashが解釈してくれた。そのため計算が遅かった)
    • ボタンに直接スクリプトが書けなくなった。
  • 1-2、1-3 Flashの作り方-2種-
    • フレームアクションで作る
        • タイムライン上のフレームに書く
        • 目で見てタイミングをはかる
        • 1つのflaファイルをパブリッシュしてswfを作る
        • システムが大きくなると、どこにどんなプログラムを書いたのか、把握するのが大変(修正依頼があったときに困る)
      • 例:(スクリプト)(swf)
        1. テキストツールでクラシックテキスト-ダイナミックテキストのテキストボックスを作り、インスタンス名(disp_txt)をつける
        2. 1フレーム目を選択しアクションスクリプトを書く
    • クラスで作る
        • プログラムだけを別のasファイルに書く
        • システム全体を把握しやすいプログラムを書くことができる
        • 1つのflaファイルと1つ(もしくは複数)のasファイルで作る
      • 例:(flaファイル)(asファイル)(swf)
        1. テキストツールでクラシックテキスト-ダイナミックテキストのテキストボックスを作り、インスタンス名(disp_txt)をつける
        2. 名前を付けて保存
        3. ファイル→新規→ActionScript (AS)
        4. スクリプトを記入
        5. 名前を付けて保存(p20.as)(スクリプトのp20の部分と同じであればOK)
        6. flaファイルのプロパティのドキュメントクラスに、p20と記入(asファイルの名前と同じであればOK)(スクリプトの2か所=asファイル名=ドキュメントクラス)
  • 1-4 スクリプトを書くパネル
    • コードスニペットが便利
    • 例:(スクリプト)(swf)
      1. ボタンを作り、インスタンス名をつける
      2. ボタンを選択し、コードスニペットパネルを開く
      3. [アクション]をクリック
      4. [クリックしてWebページに移動]をクリック
      5. [現在のフレームに追加]をクリック
      6. URLを、目的の URL アドレスに置き換える
第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 モカ(出力パネルに表示される)
    • 変数の名前のつけ方
      • 半角英数文字、_(アンダースコア)、$(ドル)が使える
      • 数字は先頭に使えない
      • 予約語 は使えない(青色に変わるものは予約語。青色に変わらないものもあるので注意)
      • 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回しか使えない、同姓同名のムービークリップは存在してはいけない)
    • タイムラインからa_mcというインスタンス名のムービークリップを止める(スクリプト a_mc.stop(); )(swf)
    • 3つのムービークリップを止める(スクリプト)(swf)
  • 3-3 ボタンを押したらストップ
    • インスタンス名-a_btnのボタンがクリックされたら、ムービーをストップ(スクリプト stop(); )(swf)
  • 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)
    • ボタンをクリックすると、(フレーム2に移動し)赤い円が表示される
  • 4-3 リンケージ設定
    • クラスの名前をつけたムービークリップが表示される (ボタンをクリックすると、フレーム2に移動し、ムービークリップが表示される)(swf)
      1. ムービークリップを作る
      2. ライブラリでムービークリップを選択し、右クリック
      3. リンケージプロパティダイアログボックスが表示されるので、[クラス]に名前を書く (ここではMone)
      4. OKをクリック
第5章 イベント処理
  • 5-1 きっかけがあったら何かをする。もしくは、していた仕事をやめる
    • ボタン(a_btn)をクリックしたら、ボタン(a_btn)の仕事をやめる(スクリプト)(swf)(?)
  • 5-2 マウスを操作すると何かをする
    • MouseEvent.CLICK ボタン(a_btn)をクリックしたら・・・
      • 1+1の計算結果を出力パネルに表示する(スクリプト trace(1+1); )
      • 押したボタンが右に30移動する(スクリプト e.target.x += 30; )(swf)
      • 仕事をやめる(スクリプト)(swf)(?)
      • ボタンの名前を出力パネルに表示する(スクリプト)
      • ムービークリップをクリックしたら、ムービークリップの名前を出力パネルに表示する(スクリプト)
      • マウスの位置を出力パネルに表示する(スクリプト)(log)
    • 以下動作しない。もしくは未検証
      • 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 
    • KEY_DOWN キーボードを押すと
      • ムービークリップが右に10移動する(スクリプト)(swf)※パブリッシュプレビュー-Flashでは動作確認できたが、swfファイルは動作不可。原因不明
      • 押したキーコードを出力パネルに表示する(スクリプト)(log)
      • 押したキーコードとShiftキーが同時に押されているかどうかを出力パネルに表示する(スクリプト)(log)
    • KEY_UP キーボードから指を放すと
      • 放した文字コードを出力パネルに表示する(スクリプト)
  • 5-4 フレームが進むたびに何かをする ENTER_FRAME
    • フレームが進むたびに、出力パネルに文字列を表示し続ける(スクリプト)(log)
    • ムービークリップ(a_mc)のフレームが進むたびに、出力パネルに文字列を表示し続ける(スクリプト)
  • その他のイベント(swfのないものは未検証)
    • Event.ENTER_FRAME フレームが進んだとき
    • Event.RESIZE Flash Playerがリサイズされたとき
    • Event.PROGRESS ダウンロード中にデータを受信したとき
    • Event.COMPLETE ダウンロードが完了したとき
    • Event.CHANGE テキストフィールドを変更したとき
    • Event.SCROLL テキストフィールドをスクロールしたとき(?)
    • Event.LEAVE ブラウザ上のswfの外にマウスが出たとき、テキストフィールドに文字列を表示する(スクリプト)(swf)
  • 5-5 Timer(パス)
  • 5-6 作ってみよう(スクリプト)(swf)
    1. 素材を作る 
      (付録がないので、1から自力で作ります)
    2. レイヤー、フレームを作る
    3. スクリプトを書く
    • 苦労しました
      1. 回路から落ちたらゲームオーバーということなので、「回路(circuit)」がレイヤーの一番上になければならない
      2. ゴール(goalムービークリップ)を認識してくれないので、ひときわ大きな透明の四角を文字の上に重ねた
      3. 画像は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)
  1. [アクション]パネルの使用
    • [アクション]パネルを使用して、キーフレームにActionScriptを記述することができる。
  2. フレームまたはシーンへのジャンプ
    • gotoAndPlay関数、gotoAndStop関数を使用して、特定のフレームまたはシーンへのジャンプを設定することができる。(スクリプト) (swf)
  3. ムービーの再生と停止
    • play()メソッドとstop()メソッドを使用し、特定の間隔でムービーを再生および停止することができる。 (スクリプト)(swf)
  4. すべてのサウンドの停止
    • stopAllSounds関数を使用して、メインムービーのタイムラインを中断せずにオーディオトラックを停止することができる。 (スクリプト)(swf)
  5. ターゲットパスを指定した制御
    • ステージ上の特定のムービークリップに対し、再生および停止を制御することができる。 (スクリプト)(swf)
  6. マウス操作へのアクション設定
  7. キーボード操作へのアクション設定
  8. ムービークリップのプロパティ変更
    • ステージ上の特定のムービークリップに対し、サイズ、位置、表示・非表示のプロパティを変更することができる。
  9. 指定したURLへのジャンプ
    • URLRequestオブジェクト、navigateToURL関数を使用して、ブラウザのウィンドウでWebページを開くことができる。 (スクリプト)(swf)
  10. 外部SWFファイルの読み込み
    • URLRequestオブジェクト、Loaderオブジェクト、addChild()メソッドを使用して、外部SWFファイルをロードすることができる。未
出題範囲に対する疑問点
  • stopAllSounds関数:ActionScript 3.0では、SoundMixer.stopAll();を使うのでは?(参考URL)
  • 本番(CS4)ではCS5の機能であるコードスニペットが使えない。まる暗記するしかないか?