论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

雪夜的作法讲解

文章类别:Flash | 发表日期:2008-9-21 19:19:53

  

看看效果吧:


这里下载源文件:
源文件下载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的整数.

视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058