2024年1月8日发(作者:戎平良)
Action Script 3.0 练习 雪花飘落动画
在Flash影片中,如需要使一个类的对象实例在影片中显示,可为对象实例使用ld()方法。如需要删除一个已显示对象,则可以使用Child()方法。本练习将使用ld()方法制作一个雪花飘落的动画,如图6-2所示。
图6-2 雪花飘落动画在显示和删除对象时,还可以使用ldAt()方法和ChildAt()分别为对象添加层次和移除固定层次的对象。
(1)在Flash中新建影片文件“”,执行【文件】|【导入】|【导入到库】命令,导入矢量素材“”如图6-3所示。
图6-3 导入矢量素材
(2)新建影片剪辑元件“bgimg”,将图形元件“背景_0”拖动到元件中,并将元件实例化为bgimg,用相同的方法创建雪人和雪花的元件,如下所示。
元件内容
背景图
小雪人
雪人
雪花
名称/实例名称
bgimg
smallyeti
yeti
snowflake
(3)按F9快捷键,编写ActionScript代码,分别将背景和两个雪人添加到影片中,如下所示。
var _bgimg:bgimg=new bgimg();
//将背景图像bgimg实例化
ld (_bgimg);
//定义背景图像在影片中可见
var _sy:smallyeti=new smallyeti();
//将小雪人图像smallyeti实例化
_sy.x=380;
//定义对象的横坐标
_sy.y=320;
//定义对象的纵坐标
ld (_sy);
//定义对象在影片中可见
var _ly:yeti=new yeti();
//将雪人图像yeti实例化
_ly.x=430;
//定义对象的横坐标
_ly.y=300;
//定义对象的纵坐标
ld (_ly);
//定义对象在影片中可见
(4)声明一个变量i,用于计算雪花的数量,并为影片添加监听事件,控制雪花的生成,如下所示。
var i:int=1;
//声明变量i用于计算雪花数量
addEventListener (_FRAME,snow);
//定义影片播放时监听的事件函数
function snow (event:Event):void {
//创建自定义函数snow()
var scale:Number=()*.4;
//定义雪花的放大倍数
var _sf:snowflake=new snowflake();
//将雪花的图像snowflake实例化
_sf.x=()*528;
//定义雪花的随机横坐标
_=scale;
//定义雪花的横向大小倍数
_=scale;
//定义雪花的纵向大小倍数
var speed:Number=()*2;
//声明变量speed为随机生成的雪花下落速度
var RA:Array=new Array(-1,1);
//创建数组RA其值为-1和1
var lf:int=RA[(())];
//声明变量lf,其值为-1或1
i++;
//计数变量i叠加
ld (_sf);
//定义雪花在影片中可见
_ntListener (_FRAME,snowfall);
//雪花对象下坠的事件
if (i>1000) {
//当雪花数量大于1000时
ChildAt (3);
//删除影片中显示层次为3(背景为0,小雪人为1,雪人为2,第1个出现的雪花为3)
i=1000;
//雪花上限为1000
}
}
(5)在自定义函数snow()中创建一个新的自定义函数,用于控制每个雪花的旋转、下落以及左右摇晃,如下所示。
function snowfall (event:Event):void {
//创建自定义函数snowfall
_sf.y+=speed;
//为雪花应用下坠的速度
_on+=()*20;
//定义雪花以随机的角速度旋转
_sf.x+=(()*2)*lf;
//定义雪花左右摇摆
}
2024年1月8日发(作者:戎平良)
Action Script 3.0 练习 雪花飘落动画
在Flash影片中,如需要使一个类的对象实例在影片中显示,可为对象实例使用ld()方法。如需要删除一个已显示对象,则可以使用Child()方法。本练习将使用ld()方法制作一个雪花飘落的动画,如图6-2所示。
图6-2 雪花飘落动画在显示和删除对象时,还可以使用ldAt()方法和ChildAt()分别为对象添加层次和移除固定层次的对象。
(1)在Flash中新建影片文件“”,执行【文件】|【导入】|【导入到库】命令,导入矢量素材“”如图6-3所示。
图6-3 导入矢量素材
(2)新建影片剪辑元件“bgimg”,将图形元件“背景_0”拖动到元件中,并将元件实例化为bgimg,用相同的方法创建雪人和雪花的元件,如下所示。
元件内容
背景图
小雪人
雪人
雪花
名称/实例名称
bgimg
smallyeti
yeti
snowflake
(3)按F9快捷键,编写ActionScript代码,分别将背景和两个雪人添加到影片中,如下所示。
var _bgimg:bgimg=new bgimg();
//将背景图像bgimg实例化
ld (_bgimg);
//定义背景图像在影片中可见
var _sy:smallyeti=new smallyeti();
//将小雪人图像smallyeti实例化
_sy.x=380;
//定义对象的横坐标
_sy.y=320;
//定义对象的纵坐标
ld (_sy);
//定义对象在影片中可见
var _ly:yeti=new yeti();
//将雪人图像yeti实例化
_ly.x=430;
//定义对象的横坐标
_ly.y=300;
//定义对象的纵坐标
ld (_ly);
//定义对象在影片中可见
(4)声明一个变量i,用于计算雪花的数量,并为影片添加监听事件,控制雪花的生成,如下所示。
var i:int=1;
//声明变量i用于计算雪花数量
addEventListener (_FRAME,snow);
//定义影片播放时监听的事件函数
function snow (event:Event):void {
//创建自定义函数snow()
var scale:Number=()*.4;
//定义雪花的放大倍数
var _sf:snowflake=new snowflake();
//将雪花的图像snowflake实例化
_sf.x=()*528;
//定义雪花的随机横坐标
_=scale;
//定义雪花的横向大小倍数
_=scale;
//定义雪花的纵向大小倍数
var speed:Number=()*2;
//声明变量speed为随机生成的雪花下落速度
var RA:Array=new Array(-1,1);
//创建数组RA其值为-1和1
var lf:int=RA[(())];
//声明变量lf,其值为-1或1
i++;
//计数变量i叠加
ld (_sf);
//定义雪花在影片中可见
_ntListener (_FRAME,snowfall);
//雪花对象下坠的事件
if (i>1000) {
//当雪花数量大于1000时
ChildAt (3);
//删除影片中显示层次为3(背景为0,小雪人为1,雪人为2,第1个出现的雪花为3)
i=1000;
//雪花上限为1000
}
}
(5)在自定义函数snow()中创建一个新的自定义函数,用于控制每个雪花的旋转、下落以及左右摇晃,如下所示。
function snowfall (event:Event):void {
//创建自定义函数snowfall
_sf.y+=speed;
//为雪花应用下坠的速度
_on+=()*20;
//定义雪花以随机的角速度旋转
_sf.x+=(()*2)*lf;
//定义雪花左右摇摆
}