【发布时间】:2014-07-06 04:39:32
【问题描述】:
我是第一次尝试使用 EaselJS,我正在尝试进行正常的方形移动。我使用 Ticker 创建了一个从屏幕左侧到右侧的正方形动画。它看起来很不稳定,所以我提高了该股票的 FPS(通过Ticker.setFPS(60))。
我的下一步是添加键盘事件以允许方块移动。我已经成功地做到了,但同样的波涛汹涌又回来了。我尝试将 Ticker 的 FPS 设置为更高的速率,但这根本无法解决我的问题。这是我的代码:
var c = document.getElementById("c");
var stage = new createjs.Stage("c");
var square = new createjs.Shape();
function init() {
square.graphics.beginFill("#3A5FCD").drawRect(0, 0, 75, 75);
square.x = 50;
square.y = 50;
stage.addChild(square);
stage.update();
//Update stage will render next frame
createjs.Ticker.addEventListener("tick", stage);
createjs.Ticker.addEventListener("tick", move);
createjs.Ticker.setFPS(60);
this.document.onkeydown = move;
}
function move(event) {
switch(event.keyCode) {
case 37:
square.x -= 10;
break;
case 39:
square.x += 10;
break;
case 38:
square.y -= 10;
break;
case 40:
square.y += 10;
break;
}
}
所以,总结一下我的问题,如何在不附加到 Ticker 的情况下增加 FPS,或者更好的是,如何将键盘事件附加到 Ticker?
提前致谢。
【问题讨论】:
-
如果您正在处理按键输入的移动,则不需要自动收报机。
-
那我该怎么做才能在没有ticker的情况下增加FPS呢?
-
没关系。 FPS 只是自动收报机的帧速率。您是在按键输入上调用 move 方法,而不是在刻度上。
-
那么如何调用 Ticker 上的 Display Object 的 move 方法呢?
-
据我所知,您甚至没有在代码中调用 handleTick。什么是显示对象?你似乎没有定义它。
标签: html canvas easeljs createjs