【原创作者】丛兴滋(cncxz)[E-mail:cncxz@126.com] 【关 键 词】Flex xml Flash 邮编区号 【源码下载】http://www.thisky.cn/down/Flexzip.rar 做天看了一下Macromedia的Flex技术,感觉很不错,于是把刚做好的邮编区号查询Js+Xml版改装了一下弄出了这个邮编区号查询flex版(这可是我的第一个flex程序哦^O^)。
源码压缩包中除了包含flex的源文件zip.mxml外,还有编译生成的flash文件,要是你那里没有flex的运行环境,就用邮编区号查询flash版好了,不过Flash播放插件得是最新的7.0才可以使用。 下面是相关的核心代码: 1、data.xml文件代码(这里只列了5条,明白他的结构就可以): <?xml version="1.0" encoding="gb2312"?> <!-- 邮编区号数据 --> <MyData> <Item Province="北京" County="北京" Zipcode="100000" Areacode="010" /> <Item Province="北京" County="通县" Zipcode="101100" Areacode="010" /> <Item Province="北京" County="昌平" Zipcode="102200" Areacode="010" /> <Item Province="北京" County="大兴" Zipcode="102600" Areacode="010" /> <Item Province="北京" County="密云" Zipcode="101500" Areacode="010" /> </MyData>
2、zip.mxml文件代码: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" pageTitle="全国邮编区号查询Flex版"> <mx:Model id="myZIP" source="data.xml"></mx:Model> <mx:Panel title="全国邮编区号查询" width="500" height="90" fontSize="14" fontFamily="宋体" verticalAlign="middle" textAlign="center"> <mx:HBox marginLeft="30"> <mx:ComboBox id="strField" width="70"> <mx:dataProvider> <mx:Array> <mx:Object label="省份" data="Province"/> <mx:Object label="地区" data="County"/> <mx:Object label="邮编" data="Zipcode"/> <mx:Object label="区号" data="Areacode"/> </mx:Array> </mx:dataProvider> </mx:ComboBox> <mx:ComboBox id="strReg" width="100"> <mx:dataProvider> <mx:Array> <mx:Object label="等于" data="="/> <mx:Object label="包含" data="Like"/> <mx:Object label="以...开头" data="Start"/> </mx:Array> </mx:dataProvider> </mx:ComboBox> <mx:TextInput textAlign="left" id="strKey" text="山东"/> <mx:Button label="查询" fontSize="12" click="Search();"/> </mx:HBox> </mx:Panel> <mx:Script> <![CDATA[ function Search(){ var my_Keyarray:Array=strKey.text.split(" "); var my_Key=""; for(var i:Number = 0; i<my_Keyarray.length; i++){ if(my_Keyarray[i]!=""){ my_Key+=my_Keyarray[i]; } } strKey.text=my_Key; if(strKey.text==""){ alert("关键词不可为空!","系统提示"); }else{ var my_array:Array =myZIP.Item; var ok_array:Array=new Array(); var my_Field,my_Reg for(var i:Number = 0; i<my_array.length; i++){ var myFieldValue; switch(strField.selectedItem.data){ case "Province" : myFieldValue=my_array[i].Province; break; case "County" : myFieldValue=my_array[i].County; break; case "Zipcode" : myFieldValue=my_array[i].Zipcode; break; case "Areacode" : myFieldValue=my_array[i].Areacode; break; default : myFieldValue=my_array[i].Province; } switch(strReg.selectedItem.data){ case "=" : if(myFieldValue==strKey.text){ ok_array.push(my_array[i]); } break; case "Like" : if(myFieldValue.indexOf(strKey.text)>-1){ ok_array.push(my_array[i]); } break; case "Start" : if(myFieldValue.indexOf(strKey.text)==0){ ok_array.push(my_array[i]); } break; default : if(myFieldValue==strKey.text){ ok_array.push(my_array[i]); } break; } } //alert(ok_array.length.toString()); Show.dataProvider=ok_array; if(strReg.selectedItem.label.indexOf("...")>-1){ Result.title="搜索"+strReg.selectedItem.label.substring(0,strReg.selectedItem.label.indexOf("..."))+"【"+strKey.text+"】"+strReg.selectedItem.label.substr(strReg.selectedItem.label.indexOf("...")+3)+"的【"+strField.selectedItem.label+"】,共找到"+ok_array.length.toString()+"条信息。"; }else{ Result.title="搜索"+strReg.selectedItem.label+"【"+strKey.text+"】的【"+strField.selectedItem.label+"】,共找到"+ok_array.length.toString()+"条信息。"; } } } ]]> </mx:Script> <mx:Panel id="Result" width="500" height="400" fontSize="14" fontFamily="宋体"> <mx:DataGrid id="Show" height="100%" width="100%"> <mx:columns> <mx:Array> <mx:DataGridColumn columnName="Province" headerText="省份"/> <mx:DataGridColumn columnName="County" headerText="地区"/> <mx:DataGridColumn columnName="Zipcode" headerText="邮编"/> <mx:DataGridColumn columnName="Areacode" headerText="区号"/> </mx:Array> </mx:columns> </mx:DataGrid> </mx:Panel> <mx:Style> global { font-family: 宋体;font-size: 12px; } </mx:Style> </mx:Application> =========== 最后附上几个flex技术论坛地址 ============== http://www.riacn.com/bbs/showforum.asp?forumid=6 http://www.flexdn.com/bbs/ http://www.anyflex.cn/bbs/
|