首页 »Flash教程 » flashxml地图:Flash+XML实现电子地图查询及定位功能 »正文
flashxml地图:Flash+XML实现电子地图查询及定位功能
来源: 发布时间:星期五, 2009年1月23日 浏览:160次 评论:0
本例要实现 ![](/icons/35768de.gif) 功能分成“查询”和“定位”两部分 ![](/icons/35768dou.gif) 查询功能通过 ![](/icons/35768diaoyong.gif) XML文件 ![](/icons/35768de.gif) 数据 ![](/icons/35768yi.gif) ![](/icons/35768yi.gif) 比对实现 ![](/icons/35768dou2.gif) 定位功能通过将地图进行适当 ![](/icons/35768de.gif) 缩放和移动 ![](/icons/35768dou.gif) 将被查询到 ![](/icons/35768de.gif) 地名显示在窗口 ![](/icons/35768de.gif) 中央位置来实现 ![](/icons/35768dou2.gif) 制作步骤: 制作如图所示 ![](/icons/35768de.gif) 界面; ![](http://www.crazycoder.cn/WebFiles/20091/daa99249-f2cb-429a-9a95-4989ec4e14d0.jpg) 图1 查询功能 ![](/icons/35768de.gif) 界面 用input_txt动态文本框接收输入 ![](/icons/35768de.gif) 地名名称 ![](/icons/35768dou2.gif) 用载入 ![](/icons/35768de.gif) 外部文件XMLData.xml ![](/icons/35768dou.gif) 依次将地名和input_txt.text比较 ![](/icons/35768dou.gif) 如果两个地名相符 ![](/icons/35768dou.gif) 取相对应 ![](/icons/35768de.gif) X、Y轴坐标值 ![](/icons/35768dou.gif) 将地图做相应 ![](/icons/35768de.gif) 缩放及移动操作 ![](/icons/35768dou2.gif) 在本例中地图将做放大50倍 ![](/icons/35768dou.gif) 同时将地图中心移动至被查询 ![](/icons/35768de.gif) 地名 ![](/icons/35768dou2.gif) XMLData.xml ![](/icons/35768de.gif) 内容如下: (略)…… <r><n>金鼎辉煌世纪</n><x>37488</x><y>33882</y></r> <r><n>文锦大厦</n><x>38194</x><y>33651</y></r> <r><n>联城联合大厦</n><x>38402</x><y>33771</y></r> <r><n>外贸轻工大厦</n><x>38233</x><y>32624</y></r> <r><n>友联工业大厦</n><x>13802</x><y>43238</y></r> <r><n>罗湖中学</n><x>37225</x><y>34520</y></r> <r><n>东莞外贸大厦</n><x>37314</x><y>33971</y></r> <r><n>丽都大厦</n><x>37442</x><y>33995</y></r> <r><n>东乐大厦</n><x>37746</x><y>33549</y></r> <r><n>鸿昌广场</n><x>37996</x><y>33504</y></r> (略)…… 打开时间轴 ![](/icons/35768de.gif) 动作面板 ![](/icons/35768dou.gif) 输入以下ActionScript代码: input_text="请输入地名"; // 化输入文本框 var XMLData_xml:XML = XML ; //装载外部XMLData_xml文件 XMLData_xml.ignoreWhite = true; //忽略空白 XMLData_xml.load("http://www.wanggesz.com/XMLData/XMLData.xml"); //打开指定路径 xml文件 function XMLData { //定义查询XMLData![](/icons/35768kh.gif) ![](/icons/35768hanshu.gif) var input =_root.XMLData_mc.input_txt.text; //输入 地名名称
(input "") {_root.XMLData_mc.input_txt.text="请输入地名"} //如果地名名称为空 重新要求输入地名
(input!="请输入地名") { //如果正确输入地名 var childItems:Array = XMLData_xml.firstChild.childNodes; for (var i=0; i <childItems.length; i ) { var sn= childItems[i].childNodes[0].childNodes[0].nodeValue ; //读入xml文件中 地名
(sn input) { //如果输入和xml地名相符 var sx=childItems[i].childNodes[1].childNodes[0].nodeValue; //读入xml文件中 x坐标 var sy=childItems[i].childNodes[2].childNodes[0].nodeValue; //读入xml文件中 y坐标 _root.map_mc._xscale = _root.map_mc._yscale = 5000; //地图增大为50倍 _root.map_mc._x = 412.5-50*(10000*sx/1086848-412.5); //地图中心点移至所查地点 _root.map_mc._y = 213-50*(10000*sy/1086848-213); _root.map_mc.roadname01_mc._visible=0; //隐藏标注地名 } } } 打开“查询”按钮 ![](/icons/35768de.gif) 动作面板 ![](/icons/35768dou.gif) 输入以下ActionScript代码: on (release) { //当鼠标释放时 XMLData ; // “查询”![](/icons/35768hanshu.gif) } 正式发布后 ![](/icons/35768dou.gif) 输入“罗湖中学” ![](/icons/35768dou.gif) 查询到相对应 ![](/icons/35768de.gif) 代码为“<r><n>罗湖中学</n><x>37225</x><y>34520</y></r>” ![](/icons/35768dou.gif) 地图自动放大50倍 ![](/icons/35768dou.gif) 地图中心移至(37225,34520) ![](/icons/35768dou2.gif) 效果如图2所示; ![](http://www.crazycoder.cn/WebFiles/20091/87a57bae-721e-452a-abf3-78059219a948.jpg) 图2 查询到地名 ![](/icons/35768dou.gif) 地图做出相应 ![](/icons/35768de.gif) 缩放和移动操作 至此 ![](/icons/35768dou.gif) Flash电子地图制作例子系列就结束了 ![](/icons/35768dou2.gif) 当然 ![](/icons/35768dou.gif) 电子地图 ![](/icons/35768de.gif) 功能还可以更加丰富 ![](/icons/35768dou.gif) 比如公交查询、最佳路径查询、分类信息查询等等 ![](/icons/35768dou2.gif) 但缩放、移动、标注、测距和查询是所有 ![](/icons/35768de.gif) 电子地图 ![](/icons/35768de.gif) 基本 ![](/icons/35768de.gif) 功能 ![](/icons/35768dou2.gif) 只要掌握了这些基本功能 ![](/icons/35768de.gif) 制作思路方法 ![](/icons/35768dou.gif) 就可以制作出比较合格 ![](/icons/35768de.gif) 电子地图
相关文章
读者评论
发表评论
|
|