Createjs 补间在每个窗口会话执行一次,并且在页面刷新之前不会运行

发布于 2025-01-15 18:19:55 字数 870 浏览 0 评论 0原文

我正在尝试运行在每个迷你游戏结束时补间舞台子级的代码。我有几个具有不同补间的迷你游戏。这个想法是,当您通过所述迷你游戏完成某个目标时,将运行一个补间来播放某种动画。不幸的是,当一个补间运行时,任何小游戏中的其余部分都不会执行。这也适用于初始迷你游戏:当迷你游戏 A 中的一个补间运行时,迷你游戏 A 中的所有补间都不会运行。让补间再次工作的唯一方法是刷新页面,但即使如此,问题仍然会继续存在。

我在一个名为 universalDeclar.js 的文件中全局运行这些代码行,该文件在除 createjs cdn 之外的任何其他 js 文件之前读取。

createjs.Ticker.timingMode = createjs.Ticker.TIMEOUT;
createjs.Ticker.framerate = 24;

当我实例化新游戏时,我给一个特定的孩子(在本例中,是一个名为教授的 Sprite)一个补间在将动画添加到舞台之前,但在稍后的函数中满足某些条件之前不要播放它,我在其中写入 stupidTween.paused = false;

stupidTween = createjs.Tween.get(professor, {paused: true}, true) 
  .to({x: 700 }, 400, createjs.Ease.linear)

运行后在初始化函数中,我总是重置代码(因为我计划为每个小游戏实施时间限制)并调用一个新函数来运行每个代码

createjs.Ticker.reset();
createjs.Ticker.addEventListener("tick", fillTick);

任何指导或帮助问题将非常感激,因为我的很多游戏都依赖于补间动画

I'm trying to run code that tweens a stage child at the end of every minigame. I have several minigames with different tweens. The idea is that when you complete some goal with said minigame, a tween will run that plays some kind of animation. Unfortunately, when one tween runs, the rest in any minigame never execute. This also goes for the initial minigame: when one tween from minigame A runs, all the tweens in minigame A don't run. The only way to get tweens working again is to refresh the page, but even then, the problem will still continue.

I have these lines of code running globally in a file called universalDeclar.js that's read before any other js file besides the createjs cdn

createjs.Ticker.timingMode = createjs.Ticker.TIMEOUT;
createjs.Ticker.framerate = 24;

When I instantiate the new game, I give a specific child (for this case, a Sprite named professor) a tween animation before its added to the stage but don't play it until some condition is met in a later function, to which I write stupidTween.paused = false;

stupidTween = createjs.Tween.get(professor, {paused: true}, true) 
  .to({x: 700 }, 400, createjs.Ease.linear)

After running stage.update() in the initialize function, I always reset the ticker (since I plan on implementing time limits for each minigame) and call on a new function to run every tick

createjs.Ticker.reset();
createjs.Ticker.addEventListener("tick", fillTick);

Any guidance or help on this problem would be really appreciated since a lot of my games rely on tweenable animation

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

私藏温柔 2025-01-22 18:19:55

我自己解决了这个问题。显然,尽管每个新的迷你游戏加载都会初始化函数,但调用 createjs.Ticker.reset(); 会阻止任何其他补间再次发生。我必须创建一些新变量来管理游戏之间的时间差异,但现在一切正常

Fixed the problem myself. Apparently calling createjs.Ticker.reset(); prevents any other tweens from reoccurring despite functions being initialized with every new minigame load. I had to create some new variables to manage time differences between games but everything works now

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文