我有一个Flex应用程序,当用户单击按钮时,它会向数据库发送查询。由于查询可能很重,并且可能需要一分钟,因此我想显示一个警报,该警报仅在事件从数据库返回后关闭(用户将无法自行关闭)。 Flex中有可能吗?我该怎么做?
我有sendQuery()和dataEventHandler()函数。我想我需要将代码放在sendQuery()中以显示警报,并在dataEventHandler()中将数据放入数据库后关闭它,但如何让警报“取消隐藏”?
答案 0 :(得分:1)
内置的Flex Alert类将始终具有某种类型的关闭按钮。
但是,没有理由不能创建自己的组件;然后使用PopUpManager打开和关闭它。
答案 1 :(得分:0)
制作一个0-0.2 alpha形状,覆盖整个应用程序(可能你会想要监听resizeevents),并在消息中间添加一个自定义面板。
答案 2 :(得分:0)
根据想法,您可以创建自定义提醒:
警示示例:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"
creationComplete="onCreationComplete(event)">
<s:Rect>
<s:fill>
<s:SolidColor color="0xFFFFFF"/>
</s:fill>
<s:stroke>
<s:SolidColorStroke />
</s:stroke>
</s:Rect>
<s:Label text="Please Wait..."/>
<fx:Script>
<![CDATA[
import mx.core.FlexGlobals;
import mx.events.FlexEvent;
import mx.managers.PopUpManager;
public static function show():void
{
PopUpManager.createPopUp(FlexGlobals.topLevelApplication);
}
public static function hide():void
{
PopUpManager.removePopUp(this);
FlexGlobals.topLevelApplication.enabled = true;
}
protected function onCreationComplete(event:FlexEvent):void
{
PopUpManager.centerPopUp(this);
FlexGlobals.topLevelApplication.enabled = false;
}
]]>
</fx:Script>
</s:Group>
用法:
YourAlert.show();
YourAlert.hide();
答案 3 :(得分:0)
@Alex,我使用了你的代码但稍微修改了一下,因为有一些错误:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="creationCompleteHandler()" width="100%" height="100%">
<fx:Script>
<![CDATA[
import mx.core.FlexGlobals;
import mx.core.UIComponent;
import mx.managers.PopUpManager;
///////////////////////////////////////
//// public functions - my group is ImageViewer.mxml component
public static function show():ImageViewer {
return PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, ImageViewer) as ImageViewer;
}
public function hide():void {
PopUpManager.removePopUp(this);
FlexGlobals.topLevelApplication.enabled = true;
}
////////////////////////////
//// component events
private function creationCompleteHandler():void {
PopUpManager.centerPopUp(this);
FlexGlobals.topLevelApplication.enabled = false;
}
]]>
</fx:Script>
</s:Group>
并称之为:
var imageviewer:ImageViewer = ImageViewer.show();
//imageviewer.imageURL = _value_dto.value;