0

次のフレームを待つのではなく、イベントが処理された直後にステージの再レンダリングを強制するメソッド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()のようなものはありますか?

4

1 に答える 1

1

いいえ、残念ながら、コードの途中で強制的に更新することはできません。

ただし、次のフレームがstart()PrintJobを呼び出すまで待つことができます。これにより、すべてがフリーズする前にFlashがステージを更新する時間が与えられます。

于 2012-11-30T17:46:07.793 に答える