gpt4 book ai didi

apache-flex - 弹性 : dialog not display immediately

转载 作者:行者123 更新时间:2023-12-04 04:04:52 26 4
gpt4 key购买 nike

在 AIR 应用程序中,我有以下代码:

theDialog = PopUpManager.createPopUp( this, TheDialogClass, true ) as TheDialogClass; theDialog.addEventListener(FlexEvent.CREATION_COMPLETE, cpuIntensiveCalc);



在 cpuIntensiveCalc 结束时,对话框被删除。该对话框通知用户“有事情发生,请稍等”。

问题是 cpuIntensiveCalc 在对话框绘制之前启动。所以用户体验是应用程序在没有指示器的情况下卡住 10 秒,然后模态对话框在屏幕上快速闪烁(不到一秒)。

Adobe docs 说这是关于 creation_complete

Dispatched when the component has finished its construction, property processing, measuring, layout, and drawing.



所以这感觉像是正确的事件。
以完整性的名义,我也尝试过

theDialog = PopUpManager.createPopUp( this, TheDialogClass, true ) as TheDialogClass; cpuIntensiveCalc();



但得到了相同的结果。

TIA

最佳答案

这样做的原因是 Flash Player 是单线程的,因此您会阻止 UI 对对话框弹出窗口使用react,直到数学块完成。

哈克修复时间...

你有两个选择。

(这个应该可以工作,但未经测试)将 cpuIntensiveCalc() 调用包装在 callLater 中,以便 UI 可以在您阻止渲染之前完成渲染。

或者

使用“绿色线程”来分解你的处理,这样你就不会完全阻塞 UI 处理。 Take a look .

关于apache-flex - 弹性 : dialog not display immediately,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1410398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com