邮编区号查询flex版(附源码)

开发者在线 Builder.com.cn 更新时间:2008-03-23作者:虫虫 来源:CSDN

本文关键词: Web开发 区号 Flex 查询

  昨天看了一下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++)
  }
  strKey.text=my_Key;
  if(strKey.text=="")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)
      break;
     case "Like" :
      if(myFieldValue.indexOf(strKey.text)>-1)
      break;
     case "Start" :
      if(myFieldValue.indexOf(strKey.text)==0)
      break;
     default :
      if(myFieldValue==strKey.text)
      break;
    }
    
   }
   //alert(ok_array.length.toString());
   Show.dataProvider=ok_array;
   if(strReg.selectedItem.label.indexOf("...")>-1)else
  }
 }
]]>
</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>

用户评论

  • 用户名
  • 评论内容