|
2、编写相关的ActionScript代码
打开“标注”按钮的动作面板,输入以下ActionScript代码:
|
on (release) { //鼠标释放时触发 input_mc._visible = 1; //开启标注的对话窗口 } |
打开“拾取标注点”按钮的动作面板,输入以下ActionScript代码:
|
on (release) { //鼠标释放时触发 _root.map_mc.onMouseDown = function () { //当鼠标按下时触发事件 var inputX = _xmouse; //用变量inputX 记录下当前鼠标指针的 X 轴坐标 var inputY = _ymouse; //用变量inputY记录下当前鼠标指针的 Y 轴坐标 }
} |
注:上述代码中捕捉鼠标指针的XY坐标值只是示意性的,事实上在实用的地图中远远没有这么简单;因为我们通常是在指定的地点上标注地名名称,因而需要对地图进行缩放、移动等操作;而单纯用_xmouse和_ymouse是无法捕捉正确的坐标值,必须依靠_xscale、_yscale、_width、_hight、_x、_y等属性值去纠正因操作地图产生的偏差。而相关的公式因不同的地图结构各不相同,无法在本例中给出通用的代码。以下是笔者在制作深圳地图时使用的相关捕捉点的公式,仅能作概念性的参考;
|
_global.bzX = Math.round(15868.48*(_root._xmouse-_root.map_mc._x+825*_root.map_mc._xscale/100)/_root.map_mc._xscale);
//捕捉X轴坐标
_global.bzY = Math.round(15868.48*(_root._ymouse-_root.map_mc._y+426*_root.map_mc._xscale/100)/_root.map_mc._xscale);
//捕捉Y轴坐标 |
而在捕捉到指针坐标的同时还可以直接在地图上显示一个标记,可以加入以下代码,用一个红色的圆点表示:
|
_root.map_mc.createEmptyMovieClip("dzpot_mc", this.getNextHighestDepth()); //画一个圆点 _root.map_mc.dzpot_mc.lineStyle(2, 0xff0000, 100); //圆点为红色,粗细磅值为2 _root.map_mc.dzpot_mc.moveTo(0, 0); _root.map_mc.dzpot_mc.lineTo(0, 0.1); _root.map_mc.dzpot_mc._width = _root.map_mc.dzpot_mc._height = 1000/_root.map_mc._xscale; //调整圆点的大小 _root.map_mc.dzpot_mc._x = _root.map_mc._xmouse; //圆点坐标与捕捉点重合 _root.map_mc.dzpot_mc._y = _root.map_mc._ymouse; //圆点坐标与捕捉点重合 |
打开“完成”按钮的动作面板,输入以下ActionScript代码:
|
on (release) { //鼠标释放时触发 var inputName = input_txt.text //用变量inputName记录下输入的地名名称 race("<r><n>"+inputName+"</n><x>"+inputX+"</x><y>"+inputY+"</y></r>"+/n); //在输出面板中显示XML文件格式的代码 } |
3、在调试播放器中标注地名:
点击菜单“发布预览”/“Flash”,打开调试播放器,在其中进行标注,如图2所示; |