动态创建button

xiaoxiao2022-06-13  21

<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" creationComplete="init()"> <mx:Metadata> [Event(name="transferCallout",type="flash.events.TextEvent")] </mx:Metadata> <mx:Script> <![CDATA[ import com.protel.cti.ctiSharedObject.CTISharedObjectManager; import com.protel.cti.util.CTIlog; import myas.http.Init_http; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.controls.Alert; import font.agd.callout.callout; import mx.utils.UIDUtil; import com.protel.cti.util.CTIlog; public var urlString:String=CTISharedObjectManager.getData("servleturl"); private function transferCallouts():void { var event:TextEvent=new TextEvent("transferCallout"); dispatchEvent(event); } private function init():void { myHttp.initHttp(quickCall_http,serve_url,par,urlString); } //速拨表 private var myHttp:Init_http=new Init_http(); private var serve_url:String="CTISpeedDial.do?servlet=getAll&random="+UIDUtil.createUID(); private var par:String="<cti><paging><curPage>1</curPage></paging></cti>"; private var result_callout_arr:Array; private var result_xml_len:int; private function getCallOutResult(event:ResultEvent):void { try{ var xml_list:XMLList=myHttp.getResult(event,quickCall_http); var i:int; result_xml_len=xml_list.children().length(); if(result_xml_len>1) { var x:int=0,y:int=0,k:int=0; for(i=0;i<result_xml_len;i++)//result_xml_len=8-1; { var name:String=xml_list.model[i].DialName; var telNum:String=xml_list.model[i].DialNo; if(name!="" && telNum!="") { var bt:Button=creatButon(name,telNum,i); } if(k<3) { bt.x=x; x=x+95;//x间隔为95 bt.y=y; k++; canvas.addChild(bt); } else { bt.x=x; bt.y=y; canvas.addChild(bt);//把第四个放在第三个后面 x=0; k=0; y=y+50;//间隔为50 } } } } catch(error:Error) { //CTIlog.error(error.message.toString()); } function creatButon(name:String,telNum:String,i:int):Button { var bt:Button=new Button(); var ss:String="bt"+i.toString(); bt.id="bt"+i.toString(); bt.label=name;//数据库获得 bt.toolTip=telNum;//数据库获得 var s:String; //bt.addEventListener(MouseEvent.MOUSE_OVER,btMouseOver); //bt.addEventListener(MouseEvent.MOUSE_OUT,btMouseOut); bt.addEventListener(MouseEvent.CLICK,btClick); function btClick(event:MouseEvent):void { var telNum:String; try { telNum=bt.toolTip; var event1:TextEvent=new TextEvent("transferCallout"); event1.text=telNum; dispatchEvent(event1); } catch(error:Error) { CTIlog.error(error.message.toString()); } //conn.send("Protel_CTI_AGD", "makecall",telNum); } return bt; /* function btMouseOver():void { var telNumShow:String=telNum; CTIlog.log("速拨\n"+telNumShow); } function btMouseOut():void { }*/ } } private function getFault(event:FaultEvent):void { CTIlog.log("Error " + event.message.toString()); } ]]> </mx:Script> <mx:HTTPService id="quickCall_http" resultFormat="text" result="getCallOutResult(event)" fault="getFault(event)"/> <mx:Canvas x="0" y="0" width="100%" height="100%" id="canvas"> <mx:Button x="325" y="268" label="Button" click="transferCallouts()" enabled="false" visible="false"/> </mx:Canvas> </mx:Canvas> //使用: 1,导入到application-->> <ns1:quickCall_bt x="10" y="77" width="432" height="323" transferCallout="dispalyCall(event)"> 2,在application中写方法--->> private function dispalyCall(event:TextEvent):void { //CTIlog.debug(event.text); makecall2(event.text); }
转载请注明原文地址: https://www.6miu.com/read-4936189.html

最新回复(0)