您所在的位置:QQ首页 > 动画频道 > 其他教程> 正文

用flash做电子地图(1)
http://flash.QQ.com   2006年 07月 26日 13:52   闪吧  

下一个更精彩:蓝色人物绘制教程

关于flash,大家或多或少都有所了解。比如上网,到处都能看到flash的存在。flash的应用也是五花八门。今天我们讲的是用flash做电子地图。

现在在网上随处都能找到电子地图,其中大部分都是java来开发的,其实用flash也可以做电子地图。且界面还比较漂亮。现在网上已经有用flash做的电子地图了。且呈发展趋势。象"中国电子地图网"里面的地图就是用flash做的。还有九江,五邑等地图也都是用flash来完成的。

现在我们就来学习用flash做电子地图,首先要了解电子地图的功能,最主要的功能就是方便你查找,还有就是可以有选择性的显示。比如我到一个城市,我要去一个地方,如果有一张地图,你需要一点一点的看,还要找怎么去。而电子地图就不一样了,你可以搜索,就直接标出那个地方,还可以告诉你几路公交车到,附近有什么宾馆,饭店等等。所以,电子地图一般要具备的功能是:放大,缩小,移动,地点链接(相信介绍),搜索,等一系列功能。这么大的数据量是不肯保存在flash里的,从技术的层面来说,就是要做到数据和图层的动态载入,实现数据的模糊,智能,区域查询等功能。

废话少说,首先我们来认识flash的mc(影片剪辑),已经做电子地图所用到的几个属性。如下:

_x //相对于父级影片剪辑的本地坐标的 x 坐标。如果影片剪辑在主时间轴中,则其坐标系统将舞台的左

上角作为 (0, 0)。

_y //相对于父级影片剪辑的本地坐标的 y 坐标。如果影片剪辑在主时间轴中,则其坐标系统将舞台的左

上角作为 (0, 0)。

_width //影片剪辑的宽度,以像素为单位。

_height //影片剪辑的高度,以像素为单位。

_xscale //确定从影片剪辑注册点开始应用的影片剪辑水平缩放比例。默认注册点为 (0,0)。

_yscale //设置从影片剪辑注册点开始应用的影片剪辑垂直缩放比例。默认注册点为 (0,0)。

利用鼠标和键盘来完成地图的放大、缩小、拖动等功能:

startDrag 函数 //执行 startDrag() 操作后,影片剪辑将保持可拖动状态。

stopDrag 函数 //和startDrag是一对函数,用于停止当前的拖动操作。

基本上就这么多了,一会遇到那个再详细讲。

下面我们一步一步来做电子地图:

一、首先我们打开flash新建一个影片,大小设为宽:440px 高:316。(根据你的需要来设定)。

 

二、然后倒入一张你准备好的地图,我的是一张880╳632的(这样放大时效果会好很多),导入到库中。然后打开库,选择地图拖入到场景中,转换成影片剪辑,注册点选则中央,这样放大缩小就以这个地图的中央为中心了。取名为map_mc(重要的事下面的名字)。因为程序要控制这个地图,所以要给他起个名字。

三、好了,地图剪辑建好了,我们就开始用程序控制他了。首先,我们来实现放大缩小。有的介绍的是用_width和_height这两个属性,也可以实现,但没有_xscale和_yscale方便。因为_xscale和_yscale直接就是原大小的百分比。新建一个图层,选中然后在场景中画个方块,转换成按钮(和地图一样,不过次选择的是按钮)。给按钮命名为fangda_btn,选择这个按钮,打开动作面板写上如图的程序:同理建立缩小和还原的按钮。

放大按钮上的程序:

on(press){ //当鼠标按下的时候执行下面的程序

map_mc._xscale=map_mc._xscale+10; //地图在x轴上的百分比增加10

map_mc._yscale=map_mc._yscale+10; //地图在y轴上的百分比增加10

}

缩小按钮上的程序:

on(press){ //当鼠标按下的时候执行下面的程序

map_mc._xscale=map_mc._xscale-10; //地图在x轴上的百分比减少10

map_mc._yscale=map_mc._yscale-10; //地图在y轴上的百分比减少10

}

还原按钮上的程序:

on(press){ //当鼠标按下的时候执行下面的程序

map_mc._xscale=100; //地图在x轴上的原大小

map_mc._yscale=100; //地图在y轴上的原大小

}

在时间轴上的程序:(因为拖动的四地图,不用按钮,当然,其他的也可以写到时间轴上)

map_mc.onMouseDown = function () { //当鼠标按下的时候执行

startDrag(map_mc); //鼠标可以拖动地图

}

map_mc.onMouseUp = function () { //当鼠标弹起(不按时)

stopDrag(); //停止拖动

}

最后,大家可能会发现,如果一直缩小,就会出现问题,后来反而变大了,拖动可以把地图拖出去,这些都不是我们想要的效果,我们下一次会专门讲解这个问题,在这先透露一下,我们下一节讲的是限制放大和缩小,移动的边界。以及内容会随着地图的放大缩小自动隐藏和显示等问题。另外,由于本人也不是很精通,如果哪儿出现错误或疏漏之处还请给与指正,欢迎大家一起交流探讨。

免费订阅】【发表评论】【动画论坛】【  】【关闭
发表评论
 QQ号码:
 QQ密码:
 验证码: 匿名发表
* 请各位网友遵纪守法并注意语言文明。
*《互联网电子公告服务管理规定》
*《全国人大常委会关于维护互联网安全的规定》




关于腾讯 | About Tencent | 服务条款 | 广告服务 | 腾讯招聘 | 腾讯公益 | 客服中心 | 网站导航
Copyright © 1998 - 2008 Tencent Inc. All Rights Reserved
腾讯公司 版权所有