马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Flash广泛用于创建吸引人的应用程序,它们包含丰富的视频、声音、图形和动画。可以在Flash中创建原始内容或者从其它Adobe应用程序(如Photoshop或illustrator)导入它们,快速设计简单的动画。
本例持续解说AS的基本常识,明天我们来进修FlashAS进门系列教程第七课第四节:影片剪辑的深度,对Flash的AS编程有乐趣的伴侣能够到论坛与作者交换。
上一篇文章:Flashas进门(9):把持工夫轴
第4节MC的深度
在flash创作情况中我们对层的观点已对照熟习了。深度与层的观点对照靠近。每个在舞台上的工具都有它自已的深度,深度数字年夜的挡住比它小的工具,这就象下面的层遮住上面的层一样。我们能够把MC放到-16384至1048575的任一深度上,但某一深度上本来已有一个工具时,那末新放进的工具将交换本来的工具。这大概会碰到一个成绩,当我用利用attachMovie(MovieClip.attachMovie办法)、duplicateMovieClip(MovieClip.duplicateMovieClip办法)或createEmptyMovieClip(MovieClip.createEmptyMovieClip办法)在运转时创立影片剪辑时,一直要指定MC的深度。应当用个甚么深度值呢?假如指定的深度值上已有MC了,会不会将本来的掩盖了呢?为懂得决这个成绩,flash为我们供应了getNextHighestDepth()办法。
getNextHighestDepth()办法:MC的这个办法将前往下一个可用的深度值。更好的的了解就是以后最年夜的深度值加1。因而用这个深度值,MC将在最下面。
好比:this.createEmptyMovieClip("my_mc",this.getNextHighestDepth());
getInstanceAtDepth()办法:这个办法将前往某个特定深度值上的MC实例。
好比要断定以后最年夜深度值的MC,能够用以下代码:
varzddepth=this.getNextHighestDepth()-1;//取得以后最年夜的深度值
varmy_mc:MovieClip=this.getInstanceAtDepth(zddepth);
getDepth()办法:前往某个MC的深度
好比要前往MC,my_mc的深度:
varmymcdepth=my_mc.getDepth();
swapDepths()办法:互换两个MC的深度值,假如MC正在实行补间,则补间会中断。
好比有两个MC:mc1和mc2,如今要互换这两个MC的深度
mc1.swapDepths(mc2);
上面经由过程一个实习来熟习本节课所先容的内容。
效果以下:用鼠标点击挡鄙人面的图片,这张图片将移到最下面一层来。
制造办法:
1.新建一flash文档,导进多少图片。
2.将这些图片分离做成MC,巨细随便,但宽高不该凌驾200或可再小一些。在库平分别右击这些MC,点击“毗连”,在弹出的面板中,在为ActionSpript导出前打钩。在标识框内输出:pic1.第二个MC则输出pic2,以此类推。
3.回到主场景,翻开举措面板,输出以下代码:(注重上面的代码是以5张图片为例写的,假如你不是5张图片则应作响应修正,具体申明看前面的代码剖析)
for(i=1;i<6;i++){
this.attachMovie("pic"+i,"pic"+i+"_mc",this.getNextHighestDepth());
varpic_mc=eval("pic"+i+"_mc");
pic_mc._x=150+random(200);
pic_mc._y=100+random(200);
}
pic1_mc.onRelease=function(){
varzddepth=_root.getNextHighestDepth()-1;
varzd_mc:MovieClip=_root.getInstanceAtDepth(zddepth);
this.swapDepths(zd_mc);
}
pic2_mc.onRelease=function(){
varzddepth=_root.getNextHighestDepth()-1;
varzd_mc:MovieClip=_root.getInstanceAtDepth(zddepth);
this.swapDepths(zd_mc);
}
pic3_mc.onRelease=function(){
varzddepth=_root.getNextHighestDepth()-1;
varzd_mc:MovieClip=_root.getInstanceAtDepth(zddepth);
this.swapDepths(zd_mc);
}
pic4_mc.onRelease=function(){
varzddepth=_root.getNextHighestDepth()-1;
varzd_mc:MovieClip=_root.getInstanceAtDepth(zddepth);
this.swapDepths(zd_mc);
}
pic5_mc.onRelease=function(){
varzddepth=_root.getNextHighestDepth()-1;
varzd_mc:MovieClip=_root.getInstanceAtDepth(zddepth);
this.swapDepths(zd_mc);
}
代码剖析:
起首用一个for轮回,将库中的图片加载到舞台上,轮回次数是你的图片元件的数目,上面i<6中的6用你的图片元件数目加1交换。我这里是5张图片,以是我用6。
for(i=1;i<6;i++){
接上去加载这些图片元件,这里加载的深度我们用到了this.getNextHighestDepth()办法。图片加载后指定图片的x,y坐标在必定的局限内随机的地位。这个局限应依据图片元件的巨细来断定,不克不及太小,太小了,下面的图片会完整挡住上面的图片。也不克不及太年夜,太年夜了则不克不及发生堆叠效果。总之就是要即要发生堆叠效果,又不克不及完整挡住。
this.attachMovie("pic"+i,"pic"+i+"_mc",this.getNextHighestDepth());
varpic_mc=eval("pic"+i+"_mc");
pic_mc._x=150+random(200);
pic_mc._y=100+random(200);
如今图片已加载到舞台上了,并发生了不完整堆叠效果。接上去就是完成点击图片让该图片移到最下层,以是用到图片MC的onRelease事务,以第一张图片为例:
pic1_mc.onRelease=function(){
在这个事务实行中起首断定最下面的图片的深度值。下面先容了getNextHighestDepth()前往的是最年夜的深度值加1,那末最年夜的深度值天然就是getNextHighestDepth()减1了。
varzddepth=_root.getNextHighestDepth()-1;
有了最年夜的深度值后,就能够断定最下面的图片是哪张了:
varzd_mc:MovieClip=_root.getInstanceAtDepth(zddepth);
最初将这张图片与最年夜深度那张图片互换深度,那这张图片深度值就最年夜了,固然也就在最下面了:
this.swapDepths(zd_mc);
第一张图片的点击举措代码就完成了。上面写第二张图片的代码,由于每张图片点击事务中的代码是完整一样的,以是复制第一张图片的代码,粘帖到第一张图片代码的上面,将第一句pic1_mc.onRelease=function(){中的pic1改成pic2,就好了。
今后的以此类推,直到完成一切的图片的点击代码。
Macromedia公司已经承诺在Flash8中将有很大的变化,而且它们中的许多都与视频功能有关。 |