Action Script 3.0 练习 雪花飘落动画

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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;

//定义雪花左右摇摆

}

相关文档
最新文档