我正在构建一个加载小游戏的框架(在 swf 中),并且遇到了问题。
我目前有一个监听器来监听子小游戏发送到父框架的事件。但是,如果子级发送的两个消息(事件)彼此过于接近,似乎第一个事件会被忽略,这会导致一些消息根本无法到达父框架。
我读到您可以以某种方式将动作脚本事件排队,以便以 FIFO 为基础处理事件。我怎样才能做到这一点?这个问题的文档似乎非常稀缺,所以我很难过。
非常感谢!
我正在构建一个加载小游戏的框架(在 swf 中),并且遇到了问题。
我目前有一个监听器来监听子小游戏发送到父框架的事件。但是,如果子级发送的两个消息(事件)彼此过于接近,似乎第一个事件会被忽略,这会导致一些消息根本无法到达父框架。
我读到您可以以某种方式将动作脚本事件排队,以便以 FIFO 为基础处理事件。我怎样才能做到这一点?这个问题的文档似乎非常稀缺,所以我很难过。
非常感谢!
您真的应该发布带有此类问题的代码;其他人是对的——听起来你确实在某个地方犯了错误,而且当这些问题伴随着一些代码时,帮助解决这些问题要容易得多。
也就是说,即使你在一个紧密的循环中调度你的事件,像这样:
addEventListener("foo", handleFoo, false, 0);
for (var i:int = 0; i < 100; i++)
{
dispatchEvent(new FlexEvent("foo"));
}
private function handleFoo(event:Event):void
{
trace("hello");
}
...您会看到与该循环的迭代一样多的“你好”;没有比这更“紧密”的了。您可以优先处理事件——例如,首先调用这个监听器(因此上面的“0”),第二个调用另一个监听器(“1”),依此类推——使用 addEventListener 函数的优先级参数(再次,见上文),但仅此而已。除非您自己编写队列,否则没有内置的事件调度队列。