注:其中<n>与</n>项为地名名称;<x>122</x>与<y>63</y>项为地名标注的X轴与Y轴坐标,至于其坐标值的得来将在以后的实例中详细讲解。
2、Flash调用的代码
打开Flash Professional,在上一讲中的地图底图所在层的时间轴上,再补入以下ActionScript代码:
|
var road_xml:XML = new XML(); //建立XML对象 road_xml.ignoreWhite = true; //忽略空格: road_xml.onLoad = function (success:Boolean):Void { if (success) { //如果调用成功 var childItems:Array = road_xml.firstChild.childNodes; //定义数据组 var f=0; //定义MC深度的变量 for (var i:Number = 0; i <childItems.length; i++) { var x=childItems[i].childNodes[1].childNodes[0].nodeValue //获取X坐标值 var y=childItems[i].childNodes[2].childNodes[0].nodeValue //获取Y坐标值 _root.map_mc.bzmap_mc.createTextField("road"+i, f, x, y, 1, 1); //创建地名文本 p=eval("road"+i); //将文本框变量的名称赋给p p.autoSize = "left"; //指定文本的对齐方式 p.text = childItems[i].childNodes[0].childNodes[0].nodeValue ; //获取地名名称 f=f+1; //MC深度自动加1 } } } road_xml.load("road.xml"); //调用XML文件: |
注:其中XML文件的路径使用了相对路径,此路径是XML文件相对于调用Flash文件的网页文件的路径,即在本例中,调用Flash地图文件的网页文件必须与Road.xml文件置于相同的路径下,否则Flash将无法调用XML文件。
发布后,效果如下:
调用外部XML文件加注地名
这样,Flash文件只提供电子地图的基本构架,由外部的road.xml文件提供地名标注信息,如对地名进行删减、增加、纠错等操作时,只需要对XML文件进行相应的更改就可以了,而Flash文件不需要做任何的改动。这样就大大减小了维护、更新的工作量。
以上就是Flash调用外部XML文件的基本步骤;当然我们在本例中调用是已经编辑好的XML数据文件,而获取海量地名在地图上的坐标值也同样可以在Flash环境中获得。