目前我遇到的问题是,当我在本地(在 ubuntuVM 中)运行时,使用 WebStorm 作为网络服务器,我运行我的游戏并且它运行良好且响应迅速,但是当我将它上传到我的虚拟主机并播放时它从那里开始滞后并且点击事件没有响应。
我认为这是因为我错误地使用了 Ticker(你如何为阶段调用更新?):
canvas = document.getElementById('myCanvas');
canvas = new createjs.Stage(canvas);
createjs.Ticker.addEventListener("tick", canvas);
并且所有容器、 Sprite 等都是这个阶段的 child
http://thegamingproject.org/webgames/ludumdare28/
最佳答案
为了解决延迟问题,我建议您首先考虑在 Ticker
上调整您的 FPS。查看文档 here 。您可能还想尝试使用 enableMouseOver frequency 。小心动画,并在进行 alpha 淡入淡出等之前利用 caching。我发现 easeljs 库会滞后一些详细的矢量内容(例如从 Flash IDE 导出时)。尽可能使用 Bitmaps
来限制绘图指令。
至于 Ticker 监听器,据我所知,您有以下 2 个选项:
1.将舞台作为监听器添加到股票行情
这是最容易管理的,尽管它使您对渲染的控制量最少。根据 this createjs tutorial ,这仅建议用于快速测试。
示例
createjs.Ticker.addEventListener("tick", stage);
优点
stage.update()
为每个滴答自动调用 缺点
2. 在自定义函数中调用 stage.update()
此解决方案允许手动控制更新舞台。如果您需要“暂停”更新内容(例如游戏),这可能很有用。
示例
createjs.Ticker.addEventListener("tick", tick);
function tick(){
var isDirty = false;
//some custom logic
if(isDirty) {
stage.update();
}
}
优点
缺点
关于html - 用于 Ticker 的 EaselJS 的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20805311/