Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex “我们如何实施”;请稍候……”;应用程序忙时在flex中显示屏幕_Apache Flex - Fatal编程技术网

Apache flex “我们如何实施”;请稍候……”;应用程序忙时在flex中显示屏幕

Apache flex “我们如何实施”;请稍候……”;应用程序忙时在flex中显示屏幕,apache-flex,Apache Flex,我有一个功能,可以恢复我的应用程序的所有默认设置。这个过程可能需要一点时间,所以我想实现一个“请等待…”模式弹出窗口,让用户知道一切正常,程序没有冻结。函数完成任务后,我希望它删除消息,并恢复正常行为 您可以使用PopUpManager创建带有动画微调器的模式弹出窗口。警报组件会执行此操作。您可以随时参考警报源代码以了解其工作原理。只要您不需要向用户传达除“应用程序仍在运行”以外的任何信息,我认为一种更优雅的方法就是更改光标: mx.managers.CursorManager.setBusyC

我有一个功能,可以恢复我的应用程序的所有默认设置。这个过程可能需要一点时间,所以我想实现一个“请等待…”模式弹出窗口,让用户知道一切正常,程序没有冻结。函数完成任务后,我希望它删除消息,并恢复正常行为


您可以使用PopUpManager创建带有动画微调器的模式弹出窗口。警报组件会执行此操作。您可以随时参考警报源代码以了解其工作原理。

只要您不需要向用户传达除“应用程序仍在运行”以外的任何信息,我认为一种更优雅的方法就是更改光标:
mx.managers.CursorManager.setBusyCursor()
//do stuff
mx.managers.CursorManager.removeBusyCursor()
mx.managers.CursorManager.setBusyCursor()
//做事
mx.managers.CursorManager.removeBusyCursor()
光标将变为指针旋转的时钟。我不确定是否有办法用您自己的动画来替代此功能,但它很简单,不需要您设计自己的窗口。

开始时:

var waitingpopup:TitleWindow = new TitleWindow()
waitingpopup.title = "Please Wait ..."

PopupManager.addPopup(waitingpopup, this, true)
完成后:

PopupManager.removePopup(waitingpopup)

对于那些迟来回答这个问题的人,Adobe在4.5中发布了一个Throbber:

例如,从上面的FusionRokker链接运行以下操作:

private function busyOn():void
{
throbberId.visible=true;
}
私有函数busyOff():void
{
throbberId.visible=false;
}
]]>

根据我的经验,在重建UI组件时,这种方法不起作用。我假设询问者需要构建大量的UI,否则就不会花费太长的时间来显示冻结状态。如果flash播放器正在努力处理一个显示,那么它就不必同时渲染自定义鼠标。我使用的一个选项是将按钮的文本更改为“请稍候…”,并在渲染完成后将其更改回正常状态。我在调度调用后端的事件时使用过它。当您等待响应者从数据库填充模型时,它非常有效。我想我没有想到它会干扰GUI渲染。繁忙光标的问题是,有时你会从中得到奇怪的行为。例如,当我刷新大型datagrid并将光标设置为busy时,有时我可以将鼠标悬停在其他UI控件上,并显示常规鼠标光标,而FLEX busy光标则位于datagrid的顶部。是的,我同时有两个游标,这不是我的本意。我发现忙碌的光标有点问题。你能提供一些真实的例子吗?
        private function busyOn():void
        {
            throbberId.visible = true;
        }

        private function busyOff():void
        {
            throbberId.visible = false;
        }
    ]]>
</fx:Script>

<s:VGroup width="100%" 
          paddingLeft="10" 
          paddingRight="10" 
          paddingTop="10" 
          paddingBottom="10">
    <s:BusyIndicator 
        id="throbberId" 
        visible="false" 
        rotationInterval="{rotationInterval}" />
    <s:Button 
        id="start" 
        click="busyOn()" 
        width="100%" 
        height="50" 
        label="start" />
    <s:Button 
        id="stop" 
        click="busyOff()" 
        width="100%" 
        height="50" 
        label="stop" />
</s:VGroup>