当前位置:文档之家› Action Script 3.0 练习 雪花飘落动画

Action Script 3.0 练习 雪花飘落动画

Action Script 3.0 练习雪花飘落动画
在Flash影片中,如需要使一个类的对象实例在影片中显示,可为对象实例使用stage.addChild()方法。

如需要删除一个已显示对象,则可以使用stage.removeChild()方法。

本练习将使用stage.addChild()方法制作一个雪花飘落的动画,如图6-2所示。

图6-2 雪花飘落动画
在显示和删除对象时,还可以使用stage.addChildAt()方法和stage.removeChildAt()分别为对象添加层次和移除固定层次的对象。

(1)在Flash中新建影片文件“snow.fla”,执行【文件】|【导入】|【导入到库】命令,导入矢量素材“resource.ai”如图6-3所示。

图6-3 导入矢量素材
(2)新建影片剪辑元件“bgimg”,将图形元件“背景_0”拖动到元件中,并将元件实例化为bgimg,用相同的方法创建雪人和雪花的元件,如下所示。

(3)按F9快捷键,编写ActionScript代码,分别将背景和两个雪人添加到影片中,如下所示。

var _bgimg:bgimg=new bgimg();
//将背景图像bgimg实例化
stage.addChild (_bgimg);
//定义背景图像在影片中可见
var _sy:smallyeti=new smallyeti();
//将小雪人图像smallyeti实例化
_sy.x=380;
//定义对象的横坐标
_sy.y=320;
//定义对象的纵坐标
stage.addChild (_sy);
//定义对象在影片中可见
var _ly:yeti=new yeti();
//将雪人图像yeti实例化
_ly.x=430;
//定义对象的横坐标
_ly.y=300;
//定义对象的纵坐标
stage.addChild (_ly);
//定义对象在影片中可见
(4)声明一个变量i,用于计算雪花的数量,并为影片添加监听事件,控制雪花的生成,如下所示。

var i:int=1;
//声明变量i用于计算雪花数量
addEventListener (Event.ENTER_FRAME,snow);
//定义影片播放时监听的事件函数
function snow (event:Event):void {
//创建自定义函数snow()
var scale:Number=Math.random()*.4;
//定义雪花的放大倍数
var _sf:snowflake=new snowflake();
//将雪花的图像snowflake实例化
_sf.x=Math.random()*528;
//定义雪花的随机横坐标
_sf.scaleX=scale;
//定义雪花的横向大小倍数
_sf.scaleY=scale;
//定义雪花的纵向大小倍数
var speed:Number=Math.random()*2;
//声明变量speed为随机生成的雪花下落速度
var RA:Array=new Array(-1,1);
//创建数组RA其值为-1和1
var lf:int=RA[Math.round(Math.random())];
//声明变量lf,其值为-1或1
i++;
//计数变量i叠加
stage.addChild (_sf);
//定义雪花在影片中可见
_sf.addEventListener (Event.ENTER_FRAME,snowfall);
//雪花对象下坠的事件
if (i>1000) {
//当雪花数量大于1000时
this.removeChildAt (3);
//删除影片中显示层次为3(背景为0,小雪人为1,雪人为2,第1个出现的雪花为3)
i=1000;
//雪花上限为1000
}
}
(5)在自定义函数snow()中创建一个新的自定义函数,用于控制每个雪花的旋转、下落以及左右摇晃,如下所示。

function snowfall (event:Event):void {
//创建自定义函数snowfall
_sf.y+=speed;
//为雪花应用下坠的速度
_sf.rotation+=Math.random()*20;
//定义雪花以随机的角速度旋转
_sf.x+=(Math.random()*2)*lf;
//定义雪花左右摇摆
}。

相关主题