小弟布局什么都乱七八糟,但是功能还是行了,不知道哪位大神可以看懂,我乱七八糟的代码,是干嘛的,这功能幸好公司内部用,不然做出去就难看死了
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication 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="800" height="600" showStatusBar="false"> <fx:Script> <![CDATA[ import flashx.textLayout.conversion.TextConverter; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.factory.StringTextLineFactory; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.events.FlexEvent; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import spark.events.GridSelectionEvent; import spark.utils.DataItem; private var content:String=""; private var newcontent:String=""; private var imgcount:int=0; private var imgreplace:int=0; private var servename:String=""; public var customerid:String=""; [Bindable] public var customerList:ArrayCollection; [Bindable] public var _pageList:ArrayCollection; private function richeditabletext1_pasteHandler(event:Event):void { var a:* = Clipboard.generalClipboard.getData(ClipboardFormats.HTML_FORMAT); //从系统剪切板中读取是html格式的数据 if(a!=null){ var stra:String= a as String; content=content as String; var myPattern:RegExp =/file:\/\/\//gi; stra=stra.replace(myPattern, ""); content=content+stra; a=content as Object; abc.textFlow = TextConverter.importToFlow(a, TextConverter.TEXT_FIELD_HTML_FORMAT); } } protected function button1_clickHandler(event:MouseEvent):void { if(abc.text==""){ Alert.show("输入不能为空"); return ; } var flexreg:RegExp=/<IMG/gi; if(content.search(flexreg)<0){//说明提交的内容没有图片,那么就直接提交 var params:Object = {}; params["content"]=abc.text; params["customer.serveCustomer"]=servename; params["customer.id"]=customerid; service.send(params); return; } //把content中的img的标签替换掉,替换成{图片发送上去,服务器返回给客户端的一个地址} while(content.search(flexreg)>=0){ imgcount++;//图片数量加一 var start:int=content.search(flexreg); newcontent=newcontent+content.substring(0,start);//newcontent信息取到标签之前 content=content.substring(start,content.length);//content字符串去掉<IMG之前的字符 var intsrc:int=content.indexOf("src"); newcontent=newcontent+content.substring(0,intsrc);//把src属性之前的字符取到,可能有width之类的 content=content.substring(intsrc,content.length); var intone:int=content.indexOf('"'); newcontent=newcontent+content.substring(0,intone+1);//把第一个引号字符取到,可能有width之类的 newcontent=newcontent+"{"+imgcount+"}"; content=content.substring(intone+1,content.length); var inttwo:int=content.indexOf('"'); var strsrc:String=content.substring(0,inttwo);//图片的地址 content=content.substring(inttwo,content.length);//原先字符串去掉路径 //向newcontent中添加返回的绝对路径 var file:File = new File(strsrc); if(file.exists){ file.upload(new URLRequest("http://localhost:8080/WallpaperShowShow/terminal/serve_uploadImg?imgcount="+imgcount),"file"); file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, uploadComplete); file.addEventListener(IOErrorEvent.IO_ERROR,onIoError); } } //要把最后一个img标签后面的字符加入进去 newcontent=newcontent+content; } protected function uploadComplete(event:DataEvent):void{ var obj:Object=JSON.parse(event.data) var state:String=obj.state as String; if(state == "0"){ Alert.show("图片上传失败"); return ; } var strs:Array=state.split("&"); newcontent=newcontent.replace("{"+strs[1]+"}",strs[0]); imgreplace++; if(imgcount==imgreplace){ var params:Object = {}; params["content"]=newcontent; params["customer.serveCustomer"]=servename; params["customer.id"]=customerid; service.send(params); } } protected function onIoError(event:IOErrorEvent):void{ Alert.show("图片上传失败"); } //调用失败 protected function service_faultHandler(event:FaultEvent):void { Alert.show("提交失败了","提示"); } //内容点击提交之后是成功还是失败 protected function service_resultHandler(event:ResultEvent):void { var obj:Object=JSON.parse(event.result.toString()); var state:String=obj.state as String; if(state=="1"){ Alert.show("提交成功","提示"); abc.text=""; }else{ Alert.show("提交失败","提示"); } } //点击登陆按钮开始验证,并发送请求 protected function login_clickHandler(event:MouseEvent):void { if(""==username.text || ""==userpwd.text){ Alert.show("请出入完整信息","提示"); return; } var params:Object = {}; params["admin.loginName"]=username.text; params["admin.loginPwd"]=userpwd.text; loginservice.send(params); } protected function login_faultHandler(event:FaultEvent):void { Alert.show("登陆失败了","提示"); } //登陆成功,发送请求去读取客户数据 protected function login_resultHandler(event:ResultEvent):void { var obj:Object=JSON.parse(event.result.toString()); var state:String=obj.state as String; if(state == "0"){ Alert.show("用户名密码错误"); }else{ servename=obj.name as String; customerservice.send(); } } protected function customer_faultHandler(event:FaultEvent):void { Alert.show("读取客户表失败","提示"); } //登陆成功要进行客户列表的显示 protected function customer_resultHandler(event:ResultEvent):void { var obj:Object=JSON.parse(event.result.toString()); customerList = new ArrayCollection(); _pageList = new ArrayCollection(); for (var i:int = 0; i < obj.customerList.length; i++) { var dataItem:DataItem = new DataItem(); dataItem.name = obj.customerList[i].name; dataItem.phone = obj.customerList[i].phone; dataItem.serveCustomer = obj.customerList[i].serveCustomer; dataItem.customerType = obj.customerList[i].customerType; dataItem.id=obj.customerList[i].id; customerList.addItem(dataItem); } if(obj.page.currentPage>1) _pageList.addItem({num:obj.page.currentPage-1,left:true,click:gotoPage}); for (var j:int = 1; j <= obj.page.sumPage; j++) { if(j==obj.page.currentPage){ _pageList.addItem({num:j,current:true}); }else if((j < obj.page.currentPage+3 && j > obj.page.currentPage-3) || j > obj.page.sumPage-2 || j < 3){ _pageList.addItem({num:j,click:gotoPage}); }else if(j == obj.page.currentPage+3||j == obj.page.currentPage-3){ _pageList.addItem({num:"...",isPoint:true}); } } if(obj.page.currentPage<obj.page.sumPage) _pageList.addItem({num:obj.page.currentPage+1,right:true,click:gotoPage}); currentState = "logined"; } //翻页按钮 进行翻页 private function gotoPage(currentPage:int = 1):void { var req:Object ={}; if(cname.text!=""){ req["name"]=cname.text; } req["page.currentPage"]=currentPage; customerservice.send(req); } private function creationCompleteHandler(event:FlexEvent):void { event.target.scroller.setStyle('verticalScrollPolicy','off'); event.target.scroller.setStyle('horizontalScrollPolicy','off'); } // 点返回按钮状态返回 protected function back_clickHandler(event:MouseEvent):void { currentState="logined"; } protected function search_clickHandler(event:MouseEvent):void { var params:Object={}; params["name"]=cname.text; customerservice.send(params); } ]]> </fx:Script> <fx:Declarations> <s:HTTPService id="service" url="http://192.168.1.200:8080/WallpaperShowShow/terminal/serve_addServeRecord" useProxy="false" method="POST" fault="service_faultHandler(event)" result="service_resultHandler(event)" resultFormat="text"> </s:HTTPService> <s:HTTPService id="loginservice" url="http://192.168.1.200:8080/WallpaperShowShow/terminal/flex_logined" useProxy="false" method="POST" fault="login_faultHandler(event)" result="login_resultHandler(event)" resultFormat="text"> </s:HTTPService> <s:HTTPService id="customerservice" url="http://192.168.1.200:8080/WallpaperShowShow/terminal/flex_searchCustomer" useProxy="false" method="POST" fault="customer_faultHandler(event)" result="customer_resultHandler(event)" resultFormat="text"> </s:HTTPService> </fx:Declarations> <s:states> <s:State name="login"/> <s:State name="logined"/> <s:State name="recording" /> </s:states> <s:VGroup includeIn="login" verticalCenter="0" horizontalCenter="0" horizontalAlign="center"> <s:HGroup verticalAlign="middle"> <s:Label text="用户名:" width="100" textAlign="right"/> <s:TextInput id="username" /> </s:HGroup> <s:HGroup verticalAlign="middle"> <s:Label text="密 码:" width="100" textAlign="right"/> <s:TextInput id="userpwd" displayAsPassword="true" /> </s:HGroup> <s:HGroup verticalAlign="middle" > <s:Button label="登录" click="login_clickHandler(event)" /> </s:HGroup> </s:VGroup> <s:Group includeIn="logined" verticalCenter="0" horizontalCenter="0" > <s:VGroup> <s:HGroup verticalCenter="-20" horizontalCenter="-10"> <s:Label text="姓名:" verticalAlign="middle" width="100" textAlign="right" height="20" /> <s:TextInput id="cname" /> <s:Button label="查询" click="search_clickHandler(event)"/> </s:HGroup> <s:DataGrid x="10" y="10" width="700" height="351" borderColor="0xdedede" dataProvider="{customerList}" fontSize="14"> <s:columns> <s:ArrayList> <s:GridColumn dataField="name" headerText="客户名称"></s:GridColumn> <s:GridColumn dataField="phone" headerText="电话"></s:GridColumn> <s:GridColumn dataField="serveCustomer" headerText="销售员"></s:GridColumn> <s:GridColumn dataField="customerType" headerText="客户类型"></s:GridColumn> <s:GridColumn headerText="增加记录"> <s:itemRenderer> <fx:Component> <s:GridItemRenderer> <fx:Script> <![CDATA[ import mx.controls.Alert; protected function gostate(event:MouseEvent):void { outerDocument.customerid=data.id; outerDocument.currentState="recording"; } ]]> </fx:Script> <s:Label text="添加记录" left="5" color="0x26546c" verticalCenter="0" click="gostate(event)" mouseChildren="false" buttonMode="true" useHandCursor="true"/> </s:GridItemRenderer> </fx:Component> </s:itemRenderer> </s:GridColumn> </s:ArrayList> </s:columns> </s:DataGrid> </s:VGroup> <s:HGroup horizontalAlign="right" verticalCenter="200" horizontalCenter="-60"> <s:List dataProvider="{_pageList}" borderVisible="false" contentBackgroundAlpha="0" height="50" creationComplete="creationCompleteHandler(event)" itemRenderer="itemRenderer.PageItemRenderer"> <s:layout> <s:HorizontalLayout verticalAlign="middle" gap="5" /> </s:layout> </s:List> </s:HGroup> </s:Group> <s:Group includeIn="recording"> <s:HGroup verticalCenter="20" horizontalCenter="20"> <s:Label backgroundColor="#FFFFFF" fontFamily="Arial" fontSize="14" text="内容:"/> <s:Group> <s:Rect width="600" height="450"> <s:stroke> <s:SolidColorStroke color="0x0"/> </s:stroke> </s:Rect> <s:RichEditableText id="abc" x="0" y="0" width="600" height="450" text="RichEditableText" paste="richeditabletext1_pasteHandler(event)"> <s:span></s:span> </s:RichEditableText> </s:Group> <s:VGroup> <s:Button label="提交" click="button1_clickHandler(event)"/> <s:Button label="返回" click="back_clickHandler(event)"/> </s:VGroup> </s:HGroup> </s:Group> </s:WindowedApplication>