AS3数字流动效果教程(仿黑客帝国数字雨效果)(Flash)

建站技术网 190 0
域名投资,就来找米网,认准网址:www.zhaomi.cc

教程说明:AS3代码仿骇客帝国数字雨效果,Falling Bits Animation

AS3数字流动效果教程(仿黑客帝国数字雨效果)(Flash)  帝国cms教程 第1张

  建立一个动态文本,设定合适的字号、颜色,实例名为"myText".

  将文本转化为元件,命名为"numberInsideMC”,注册点设置为左上角,实例取名为"numberInside”.

  选中元件按F8再转化为新元件 “myNumberMC”,注册点设置为左上角, Linkage 元件“myNumberMC” 到类"BitNumber”.

AS3数字流动效果教程(仿黑客帝国数字雨效果)(Flash)  帝国cms教程 第2张

  主时间轴上代码:

  //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 < 48; 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;

  双击元件"myNumberMC",新建一个脚本层

  //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;

  返回主时间轴,从舞台上移除元件"myNumberMC"

  附源文件下载

  

标签: 帝国cms教程

专业仿站,就到仿站网:www.fangzhan.org

发表评论 (已有0条评论)

您需要 登录账户 后才能发表评论

还木有评论哦,快来抢沙发吧~