看看效果吧:
这里下载源文件:
源文件下载http://file.flash8.net/2003up/2003/5/15/20035151449547704.fla
好了,开工了!
1.建立一个新的动画,将舞台设为450*250 pixels;background颜色为#000000(众人语:搞了半天不就是黑色嘛);framerate为20fps,这是帧运动速度,假如设得太大的话雪就不是飘了,而是落或者下了,没意境,呵呵.
2.用ctrl+f8建立一个名为snowflake的mc.如放大后的图,具体定多大,参考源文件。
3.在时间轴上建一个图层,用File->import(ctrl+R)导入一个小屋,小屋怎么画就不是本帅哥的事了。搞定后如图.
4.再建立一个图层,用ctrl+L把资料库面板调出来,把刚才做的名为snowflake的mc拖至舞台的任何一个位置,因为我是用AS控制它的位置的。所以放哪儿没关系,您爱放哪,就放哪吧。定义它的instance name为flake,在MX中用ctrl+f3调出属性面板,左边就可以定义instance name。 这样就建好了一个名为flake的对象实例,供后面复制多个雪花用。如图。
5.再在主场景建立一个图层,也就是第三个图层,用来编AS.代码如下:
//-------------------------------------
//第一帧
//-------------------------------------
//定义雪花飘落的范围
moviewidth = 450;
movieheight = 230;
fscommand("allowscale", "false");//不答应缩放。
//------------------------------------
//第二帧的as.
//-------------------------------------
index++;//复制雪花的下标,可以这样说吧,不过不是数组的。
duplicateMovieClip("flake", "flake"+index, index);//复制了一个雪花。
//---------------------------------------------------
//第三帧的as.
//转到第二帧,继续复制雪花,不过下一个index值就加1了。
//---------------------------------------------------
gotoAndPlay(_currentframe-1);
6.点到那个名为flake的对象实例,MX用f9调出Action面板编辑as,flash5中用ctrl+alt+A.其实这一步可以在第四步后就可以做了。这样做大家有点儿不明白,所以放在这一步好讲解。这里的as是object as,不是frame as,两者有一定的区别。不知道的话看书或者问我吧,欢迎美女前来!AS 代码如下:
onClipEvent (load) {
//随机定义雪花出现的位置
_x = random(_root.moviewidth);
_y = -1;
//随机定义雪花的大小,使有的大,有的小这样才好看。
ran = random(61)+70;
_xscale = ran;
_yscale = ran;
//随机定义雪花的飘落速度
speed = random(4)+2;
}
onClipEvent (enterFrame) {
//假如雪花没有飘到底部,继续
if (_y<_root.movieheight) {
//雪花新的位置,这样就移动了。
_x += (Math.sin(_y/20)*1.5);
_y += speed;
} else {
//假如雪花飘至底部,删除,省得占内存,嘿。
removeMovieClip("");
}
}
按ctrl+enter测试,打完收工!
总结:1.这里的index没有初始化,你可以在第一帧初始化。默认值为0.
说说编程作风问题,其实编大一点的就应该初始化,因为要改的时候就好改,而且明朗,要不然别人看你的 as的话一会儿又冒出一个不知道的变量来就头大了。这里的as较短,所以不必了.(美女语: AOL好cooool~~~~~~~~~!)
2.对象实例的object as中有一个onClipEvent(load)就是载入这个实例后会怎么怎么样,就是执行大括号后里的语句。enterFrame看名字也知道是过了一帧,怎么怎么样。
3.本例要害靠一个random函数,它在Math对象中。用它可以定义一个随机整数,比如说random(100),就可以随机搞出一个0--99的整数.
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |