ddc
联网
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
广州网站建设 上海网站设计 网站建设 上海网站建设 网站建设 广州网站设计 虚拟主机 域名注册 虚拟主机 广州网站建设 虚拟主机 域名注册 ACG动漫家园 ACG大玩家 上海网站建设 品牌设计 网站建设
网站建设
网站建设
品牌设计
中国设计秀
中国设计秀企业频道
时代网
中资源
当前位置:网站综合首页 >> 网页JS特效 >> 图形图象类 >> 用trace函数实现互动地图后台快速标注地名

用trace函数实现互动地图后台快速标注地名

来源:中国设计秀    作者:    点击:76     加入收藏    发表评论
0
顶一下
         这一讲中,我们讲解如何通过Flash ActionScript代码的trace函数实现互动地图后台快速标注地名的工作。

   了解trace函数

   首先我们了解一下trace函数;
   我们可以使用 Flash 调试播放器捕获来自 trace() 函数的输出并显示结果。在测试 SWF 文件时,使用此语句可在"输出"面板中记录编程注释或显示消息。使用 expression 参数可以检查是否存在某种条件,或在"输出"面板中显示值。trace() 语句类似于 JavaScript 中的 alert 函数。可以使用"发布设置"对话框中的"省略跟踪动作"命令将 trace() 动作从导出的 SWF 文件中删除。

   需要重点提示的是trace()函数只能在“调试播放器”中生效;而在正式发布后,在Flash Player或是Html文件中运行的 SWF 文件是无法显示输出结果的;因此,这只是一个对地图开发者有效的后台操作的方法。

  制作步骤:

  1、创建标注按钮及对话窗口

   首先我们要创建一个“标注”的按钮元件,一个名为“input_mc”的影片剪辑作为对话窗口,以及一个名为“input_txt”的动态文本框用以手动输入地名名称;如图1所示:

图1 创建标注对话窗口

  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所示;


图2 在调试播放器中的进行标注

   如此反复操作,在输出面板中会持续地输出相应的XML文件代码,如图3所示;


图3 在调试播放器中的输出面板中显示输出结果

   注:由于本例只能在调试播放器中生效,因此在网页中无法演示。依照本例的方法,地图的开发者可以在后台迅速地标注地名。但是这往往只限于通用的路名或是地名,而对于大量的公司、商辅等地名信息,开发者却无法进行海量标注,必须通过其它途径由客户端的操作者自行进行在线标注。这样就必须借助数据库和ASP等协助实现,

2006-11-01 16:12:00    出处:blueidea
Google
热点文章/相关文章

音乐
嫁衣 画心 放生 天亮了 牡丹江 那滋味 擦肩而过 怀念过去 北京欢迎你 突然好想你 吻的太逼真 说好的幸福呢 坐上火车去拉萨 没有人比我更爱你
愚爱 心碎 稻香 带我走 醉赤壁 魔杰座 我还想她 明天过后 一定要爱你 等爱的玫瑰 原谅我一次 越单纯越幸福 最后一次的温柔 给我一首歌的时间
白狐 光荣 降临 下雨天 小酒窝 樱花草 恋爱新手 说唱脸谱 红色高跟鞋 寂寞才说爱 深深爱过你 爱上你是个错 即使知道要见面 不是因为寂寞才想你
城府 假如 花海 兰亭序 棉花糖 舍不得 最后一次 女人如烟 外滩十八号 我们的纪念 我们的无奈 心在跳情在烧 爱上你是我的错 爱情里没有谁对谁错
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口