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

ActionScript
将FlashVars写在JS函数中,实现变量更新与后台同步
Flash与Flex3结合学习心得体会
Flash AS简单制作画线条动画
Flash教程:如何把库中的元件加载到场景中
Flash AS3运行错误参考文档
Flash AS3制作自由落体运动代码解析
多层级加载相对路径遇到的问题解决方法
加载PNG后其透明区域不响应事件
AS3教程:按顺序播放多个FLV视频
Flash AS与JS的互动
Flash AS实例:智力过河小游戏源代码
Flash as教程:图片模糊运动
Flash AS3实例教程:物体运动速度向量(velocity)
Flash AS3.0教程:学习帧循环的运用
Flash AS3动态改变影片剪辑元件颜色
Flash AS 制作创意的鼠标经过的网页导航
Flash AS实例教程 会眨眼的美女
Flash AS2实例 跳动的小球动画效果
Flash AS3实例:制作好看的七彩小球动画
AS2.0高级滤镜效果如何用在JPG图片上

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


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