当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > AS3实例教程:制作数码下落的动画特效

ActionScript
FLASH 3D相册之利用BitmapData类制作
Flash 脚本游戏开发教程 第一课
Flash 脚本游戏开发教程第二课
Flash 脚本游戏开发教程第三课
Flash 脚本游戏开发教程第四课
Flash 脚本游戏开发教程第五课
Flash 脚本游戏开发教程第六课
Flash 脚本游戏开发教程第七课
Flash 脚本游戏开发教程第八课
Flash AS实现的蝌蚪摆尾动画的教程
从基础开始深入学Flash AS3教程(4)(译文)
从基础开始深入学Flash AS3教程(5)(译文)
从基础开始深入Flash AS3教程(2)(译文)
从基础开始深入学Flash AS3教程(3)(译文)
Flash AS3对单个图片进行角色动作化处理
从基础开始深入Flash AS3教程(1)(译文)
Flash教程:if条件语句的用法
Flash AS教程:_visible属性的详细讲解
Flash AS教程:图片环绕旋转效
Flash教程:trace()的使用

ActionScript 中的 AS3实例教程:制作数码下落的动画特效


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-03-20   浏览: 178 ::
收藏到网摘: n/a

在这个教程中,将学习如何创建数字落下的动画。

演示:


1、新建Flash文件,属性设置: 400 × 400 ,背景黑色,帧频30。图1
sshot-1.png
2、选文本工具,创建一个动态的文本。输入数字 1。

3、在属性面板中为实例命名 " myText" 。设定字号为 15 ,颜色#00ff00。图2:

sshot-2.png
4、按字符嵌入按钮,嵌入字符集。设置如图3:
sshot-3.png
5、把本文转换成 影片剪辑 。命名为 " numberInsideMC" 。将注册点设定为左上角。图4:
sshot-4.png
6、在属性面板中为实例命名 " numberInside" 。图5:
sshot-5.png
7、把 " numberInsideMC" 再次转换成影片剪辑。 提供新的影片剪辑名字 " myNumberMC" 。将注册点设定为左上角。图6:
sshot-6.png
8、按Ctrl+L组合键,打开库面板,右键单击 " myNumberMC" 选属性(CS4、CS3为链接)作类的绑定,链接名为 " BitNumber" 。图7:
sshot-7.png
9、新建图层,改名 as 层,选中第1帧,输入下列代码:


//This array will contain all the numbers seen on stage

var numbers:Array = new Array();



//We want 8 rows

for (var i=0; i < 8; i++) {



        //We want 21 columns

        for (var j=0; j < 21; j++) {



                //Create a new BitNumber

                var myNumber:BitNumber = new BitNumber();



                //Assign a starting position

                myNumber.x = myNumber.width * j;

                myNumber.y = myNumber.height * i;



                //Give it a random speed (2-7 pixels per frame)

                myNumber.speedY = Math.random() * 5 + 2;



                //Add the number to the stage

                addChild (myNumber);



                //Add the number to the array

                numbers.push (myNumber);



        }

}



//Add ENTER_FRAME so we can animate the numbers (move them down)

addEventListener (Event.ENTER_FRAME, enterFrameHandler);



/*

This function is repsonsible for moving the numbers down the stage.

The alpha animation is done inside of the myNumberMC movieclip.

*/

function enterFrameHandler (e:Event):void {



        //Loop through the numbers

        for (var i = 0; i < numbers.length; i++) {



                //Update the y position

                numbers[i].y += numbers[i].speedY;



                //If the BitNumber is below the stage, move it up again

                if (numbers[i].y > stage.stageHeight) {

                        numbers[i].y = 0;

                }

        }

}
10、双击舞台上的 myNumberMC 影片剪辑,进入myNumberMC编辑状态,添加as图层,选中第1帧,输入代码:


//This variable tells us should we increase the alpha

var increaseAlpha:Boolean;



//We want the number to be invisible at the beginning

numberInside.alpha = 0;



//Calculate a random timer delay (how often we increase the alpha)

var timerDelay:Number = Math.random() * 4000 + 2000;



//Create and start a timer

var timer:Timer = new Timer(timerDelay, 0);

timer.addEventListener (TimerEvent.TIMER, timerHandler);

timer.start ();



//Add ENTER_FRAME so we can animate the alpha change

addEventListener (Event.ENTER_FRAME, enterFrameHandler);



/* 

Timer calls this function.

Timer delay defines how often this is called.

*/

function timerHandler (e:Event):void {



        //Update the increaseAlpha value

        increaseAlpha = true;



        //Calculate a random number (0 or 1)

        var newNumber:int = Math.floor(Math.random() * 2);



        //If the random number is 1, we insert "1" into the text box

        if (newNumber == 1) {

                numberInside.myText.text = "1";

        }

        //Else we insert "0" into the text box

        else {

                numberInside.myText.text = "0";

        }

}



//This function animates the alpha

function enterFrameHandler (e:Event):void {



        //Increase the alpha if increaseAlpha is true

        if (increaseAlpha == true) {

                numberInside.alpha += 0.02;

        }



        //Else we want to decrease the alpha

        else {

                numberInside.alpha -= 0.02;

        }



        //We don’t want the alpha to be over one, so we assign increaseAlpha to be false

        if (numberInside.alpha > 1) {

                increaseAlpha = false;

        }

        //If the alpha is negative, set it to zero

        if(numberInside.alpha < 0) {

                numberInside.alpha = 0;

        }

}
11、切换回场景1,把 myNumberMC 影片剪辑从舞台上删除。

12、完工,测试你的影片。