仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 903|回复: 8
打印 上一主题 下一主题

[学习教程] 带来一篇FLASH教程用flash做电子舆图

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 22:44:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Flash8支持一种新的编码格式(On2的VP6),这种编码格式与Flash7的视频编码格式相比,有了很大的提高。
关于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是一对函数,用于中断以后的拖动操纵。基础上就这么多了,一会碰到谁人再具体讲。
上面我们一步一步来做电子舆图:
1、起首我们翻开flash新建一个影片,巨细设为宽:440px高:316。(依据你的必要来设定)。

2、然后倒进一张你筹办好的舆图,我的是一张880w632的(如许缩小时效果会好良多),导进到库中。然后翻开库,选择舆图拖进加入景中,转换成影片剪辑,注册点选则中心,如许缩小减少就以这个舆图的中心为中央了。取名为map_mc(主要的事上面的名字)。由于程序要把持这个舆图,以是要给他起个名字。



3、好了,舆图剪辑建好了,我们就入手下手用程序把持他了。起首,我们来完成缩小减少。有的先容的是用_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();//中断拖动
}

最初,人人大概会发明,假如一向减少,就会呈现成绩,厥后反而变年夜了,拖动能够把舆图拖进来,这些都不是我们想要的效果,我们下一次会专门解说这个成绩,在这先泄漏一下,我们下一节讲的是限定缩小和减少,挪动的界限。和内容会跟着舆图的缩小减少主动埋没和显现等成绩。别的,因为自己也不是很精晓,假如哪儿呈现毛病或疏漏的地方还请授与斧正,接待人人一同交换切磋。
不晓得人人看了上一篇有甚么感到,大概对妙手来讲是太复杂了,但对进门者来讲应当还能够吧。我们一步一步来深切,以抵达真实的电子舆图。
假如人人按上一篇教程做了,就会发明成绩,那就是假如一向减少,就会呈现成绩,厥后反而变年夜了,拖动能够把舆图拖进来,这些都不是我们想要的效果。明天我们来办理这些成绩,别的另有信息的显现等一些内容。容会跟着舆图的缩小减少主动埋没和显现等成绩。
好了,空话少说,上面我们来看看明天要进修的次要内容:
限定舆图的缩小和减少
限定舆图的界限
内容的显现和埋没
两点间间隔的丈量
次要用到的actionscript代码(除上节讲的之外)以下:
_visible一个布尔值,唆使影片剪辑是不是处于可见形态。True为可见false为不成见。也可用0.1暗示。
Math.floor()前往由参数x指定的数字或表达式的上限值。上限值是小于即是指定命字或表达式的最靠近
的整数。Math.floor(12.5)的值为12Math.floor(-6.5)的值为-7。

[1]200605/2203_2.html>[2]200605/2203_3.html>[3]200605/2203_4.html>[4]200605/2203_5.html>[5]200605/2203_6.html>[6]200605/2203_2.html>下一页


Math.pow()盘算并前往x的y次幂。Math.pow(x,y)暗示x的y次方。
Math.sqrt()盘算并前往指定命字的平方根。Math.sqrt(16)的值为4。
lineStyle()设置线条的款式。lineStyle(3,0xff0000,100)暗示要画的线的粗细为3px,色彩为白色,
通明度为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、缩小、减少、拖动、复原上节多已讲过了,但跟着功效的增加,会愈来愈乱,以是我们把代码一致起来。并只管把代码写到工夫轴上,以便办理和修正。起首是初始化舆图的代码和自界说函数:
</P>//中断播放
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(){
_root.map_mc.map2_mc._visible=0;
_root.map_mc.map3_mc._visible=0;
_root.map_mc.map4_mc._visible=0;
_root.map_mc.map5_mc._visible=0;
}
//实行初始化舆图函数(把先不要显现的都埋没)
chushimap();
//初始化功效提醒函数
functiongongnengtishi(){
_root.fangda_mc.fangda1._visible=0;
_root.suoxiao_mc.suoxiao1._visible=0;
_root.yuantu_mc.yuantu1._visible=0;
_root.tuodong_mc.tuodong1._visible=0;
_root.celiang_mc.celiang1._visible=0;
}
//实行初始化功效提醒函数(把提醒埋没)
gongnengtishi();
//舆图地区限定函数(限定舆图离开屏幕)
functionxianzhi(){
&nb</p>
200605/2203.html>上一页200605/2203.html>[1][2]200605/2203_3.html>[3]200605/2203_4.html>[4]200605/2203_5.html>[5]200605/2203_6.html>[6]200605/2203_3.html>下一页


sp;_root.onEnterFrame=function(){
if(map_mc._x>320*map_mc._xscale/200){map_mc._x=320*map_mc._xscale/200}
if(map_mc._x<320-320*map_mc._xscale/200){map_mc._x=320-320*map_mc._xscale/200}
if(map_mc._y>240*map_mc._yscale/200){map_mc._y=240*map_mc._yscale/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){
_root.map_mc.map2_mc._visible=1;
if(dx>=140){
_root.map_mc.map3_mc._visible=1;
if(dx>=160){
_root.map_mc.map4_mc._visible=1;
if(dx>=180){
_root.map_mc.map5_mc._visible=1;
}else{
_root.map_mc.map5_mc._visible=0;
}
}else{
_root.map_mc.map4_mc._visible=0;
_root.map_mc.map5_mc._visible=0;
}
}else{
_root.map_mc.map3_mc._visible=0;
_root.map_mc.map4_mc._visible=0;
&nb</p>
200605/2203_2.html>上一页200605/2203.html>[1]200605/2203_2.html>[2][3]200605/2203_4.html>[4]200605/2203_5.html>[5]200605/2203_6.html>[6]200605/2203_4.html>下一页


sp;_root.map_mc.map5_mc._visible=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,_root.map_mc.cl_mc._ymouse);
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);
_root.map_mc.cl_mc.cl_txt.text=ttt+"m";
}
};
onMouseUp=function(){
draw=false;
}
};5、Map_mc功效的代码以下(map_mc的一切功效):

_root.map_mc.onPress=function(){
if(chengxu=="fangda"){
if(_root.map_mc._xscale<200){
_root.map_mc._xscale+=10;
_root.map_mc._yscale+=10;
xianshi();
}
}
elseif(chengxu=="suoxiao"){
if(_root.map_mc._xscale>100){
_root.map_mc._xscale-=10;
_root.map_mc._yscale-=10;
xianshi();
}
}
elseif(chengxu=="yuantu"){
_root.map_mc._xscale=100;
_root.map_mc._yscale=100;
_root.map_mc._x=160;
_root.map_mc._y=120;
chushimap();
}
elseif(chengxu=="tuodong"){
</p>
200605/2203_3.html>上一页200605/2203.html>[1]200605/2203_2.html>[2]200605/2203_3.html>[3][4]200605/2203_5.html>[5]200605/2203_6.html>[6]200605/2203_5.html>下一页


startDrag(_root.map_mc,false);
xianzhi();
}
elseif(chengxu=="celiang"){
celiang();
}
}
_root.map_mc.onRelease=function(){
stopDrag();
}6、右边功效按钮的功效代码即功效提醒代码:

//left的功效代码
fangda_mc.onPress=function(){
chushi();
_root.fangda_mc.gotoAndStop(2);
chengxu="fangda";
}
suoxiao_mc.onPress=function(){
chushi();
_root.suoxiao_mc.gotoAndStop(2);
chengxu="suoxiao";
}
yuantu_mc.onPress=function(){
chushi();
_root.yuantu_mc.gotoAndStop(2);
chengxu="yuantu";
}
tuodong_mc.onPress=function(){
chushi();
_root.tuodong_mc.gotoAndStop(2);
chengxu="tuodong";
}
celiang_mc.onPress=function(){
chushi();
_root.celiang_mc.gotoAndStop(2);
chengxu="celiang";
}
//left的功效提醒代码
fangda_mc.onRollOver=function(){
_root.fangda_mc.fangda1._visible=1;
}
suoxiao_mc.onRollOver=function(){
_root.suoxiao_mc.suoxiao1._visible=1;
}
yuantu_mc.onRollOver=function(){
_root.yuantu_mc.yuantu1._visible=1;
}
tuodong_mc.onRollOver=function(){
_root.tuodong_mc.tuodong1._visible=1;
}
celiang_mc.onRollOver=function(){
_root.celiang_mc.celiang1._visible=1;
}
fangda_mc.onRollOut=function(){
_root.fangda_mc.fangda1._visible=0;
}
suoxiao_mc.onRollOut=function(){
_root.suoxiao_mc.suoxiao1._visible=0;
}
yuantu_mc.onRollOut=function(){
_root.yuantu_mc.yuantu1._visible=0;
}
tuodong_mc.onRollOut=function(){
_root.tuodong_mc.tuodong1._visible=0;
}
celiang_mc.onRollOut=function(){
_root.celiang_mc.celiang1._visible=0;
}到今朝为止,我们完成了最基最当地图的功效,但还不克不及在实践中使用。人人晓得舆图的数据量是很年夜的,我们不成能都写到flash里。以是我们必要把一切的数据写到数据库里,静态的从数据库调你想要看到或查找的内容。
200605/2203_4.html>上一页200605/2203.html>[1]200605/2203_2.html>[2]200605/2203_3.html>[3]200605/2203_4.html>[4][5]200605/2203_6.html>[6]200605/2203_6.html>下一页


这就是我们下节课的内容了。
以上就是明天要进修的次要内容了,固然代码没有优化,为了人人能看的更间接。只是用最基础的代码完成了基础的功效。固然也不免有毛病或漏掉的中央,还请人人赐与斧正。接待人人一同交换切磋。[1]200605/2203_2.html>[2]200605/2203_3.html>[3]200605/2203_4.html>[4]200605/2203_5.html>[5][6]</b></p>
“swf”这是一个完整的影片档,无法被编辑。swf在发布时可以选择保护功能,如果没有选择,很容易被别人输入到他的原始档中使用。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-17 18:34:27 | 只看该作者
flash有这么多的优势,那么它的优缺点和设计方面的关系是什么?
小女巫 该用户已被删除
板凳
发表于 2015-1-24 19:44:45 | 只看该作者
商业上的优势——品牌flash的创造;公司企业的flash宣传;flash技术在电视的应用
地板
发表于 2015-2-2 13:55:57 | 只看该作者
FLASH网站建设的页面非常美观,互动性很强。在企业网站中,FLASH动画作用主要在于突出企业品牌的效应,彰显企业形象的实力。
若天明 该用户已被删除
5#
发表于 2015-2-8 00:54:01 | 只看该作者
flash 有这么多的优势,那么它的优缺点和设计方面的关系是什么?
柔情似水 该用户已被删除
6#
发表于 2015-2-24 03:56:31 | 只看该作者
在网络营销中所提供的利益。如果我们仔细看看国内外的专业网站,很少看到应用FLASH格式的广告,如网络上的知名网站。相信它们并不缺乏FLASH图片的制作力量。
透明 该用户已被删除
7#
发表于 2015-3-7 10:55:55 | 只看该作者
动画广告相对于传统广告而言,它的优势在于不受时间、地点等条件限制,可以通过动画的形式将那些复杂又抽象的广告内容更加简单化、生动形象化。
爱飞 该用户已被删除
8#
发表于 2015-3-15 03:53:45 | 只看该作者
缺点方面~有些技术不能实现,不过FLASH技术在发展在进步,相信在以后FLASH可以取代,大部分的视频编辑软件,视频制作软件。
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-21 20:22:20 | 只看该作者
目前动画广告在各类电视节目中有着广泛的应用,在影视及广告中占有重要地位。广州形动数码是国内领先的动画设计制作,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 06:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表