私は EaselJS を使い始めたばかりで、最初のハードルに直面しています。Container オブジェクトを拡張して、Egg という新しいクラスを作成しました。
(function() {
var Egg = function(color, x, y, cY) {
this.initialize(color, x, y, cY);
}
var e = Egg.prototype = new createjs.Container(); // inherit from Container
e.Container_initialize = e.initialize;
e.initialize = function(color, x, y, cY) {
this.Container_initialize();
this.circle = new createjs.Shape();
this.circle.graphics.beginFill(color).drawCircle(0, 0, 10);
this.circle.x = x;
this.circle.y = y;
this.addChild(this.circle);
this.changeY = cY;
this.addEventListener("tick", this.handleTick);
}
e.handleTick = function(event) {
console.log(event.delta); // undefined!
}
window.Egg = Egg;
}());
そして、私はこのように初期化しています:
var stage, timeCircle;
function init() {
stage = new createjs.Stage("gameCanvas");
timeCircle = new createjs.Shape();
createjs.Ticker.useRAF = true;
createjs.Ticker.setFPS(30);
createjs.Ticker.addEventListener("tick", tick);
var egg = new Egg("red", 50, 50, 100);
stage.addChild(egg);
var egg2 = new Egg("blue", 100, 50, 50);
stage.addChild(egg2);
}
function tick(event) {
stage.update(event);
}
Egg handleTick 関数で、event.delta プロパティをログアウトすると、「undefined」になります。イベントを stage.update 呼び出しで渡すと、ステージ上のオブジェクトに伝播すると思いましたか?