打开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 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文件。
这样,flash文件只提供电子地图的基本构架,由外部的road.xml文件提供地名标注信息,如对地名进行删减、增加、纠错等操作时,只需要对xml文件进行相应的更改就可以了,而flash文件不需要做任何的改动。这样就大大减小了维护、更新的工作量。
以上就是flash调用外部xml文件的基本步骤;当然我们在本例中调用是已经编辑好的xml数据文件,而获取海量地名在地图上的坐标值也同样可以在flash环境中获得。
评论加载中…
![]() |