Flash Professional CC 2015 基本講座

タイムライン変数とローカル変数

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
タイムライン変数とローカル変数の違いをご説明します。
講師:
07:32

字幕

このレッスンでは、関数を定めるときに知っておくべきタイムライン変数とローカル変数の違いについてご説明します。今ステージには針のムービークリップインスタンスが置かれています。そしてメインタイムラインにはスクリプトレイヤーがあるんですがそこにはスクリプトはなく、このインスタンスのシンボルの中にスクリプトが定義されていますので開いてみましょう。ダブルクリックです。そしてシンボルの中のスクリプトのレイヤー、a というマークがありますので、このスクリプトを確認します。右クリックでアクションパネルを開きます。どういうスクリプトになっているかというと、まず addEventListener でクリックしたときにstart という関数を実行するようにという指定がされています。そしてその start という関数の中ではまた addEventListener でENTER_FRAME の度にrotate を呼び出しなさいと。つまり描画が更新される度にrotate が呼び出されて、そこでは現在の秒数、ムービーがスタートしてからの経過秒数が取られ、それに 6 度を掛け算していますので60 秒で 1 周するという秒針の動きをします。 確認しましょう。「制御」から「プレビュー」です。クリックしないと何も起こりませんがクリックすれば動き出します。ただこの動き、よく見るとちょっと気になるんですね。今ではないです。スタートの時なんですけれども、もう一度確認します。「制御」から「プレビュー」ですぐにクリックせずに少し待ちます。しばらく時間が経つのを待っていただいて、そろそろいいですかね。クリックをするといきなりポーンと回転しちゃうんですね。なぜかといえばgetTimer というこの関数はコンテンツがスタートしてから再生を開始してからの経過秒数です。ですからクリックしないとアニメーションは始まらないんですが、クリックしなくても時間は経っていますから、クリックしたとき時間がかなり経過していればいきなり大きい角度で回転してしまうわけです。それで良ければいいんですけれども、やっぱりクリックしたときに12 時の位置から回転を始めたいと思ったらどうしたらいいでしょうか。クリックした時のgetTimer の時間を覚えておけばいいですね。そのための変数を定義しておきます。変数は var で宣言してstartTime としましょう。データ型は Number としておきます。 そしてここではまだ変数に値を入れませんからセミコロンで宣言だけで終えてしまいます。値を入れるのはクリックした時の値ですので、この中で startTime と。1 回宣言していますからこの中では var とつけません。そしてここで getTimer と。クリックした時の時間がこうやると取れます。そうしたら、その時間を引いてから秒数に直せばいいですね。引き算をしてstartTime をじゃあコピーしましょう。キーボードから Ctrl もしくはオプションのドラッグでコピーができますので、括弧閉じと。こうしてあげればクリックした時の時間を差し引いて調整をして秒針を回してくれます。確認しましょう。「制御」から「プレビュー」です。またしばらく待つことにします。時間が経過するのを待って、そろそろいいですかね。ではクリックします。12 時の位置からきちんとスタートしています。ムービーとしてはこれで完成なんですけれども、ですから一旦保存しておきましょうか。保存しておきます。var 宣言をここでしなくたって関数の中ですればいいんじゃないだろうかと思うかもしれません。やってみましょう。var 宣言は取ってしまいます。 そしてこのListener 関数ですね。クリックで呼び出されるListener 関数 start の中で、ここでvar 宣言します。データ型はNumber ということで指定。そして確認しましょう。「制御」から「プレビュー」をします。何かエラーが起こっていますね。クリックしても何も起こりません。エラーが起こっているためです。このエラーは「未定義のプロパティ startTime へのアクセスです」とありますが、startTime なんていう変数知りませんということです。なんで知らないんでしょうか。これがポイントです。ここでちゃんと startTime という変数を宣言しています。けれども関数の中でvar 宣言をした場合は関数が終了したら消えてしまうんです。もう少し細かく言うと、関数を実行するときに関数用のメモリというのが暫定的に取られます。そして関数の中で宣言したvar 宣言をした変数というのは、その暫定的なメモリの中に補完されるんですね。そして関数が終了すると実行が終わるとそのメモリは消えてしまいます。ということで消えてなくなったので、ここで別の Listener 関数でstartTime を引きましょうと言ってもそんなものはどこにも残っていないというふうに言われてしまうわけです。 ということで、一旦これは復帰しますけれどもスクリプトを見ましょう。Bar の中に書かれていますのでここですね。関数の外で宣言をした場合、これは今スクリプトを書いている場所、この Bar のムービークリップシンボルの中ですね。そうしたらこのムービークリップシンボルにこの var 宣言をした変数はメモリされます。ということはこのムービークリップシンボルがインスタンスがなくなるまでこのメモリはずっと残っているわけです。そして function の中ではvar 宣言はせずに、この外側で宣言した赤いマークがついたら1 回クリックして取りますけれどもこの var 宣言をしたインスタンスの中にメモリされている変数 startTime に対してgetTimer の値を入れます。そして別の関数で getTime というとこのインスタンスの中を探します。インスタンスの中にはちゃんと startTime が宣言されているので、その値を取ることができるということです。逆に関数の中で宣言してしまうと関数が終わると消えてしまうということです。この関数の中で宣言する変数、var 宣言する変数のことをローカル変数と言います。 ローカルというのは別に地方じゃありません。その局所的にその場限りということでローカルと言います。それに対して、インスタンスの中に宣言する関数の外に宣言する変数のことをシンボルの中のことをタイムラインとも言うものですからタイムライン変数というふうに呼びます。このレッスンでは、変数の中のタイムライン変数とローカル変数の違いについてご説明をしました。

Flash Professional CC 2015 基本講座

Flash ProfessionalはPCだけでなく、モバイル向けにもインタラクティブなアニメーションが作れるソフトウェアです。動画はFlash PlayerだけでなくAIRやHTML5にも書き出せます。このコースではその基本的な操作方法からグラフィックの描画やアニメーション、画像やサウンドの扱い方、そしてActionScriptなどについて説明します。

7時間21分 (78 ビデオ)
現在、カスタマーレビューはありません…
 

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

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

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