当我的帧速率变慢时,我可以防止 Flash 的输入事件堆积吗?
我的 Flash 游戏的目标帧率为 24 fps,但在较慢的机器上速度减慢至 10。这很好,除了 Flash 决定限制传入的 MouseEvent 和 KeyboardEvent 的队列,并且它们堆积起来并且事件落后。远远落后。太糟糕了,在 10 fps 的速度下,如果我在几秒钟内向鼠标和键盘发送垃圾邮件,则不会发生太多事情,然后,在我停止后,游戏似乎会在接下来的 5 秒内自行运行,因为事件会慢慢渗入。知道。
有谁知道解决这个问题的方法吗?我基本上需要对 Flash 说:“我知道您认为我们落后了,但是限制输入事件不会有帮助。请在收到它们后立即将它们给我。”
My Flash game targets 24 fps, but slows to 10 on slower machines. This is fine, except Flash decides to throttle the queue of incoming MouseEvent and KeyboardEvents, and they stack up and the Events fall behind. Way behind. It's so bad that, at 10 fps, if I spam the Mouse and Keyboard for a few seconds not much happens, then, after I stop, the game seems to play itself for the next 5 seconds as the Events trickle in. Spooky, I know.
Does anyone know a way around this? I basically need to say to Flash, "I know you think we're falling behind, but throttling the input events won't help. Give them to me as soon as you get them, please."
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能会更幸运地努力提高帧速率,而不是尝试解决低帧速率问题的副作用。您是否使用分析器来确定帧速率如此慢的原因?你能利用失效来改进它吗?是否存在可以优化的瓶颈?
You'll probably have better luck working to increase your framerate instead of trying to work around a side-effect of the low framerate problem. Have you used a profiler to identify why the framerate is so slow? Can you utilize invalidation to improve it? Are there bottlenecks that can be optimized?
我不认为闪存会限制输入事件。我认为您的应用程序更有可能确实无法足够快地处理它们。我认为阻止它们以这种方式“堆积”的唯一方法就是完全丢弃事件。因此,您的代码中需要这样的内容:
但有一个缺点...用户现在将放弃一些命令,只需单击越来越多的按钮来尝试让他们的命令发挥作用。
也许您应该致力于以不需要过多按键/鼠标的方式设计游戏?或者按照 Sam 的建议优化游戏本身,以防止游戏速度变慢。
I don't think flash is throttling the input events. I think it's more likely that your application truly cannot process them quickly enough. I think the only way to stop them from 'stacking up' in this way, would be to completely discard events. So you'd need something in your code like:
But there's a drawback...users will now have some of their commands discarded, and will simply click more and more to try and get their commands to work.
Perhaps you should work on designing the game in such a way that doesn't need such excessive key/mouse presses? Or go with Sam's suggestion to optimize the game itself to prevent it slowing down in the first place.