我知道 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() 的东西?