ActionScript中是否有一种方法可以在事件发生后强制执行IMMEDIATE更新?

时间:2012-11-30 17:24:01

标签: actionscript-3

我知道方法MouseEvent.updateAfterEvent()或KeyboardEvent.updateAfterEvent(),它会在处理事件后强制重新渲染阶段,而不是等待下一帧。

但是,我需要一种方法在我调用它的时刻强制立即渲染。有这样的方法吗?

实际上我的问题来自于ActionScript的打印API(PrintJob)的设计。与整个ActionScript体系结构不一致,当您调用PrintJob.start()时,所有内容都会在显示打印对话框时完全冻结,直到用户单击打印或取消按钮。在此之后恢复PrintJob.start()调用之后执行任何代码。

在这个巨大的设计缺陷中出现的许多其他更糟糕的问题中,有我的:

public function someMouseOrKeyboardEventHandler() {
  somethingThatUpdatesTheDisplayList();
  var somePrintJob=new PrintJob();
  somePrintJob.start();
  //...
  somePrintJob.send();
}

当调用我的这个处理程序时,在打印对话框关闭之后,对显示列表所做的更改才会显示,所以我不能在打开之前在屏幕上显示某些内容。打印对话框。

updateAfterEvent()将无济于事(已经尝试过)。它不会改变任何东西,因为它只会在执行事件处理程序代码后强制渲染。

是否有任何updateRightNow() - 喜欢的东西?

1 个答案:

答案 0 :(得分:1)

不,不幸的是,您无法在代码中间强制更新。

但是,您可以等到下一帧在PrintJob上调用start();这将使Flash有时间在所有内容冻结之前更新舞台。