基礎から学ぶActionScript 3.0

日付の更新処理を加える

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
アニメーションとは別途の頻度でデータを更新したいときには、Timerクラスを用います。イベントリスナーを使うというActionScriptの基本は変わりません。
講師:
10:06

字幕

EventListener を使った アニメーションの処理では、 addEventListener の メソッドの始めに渡す引数として、 ENTER_FRAME event.ENTER_FRAME の イベントを渡すことが普通です。 けれども、 ENTER_FRAME ほど頻繁に、 更新をしたい、処理をしたい、 という場合でないことがあります。 例えば、今、時計に日付が出ていますが、 日付は 24 時間に 一編しか変わりません。 それを1秒間に、 何十回も処理する必要はないですね。 その処理する間隔を変えたい場合には、 Timer クラスを使います Timer クラスを使った EventListener の 処理について御紹介します。 この Flash ムービーの テキストフィールドに、 日付を入れる処理について、 確認してみましょう。 メインタイムラインの フレームアクションに書いてあります。 フレームのキーフレームを 右クリックして、 「アクション」パネルで、 スクリプトを確認しましょう。 数字の桁揃えをしてますので、 少しステートメントが多くなっていますが、 まず、中心部分を確認しましょう。 最初に Date クラスから インスタンスを作って、変数に入れます。 そして次に、テキストフィールドに 最終的に入れる文字の変数です。 そこにまず、年ですね。 年と / (スラッシュ)を入れて、 次に、月の番号と、 月の数字を文字列に書いたものと / を加え、 最後に、日付を加えています。 そして、その変数に入れた文字列を、 テキストフィールド my_txt という インスタンス名が付いていますので、 その Text プロパティに設定すると、 テキストフィールドに今日の日付が、 / (スラッシュ)区切りで入ります。 あとは、簡単に触れますが、 桁揃えをしています。 例えば、年は fullYear 4桁なんですけれども、 そこから2桁を取り出す ということをしています。 まず、そのためには、 文字列に変換する必要がありますので、 文字列に変換した上で、 その文字列に対して、 2桁を substring メソッドで 取り出しています。 それを使って、年にしている。 あるいは、月も同じように、 2桁を取り出す。 日も同じように2桁を取り出す ということはしています。 このスクリプトは Flash Player を 立ち上げた最初に1回、実行されます。 そして、もう二度と、 実行されることはありません。 つまり、このまま放っておいて、 翌日見ると、 翌日になっても、今日の日付が 出ているということになります。 やはり、この処理を、 繰り返して更新する必要があります。 とはいえ ENTER_FRAME ですと、 フレームレートで1秒間に何回も... 現在、フレームレート 12 に してありますので、 1秒間に 12 回、 更新する必要はないですね。 ですので ENTER_FRAME よりも、 もう少し長い間隔で繰り返したい。 あるいは、場合によっては、 ENTER_FRAME よりも 短い間隔で処理したいという時にも使える、 Timer クラスの使い方を御紹介します。 指定した時間の間隔で 繰り返し処理するのが、 Timer クラスです。 ただ、 ActionScript 3 では、 多くの処理が、 eventListener で行われます。 Timer クラスも、 その例外ではありません。 ですから、 eventListener に登録し、 処理したい内容、 先ほどお見せした フレームアクションの内容を、 リスナー関数の中に定めればいい ということは同じです。 そこで、 Timer クラス特有の部分に 重点を置きながら、 eventListener 登録の仕方を ご紹介していきます。 まずは、 new Timer で、 Timer クラスのインスタンスを作ります。 インスタンスを new 演算子に続く クラス名で作るというのは、 これはお約束ですね。 そして () の中に、 ミリ秒で、 「決まった時間間隔で繰り返し処理する」 ということなんですが、 その、「決まった時間間隔」を入れます。 例えば1秒であれば 1000 3秒であれば 3000 を入れます。 そして、インスタンスは 変数に入れておきます。 その変数に対して addEventListener で、 eventListener を登録します。 繰り返し処理したい場合のイベントは、 TimerEvent.TIMER です。 これで登録すると、 1000 ミリ秒、 あるいは、 3000 ミリ秒という 指定した間隔で、 このイベントが発生し、 リスナー関数の処理が行われます。 リスナー関数の登録の仕方は、 普通の EventListener 通りです。 リスナー関数を function で定め、 eventObject を受け取ります。 そして、イベントが TimerEvent.TIMER ですから、 eventObject のデータ型は、 TimerEvent となります。 そして ) を閉じたら、 :void{} の中に、 繰り返し処理したい内容を入れます。 そして1つ、 Timer 特有で重要なのは、 Timer のオブジェクトに対して、 .start というメソッドを 呼び出さないと、スタートしません。 一所懸命 1000 ミリ秒で指定して EventListener を登録しても、 いつまでたっても処理が 行われないということになりますので、 処理をしたい場合には、必ず start のメソッドを呼び出してください。 フレームアクションの この、一連のステートメント、 これをまず、リスナー関数として、 先に定義してしまいましょう。 function ですね。 そして function 名は、 SetDate とします。 そして eventObject 今回は TimerEvent でしたね。 今、 Ti で、 Timer が ハイライトしていますが、 その下が TimerEvent の はずですので、 下向き矢印を1回押します。 そして :void この中に、全てのステートメントを 入れてしまいます。 最後 } が改行されていませんので、 改行し、 あと見やすいように、 function の中のステートメントは インデントをかけます。 キーボードから Tab キーです。 そうしましたら、Timer クラス、 Timer オブジェクトに、 EventListener を登録する 処理に移ります。 まずは、オブジェクトを作ります。 myTimer データ型は Timer です。 そして new Timer 3秒おきぐらいにしましょうか。 3000 と入れました。 3000 ミリ秒です。 次に myTimer に対して addEventListener ですね。 これはもう、お約束通りです。 そして TimerEvent.TIMER T でハイライトしましたので Enter キーで入力します。 そして、リスナー関数は、 コピーで間違えないようにしましょう。 これで、ムービープレビューを見たのでは、 1つ抜けてますね。 注意したところです。 myTimer の start というメソッドを 呼び出してください。 st で start がハイライトしましたから、 Enter で () します。 これで、ムービープレビューを見て 動くはずなんですが、 本当に、3秒おきに実行されてるかどうかは、 確認できないですね。 そこで、確認のための trace ステートメントを入れておきましょう。 テキストフィールドの Text プロパティに入れた today_str これは日付ですので、 これで確認しましょう。 trace で引数に文字列を入れます。 「アクション」パネルは 一旦、閉じましょう。 そして、「制御」> 「ムービープレビュー」です。 「出力」パネルに出てくる表示に、 ご注目ください。 はじめは出ていません。 3秒経ったところで、表示されます。 3秒ごとに表示が増えていきます。 確かに動いているようですね。 大丈夫そうですので、 SWF のウィンドウは閉じましょう。 「タイムライン」の方に切り替えます。 Timer クラスについて、 おさらいします。 Timer クラスは、 指定した時間の間隔で、 繰り返し処理をします。 EventListener を使うということは、 他の ActionScript3 の原則通りです。 まずは、インスタンスを作ります。 new Timer そして、その () の中に、 決まった時間間隔にすべき値を入れます。 単位はミリ秒です。 そのオブジェクトに対して addEventListener で、 リスナー関数を登録します。 繰り返し実行したい時のイベントは TimerEvent.TIMER です。 そして、リスナー関数は普通どおりですが、 Event オブジェクトは、 イベントが TimerEvent. ですので、 : の後 TimerEvent を指定します。 そして Timer クラスで 忘れてはいけないのが、 必ず Timer オブジェクトに対して、 .start というメソッドを 呼び出すということす。 以上が、指定した時間間隔で 繰り返し処理を行う、 Timer クラスの使い方でした。

基礎から学ぶActionScript 3.0

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

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

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

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

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