基礎から学ぶActionScript 3.0

ムービークリップシンボルに関数を定義

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
メインタイムラインのフレームアクションを、関数としてムービークリップシンボルに定義します。そして、メインタイムラインから関数を呼出せば、秒針が回ります。
講師:
09:02

字幕

関数は メインタイムラインだけでなく シンボルの中のキーフレームに 定義することもできます 関数というのは 処理を パーツ化 部品化するのに役立ちます シンボルの中に関数を定義すれば 関数と共に シンボルを 1 つの部品 パーツのように することができます その場合 メインタイムラインとシンボルとで 参照先が変わってくることがありますので その点に注意する必要があります この Flash ムービー FLA ファイルの関数は メインタイムラインに定義してあります まず 関数を確かめてみましょう scripts のレイヤーの キーフレーム ここにアクションが定めてありますので アクションパネルを開きます この 4 行のステートメントが 関数定義です この関数の呼び出しを 5 行目に書いてあります 内容を簡単に確認しますと 関数定義では getTimer () 関数で取り出した 経過ミリ秒数を 1000 で割り算をして 秒数に変えて 変数に入れ その変数の値 小数値以下が入りますので Math.floor () で 小数点以下を切り捨て 整数値にして 6を掛けてます これは1秒あたりの 秒針の回転角です その回転角を bar_mc これは 秒針のインスタンスですので その rotation プロパティに 設定すれば 秒の進行に従って インスタンスの回転角が 変わるということです アクションパネルは 一旦閉じて このスクリプトの 実行結果を確認しましょう 制御メニューから ムービープレビューです 1秒刻みで 秒針のインスタンスが回転します この動きを 今のところ 変えるつもりはありません ただ メインタイムラインに 定義してあった関数を この秒針のシンボルの中に 移したいと思います その場合に どういった点が違ってくるのか 直さなければいけないのか ということを確認しながら 進めていきましょう 一旦 SWF の ウィンドウは閉じます メインタイムラインの スクリプト用レイヤーの キーフレームに定めたスクリプト 右クリックで アクションパネルを開いて function ですね これをカットして ムービークリックシンボルの中の フレームに移したいと思います では 右クリックでカットします この関数の呼び出しは 残しておきます では アクションパネルは一旦閉じます この秒針のインスタンスの シンボルを開きますので ステージ上でダブルクリックをします シーン 1 Bar というのは このシンボルの名前です 今シンボルの編集状態になりました レイヤーが 1 個しかありません スクリプト用のレイヤーを加えましょう 新規レイヤーのボタンをクリックして レイヤー名を それらしい名前にします scripts としまして ロックをかけておくと安心ですね では このキーフレームで アクションパネルを開きます 右クリックでアクションです 先ほどコピーしておいたので それをペーストしましょう ペーストです 特に今のところ 変更は加えません 加えなければいけないのですが どこを変更するのか 確認するのが先です 一旦パネルは閉じます そして 今シンボルの編集状態から シーン1をクリックして メインタイムラインに戻ります まだこのままでは動きません 何が問題なのか確認したいので とりあえずムービープレビューを 見てみましょう 制御メニューから ムービープレビューです 針が動きません スクリプトにエラーが生じているからです そして エラーの内容が コンパイルエラーのパネルに 表示されました bar_mc へのアクセス これが未定義だというんですね この意味は 簡単に言いますと bar_mc なんてありません 知りません といことです これはシンボルの中に移した function 関数の ステートメントに問題があります では SWF のウィンドウは閉じて 確認してみましょう まず コンパイルエラーのタブが 前面に出ていますが タイムラインに戻ります それから シンボルの中の関数 フレームアクションが問題な訳ですから シンボルの編集状態にまたします インスタンスをダブルクリックです シーン 1 の横に Bar という シンボル名が出ましたので 今シンボルの編集状態です scripts レイヤーの キーフレームを右クリックして アクションパネルを開きます 先ほど bar_mc 知りませんと言われました なぜかというと 今シンボルを開けています このシンボルのインスタンス名が bar_mc でした bar_mc と ここに書いてあると このタイムラインの中にある bar_mc を探します ところが ここにはそんなものありません bar_mc の中にいるんですから ですから ここは bar_mc ではなくて ここ という参照に しなければいけません ここというのはまさに this です これで この場所 今スクリプトを書いている この場所の このインスタンスの rotation を 変えるんだという意味になります さらに言うと this. というのは 省略してしまうことも可能です 特に何も書いていなければ ここが rotation プロパティの 参照先 対象になります this. を書いても結構ですし 省略しても構いません 省略して良いのであれば 省略してしまいましょう ということで これで試したいと思います では アクションパネルを閉じます それから メインタイムラインの方に 戻りましょう シーン1をクリックです あらためて ムービープレビューを 確認してみましょう 残念ながら まだ動きません ムービープレビューを確認です また新しいエラーが コンパイルエラーの パネルに出てきました また 未定義である可能性が高い 今度は xRotate の呼び出しが 分かりません ということです では SWF のウィンドウは閉じまして これはメインタイムラインですね では メインタイムラインを見るので タイムラインのタブをクリックして 確かめてみましょう メインタイムラインの scripts のレイヤーの スクリプトを書いたキーフレーム 右クリックで アクションパネルを開きます この xRotate が見つからない まさにエラーの通りです 先ほどまでは この同じ アクションパネルの中に xRotate が書いてありました ですから xRotate で 呼び出しができましたけれども もう無くなりました このタイムラインのどこにも xRotate という スクリプト 関数がありません どこにあるかというと my_mc のインスタンスの中に 移したんですよね その場合には my_mc の中の という 参照と言いますけれども どこにあるのかという 在りかを示さないといけません これはプロパティの場合と一緒です bar_mc. とすることで bar_mc 秒針のインスタンスの中に定義した xRotate を呼び出す という意味になるわけです これでどうでしょうか ムービープレビューを試しましょう 一旦 アクションパネルは閉じて 制御メニューから ムービープレビューです 今度は動き出しました 関数を ムービークリップの中に定義すると そのムービークリップを パーツ化することができます ですから パーツ化したい シンボルがある場合には 関数の定義で スクリプトを その中に書いていく という風にすると便利です ただし その場合には メインタイムラインから ムービークリップの中の 関数を呼び出したいとき あるいは 今まで メインタイムラインに書いてあった function スクリプトを ムービークリップの中に 持っていったとき 誰に対して 命令するのかという 参照先と言いますが それを正しく 指定することが重要です では SWF のウィンドウは閉じましょう 以上が 関数を ムービークリップの中に 定義した場合の 注意点ということでした

基礎から学ぶActionScript 3.0

このコースではFlashのActionScript 3.0を初めて学ぶ方を対象に、ActionScriptの基礎から実際にプログラミングをするところまで学習していきます。簡単なスクリプトによるオブジェクトの操作の仕方から始まり、変数や関数といったプログラミングの基礎、そしてインタラクティブなコンテンツの作成まで詳しく解説いたします。

6時間30分 (49 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月16日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。