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

ActionScript
ActionScript3教程:语句实例
ActionScipt技巧和开发中会遇到的问题
Flash as3.0教程:弹性小球
flash as简单制作飘雪动画
Flash AS 教程:交互动画
Flash ActionScript 3.0教程:学习Dot类
Flash AS 教程:子类化显示对象
Flash AS 教程:动画事件
Flash AS 教程:创建文档类(Document class)
Flash AS 教程:帧循环
Flash AS 教程:类和面向对象编程
Flash AS 教程:构造函数(Constructor)
Flex程序开发心得小结
Flash游戏开发教程:第一节
FLASH中的元件能在Flex中完美使用
关于XML在FLASH中的应用
Flash AS教程:decorator Pattern
Flash AS实例教程:简单的loading
Flash教程:彻底学习RadioButton组件
Flash AS教程:复制粘贴类

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-03-20   浏览: 183 ::
收藏到网摘: 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、完工,测试你的影片。