




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
()flash地图制作教程.()flash地图制作教程.()flash地图制作教程.精选文档对于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轴上的百分比增添10map_mc._yscale=map_mc._yscale+10;//地图在y轴上的百分比增添10}减小按钮上的程序:on(press){//当鼠标按下的时候履行下边的程序map_mc._xscale=map_mc._xscale-10;//地图在x轴上的百分比减少10map_mc._yscale=map_mc._yscale-10;//地图在y轴上的百分比减少10}还原按钮上的程序:on(press){//当鼠标按下的时候履行下边的程序map_mc._xscale=100;map_mc._yscale=100;
//地图在//地图在
x轴上的原大小y轴上的原大小}在时间轴上的程序:〔因为拖动的四地图,不用按钮,自然,其余的也能够写到时间轴上〕map_mc.onMouseDown=function()startDrag(map_mc);//鼠标能够拖动地图
{
//当鼠标按下的时候履行}map_mc.onMouseUp=
function
()
{
//当鼠标弹起〔严禁时〕精选文档精选文档stopDrag();//停止拖动}最后,大家可能会发现,假如向来减小,就会出现问题,今后反而变大了,拖动能够把地图拖出去,这些都不是我们想要的见效,我们下一次会专门解说这个问题,在这先显露一下,我们下一节讲的是限制放大和减小,挪动的界限。以及内容会跟着地图的放大减小自动隐蔽和显示等问题。其余,因为自己也不是很精晓,假如哪儿出现错误或粗心之处还请给与指正,欢送大家一同沟通商讨。不知道大家看了上一篇有什么感觉,或许对妙手来说是太简单了,但对入门者来说应当还能够够吧。我们一步一步来深入,以抵达真实的电子地图。假如大家按上一篇教程做了,就会发现问题,那就是假如向来减小,就会出现问题,今后反而变大了,拖动能够把地图拖出去,这些都不是我们想要的见效。今日我们来解决这些问题,其余还有信息的显示等一些内容。容会跟着地图的放大减小自动隐蔽和显示等问题。好了,空话少说,下边我们来看看今日要学习的主要内容:限制地图的放大和减小限制地图的界限内容的显示和隐蔽两点间距离的丈量主要用到的actionscript代码〔除上节讲的之外〕以下:_visible一个布尔值,指示电影剪辑能否处于可见状态。True为可见false为不可以见。也可用表示。Math.floor()返回由参数x指定的数字或表达式的下限值。下限值是小于等于指定数字或表达式的最凑近的整数。Math.floor(12.5)的值为12Math.floor(-6.5)的值为-7。Math.pow〔〕计算并返回x的y次幂。Math.pow〔x,y〕表示x的y次方。精选文档精选文档Math.sqrt()
计算并返回指定数字的平方根。
Math.sqrt(16)
的值为4。lineStyle〔〕设置线条的款式。线的粗细为3px,颜色为红色,
lineStyle
〔3,0xff0000
,100〕表示要画的透明度为
100,不透明。moveTo()
将目前绘画地点挪动到
(x,
y)。假如缺乏任何一个参数,那么此方法将失败,而且目前绘画地点不改变。lineTo()使用目前线条款式绘制一条从目前绘画地点到(x,y)的线条;目前绘画地点随后会设置为(x,y)。假如正在此中绘制的电影剪辑包括用Flash绘画工具创办的内容,那么调用lineTo()方法将在该内容下边进行绘制。假如在对moveTo()进行任何调用以前调用了lineTo(),那么当前绘画地点默以为(0,0)。假如缺乏任何一个参数,那么此方法将失败,而且目前绘画地点不改变。createEmptyMovieClip()创办一个空电影剪辑作为现有电影剪辑的子级。此方法的行为近似于attachMovie()方法,但是不用为新的电影剪辑供给外面链接表记符。新创办的空电影剪辑的注册点为左上角。假如缺乏随意一个参数,那么此方法将失败。createTextField
()
创办一个新的空文本字段作为在其上浮用此方法的电影剪辑的子级。用
removeTextField()MovieClip.createTextField()
删除文本字段。只好对使创办的文本字段履行此操作。当调用此方法时,将删除文本字段。此次的根本上就这么多了,下边我们一步一步来实此刻日的内容。1、我们要实现的见效就是一步一步实现数据显示和隐蔽,第一我们来创办一个地图元件,命名为map_mc。双击进去编写这个元件,再创办路,政府单位,中等路,单位,小道。
4个图层。一共
5个图层,分别为显示大在各自的图层分别写入各自的内容。分别命名为:map1_mc、map2_mc、map3_mc、map4_mc、map5_mc。〔如右图〕精选文档精选文档2、这步我们就要立功能按钮,我们把他们放到左面,我们先来建一个放大的元件,第一画一个放大的图标,按F8,建一个名为fangda_mc的电影剪辑。双击进去编写,以以以下图。〔以以以下图〕3、重复第2步的步骤,分别创办suoxiao_mc(减小)、yuantu_mc(还原)、tuodong_mc(拖动)、celiang_mc(丈量)。4、放大、减小、拖动、还原上节多已经讲过了,但跟着功能的增添,会愈来愈乱,因此我们把代码一致同来。并尽量把代码写到时间轴上,以便管理和改正。第一是初始化地图的代码和自定义函数:停止播放stop();放大,减小,还原,拖动,丈量的控制变量varchengxu;全部左侧功能按钮的初始化函数〔把左侧功能按钮都停止在第一帧〕functionchushi(){_root.fangda_mc.gotoAndStop(1);_root.suoxiao_mc.gotoAndStop(1);_root.yuantu_mc.gotoAndStop(1);_root.tuodong_mc.gotoAndStop(1);_root.celiang_mc.gotoAndStop(1);}初始化地图函数〔把先不要显示的都隐蔽〕functionchushimap(){=0;=0;=0;=0;}履行初始化地图函数〔把先不要显示的都隐蔽〕chushimap();初始化功能提示函数精选文档精选文档functiongongnengtishi(){=0;=0;=0;=0;=0;}履行初始化功能提示函数〔把提示隐蔽〕gongnengtishi();地图地区限制函数〔限制地图走开屏幕〕functionxianzhi(){=function(){/200}if(map_mc._x<320-320*map_mc._xscale/200){map_mc._x=320-320*map_mc._xscale/200}/200}if(map_mc._y<240-240*map_mc._yscale/200){map_mc._y=240-240*map_mc._yscale/200}}}信息的显示和隐蔽函数〔放大显示和减小隐蔽〕functionxianshi(){vardx=_root.map_mc._xscale;if(dx>=120){=1;if(dx>=140){=1;if(dx>=160){isible=1;if(dx>=180){=1;}else{=0;}}else{精选文档精选文档isible=0;=0;}}else{=0;=0;=0;}}else{chushimap();}}丈量函数functionceliang(){varsx,sy;_root.map_mc.cl_mc.clear();_root.map_mc.cl_mc.cl_txt.removeTextField();sx=_root.map_mc._xmouse;sy=_root.map_mc._ymouse;draw=true;onMouseMove=function(){if(draw){_root.map_mc.createEmptyMovieClip("cl_mc",1);_root.map_mc.cl_mc.lineStyle(1,0x009900,80);_root.map_mc.cl_mc.moveTo(sx,sy);_root.map_mc.cl_mc.lineTo(_root.map_mc.cl_mc._xmouse,se);ttt=Math.floor(Math.sqrt(Math.pow(_root.map_mc.cl_mc._width,2)+Math.pow(_root.map_mc.cl_mc._height,2)));_root.map_mc.cl_mc.createTextField("cl_txt",1,_root.map_mc.cl_mc._xmouse,_root.map_mc.cl_mc._ymouse-22,100,22);=ttt+"m";}};onMouseUp=function(){draw=false;}};5、Map_mc功能的代码以下〔map_mc的全部功能〕:=function(){if(chengxu=="fangda"){精选文档精选文档<200){+=10;+=10;xianshi();}}elseif(chengxu=="suoxiao"){>100){-=10;-=10;xianshi();}}elseif(chengxu=="yuantu"){=100;=100;=160;=120;chushimap();}elseif(chengxu=="tuodong"){startDrag(_root.map_mc,false);xianzhi();}elseif(chengxu=="celiang"){celiang();}}=function(){stopDrag();}6、左侧功能按钮的功能代码即功能提示代码://left的功能代码=function(){chushi();_root.fangda_mc.gotoAndStop(2);chengxu="fangda";精选文档精选文档}=function(){chushi();_root.suoxiao_mc.gotoAndSt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论