熟悉Js开发的朋友都应该用过js中的Window.prompt()方法,这个是方法可以很方便的实现弹出窗口提示用户输入,可是在Flex中,只提供了mx.controls.Alert组件,却没有提供类似Window.prompt()这样的方法,正好昨天的项目中,需要这样的组件,我就实现了这个Prompt组件,实现的方法类似于mx.controls.Alert,要显示提示输入窗口调用如下方法:
[java]
show(text:String = "", title:String = "", parent:Sprite = null,
closeHandler:Function = null, value:String = "", modal:Boolean = true):Prompt
其中Text,是提示输入的文本消息,title为提示输入窗口的标题,parent用于窗口居中,closeHandler用于监听窗口关闭,value是确实输入值,modal是否modal窗口。
其中closeHandler的定义如下:
[java] function addReportTypeHandler(event:PromptEvent):void
event.detail包含是点击确定还是取消,event.data包含用户输入的值。
详细用法如下:
[java]
import com.eshangrao.controls.Prompt
....
Prompt.show("请输入新报表类别名称","修改报表类别",null,addReportTypeHandler,oldName);
...
private function addReportTypeHandler(event:PromptEvent):void{
if(event.detail!=Alert.CANCEL){
if(event.data!=''){
...
}
}
}
下面是一个使用范例:
[java]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import com.eshangrao.controls.Prompt;
import com.eshangrao.events.PromptCloseEvent;
import mx.controls.Alert;
private function showPrompt():void{
Prompt.show("清输入某些内容","提示框",this,closeHandler,"somedaat");
}
private function closeHandler(event:PromptCloseEvent):void{
Alert.show(event.detail.toString()+event.data);
}
]]>
</mx:Script>
<mx:Button label="prompt" click="showPrompt()"/>
</mx:Application>
1 Comment at "Prompt:一个Flex弹出提示输入窗口组件"
很实用
Comment Now!