サイトトップ

Director Flash 書籍 業務内容 プロフィール

HTML5テクニカルノート

EaselJSのDisplayObject.tickイベント

ID: FN1310006 Technique: HTML5 and JavaScript Library: EaselJS 0.7.0

DisplayObject.tickイベント
イベントの値 "tick"
概要 Stage.update()メソッドが呼出されたとき、Stageオブジェクトを頂点とする表示リストに加わったDisplayObjectインスタンスに配信されるイベント。DisplayObject.tickイベントを送られた後、インスタンスはステージに描かれる。イベントは子インスタンスが親オブジェクトより先に受取る。
イベントオブジェクトのプロパティ

リスナーに送られるEventオブジェクトには、つぎのプロパティが与えられる(表02-06-03-002)。

表001■Eventオブジェクトのプロパティ
プロパティ 説明
target イベントが起こったオブジェクト。
type イベント名(種類)の文字列。
params Stage.update()メソッドに渡された引数を納めた配列。

説明

Stage.update()メソッドが呼出されると、Stageオブジェクトはその表示リストのすべての階層の子オブジェクトにDisplayObject.tickイベントを送って、Canvasは描き替えられます。アニメーションするオブジェクトのフレームも、DisplayObject.tickイベントを受取って進められます。Stage.update()メソッドに引数を渡して呼出したとき、その値は配列に納められて、DisplayObject.tickイベントリスナーが受取るイベントオブジェクトのparamsプロパティに与えられます。


以下のJavaScriptコードは、Stageオブジェクト(stage)の表示リストにContainerオブジェクト(parent)を子として加え、さらにその子にShapeオブジェクト(shape)を与えました(第1〜2行目)。そのうえで、ふたつのオブジェクトのDisplayObject.tickイベントに同じリスナー関数(test)を定めています(第3〜4行目)。

そして、Stage.update()メソッドを呼出すと、ふたつのオブジェクトのリスナー関数が順に呼出され、window.alert()メソッドにより警告ダイアログボックスが2回開きます(第7行目)。示される値は、つぎのとおりです。

[Shape (name=null)],0
[Container (name=null)],1
  1. stage.addChild(parent);
  2. parent.addChild(shape);
  3. parent.addEventListener("tick", test);
  4. shape.addEventListener("tick", test);
  5. stage.update(0);
  6. function test(eventObject) {
  7.   alert([eventObject.currentTarget, eventObject.params[0]]);
  8.   eventObject.params[0]++;
  9. }

警告ダイアログボックスの表示により、DisplayObject.tickイベントは、子インスタンス(Shapeオブジェクト)から先に送られていることがわかります。Stage.update()の引数に渡した値は、リスナー関数が引数に受取ったイベントオブジェクトのparamsプロパティから配列として得られました。その数値が加算されているのは、ふたつのリスナーに同じイベントオブジェクトが順に送られていることを示します。



作成者: 野中文雄
作成日: 2013年10月29日


Copyright © 2001-2013 Fumio Nonaka.  All rights reserved.