爱你不要你 2010-3-8 17:18
Flash AS3教程:制作数码下落的动画特效
在这个教程中,将学习如何创建数字落下的动画。
演示:
[swf]http://www.webjx.com/files/media/1_100302012516.swf[/swf]
1、新建Flash文件,属性设置: 400 × 400 ,背景黑色,帧频30。图1
[img]http://www.missyuan.net/uploads/allimg/100308/1FR62456-0.png[/img]
2、选文本工具,创建一个动态的文本。输入数字 1。
3、在属性面板中为实例命名 " myText" 。设定字号为 15 ,颜色#00ff00。图2:
[img]http://www.missyuan.net/uploads/allimg/100308/1FR62B3-1.png[/img]
4、按字符嵌入按钮,嵌入字符集。设置如图3:
[img]http://www.missyuan.net/uploads/allimg/100308/1FR613H-2.png[/img]
5、把本文转换成 影片剪辑 。命名为 " numberInsideMC" 。将注册点设定为左上角。图4:
[img]http://www.missyuan.net/uploads/allimg/100308/1FR635O-3.png[/img]
6、在属性面板中为实例命名 " numberInside" 。图5:
[img]http://www.missyuan.net/uploads/allimg/100308/1FRB935-4.png[/img]
7、把 " numberInsideMC" 再次转换成影片剪辑。 提供新的影片剪辑名字 " myNumberMC" 。将注册点设定为左上角。图6:
[img]http://www.missyuan.net/uploads/allimg/100308/1FRB156-5.png[/img]
8、按Ctrl+L组合键,打开库面板,右键单击 " myNumberMC" 选属性(CS4、CS3为链接)作类的绑定,链接名为 " BitNumber" 。图7:
[img]http://www.missyuan.net/uploads/allimg/100308/1FR64O4-6.png[/img]
9、新建图层,改名 as 层,选中第1帧,输入下列代码:
[quote]//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;
}
}
}[/quote]
10、双击舞台上的 myNumberMC 影片剪辑,进入myNumberMC编辑状态,添加as图层,选中第1帧,输入代码:
[quote]//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;
}
}[/quote]
11、切换回场景1,把 myNumberMC 影片剪辑从舞台上删除。
12、完工,测试你的影片。
来源:中国教程网论坛 作者:cao4811
宁夏王子 2010-3-9 09:44
交作业了。
[swf]http://images.missyuan.com/attachments/day_100309/20100309_f8f4b01106dae9f01bb8d5o54DUuMIR4.swf[/swf]
[[i] 本帖最后由 宁夏王子 于 2010-3-9 09:45 编辑 [/i]]