Flash實例教程:方塊動畫特效制作_Flash教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:Flash cs3直線工具教程
      本例為Flash CS3仿真藝術設計系列教程,本文我們將學習Flash cs3中直線工具的應用,在flash中總是有幾個不同的方法取得相同的效果。在我們排列中使用所有的不同工具,我總是使用不同的方法使用它們取得不一樣的效果。動畫渲染一般被歸類于“卡通渲染”。這種

      效果如下:

      1.新建一個flash Actionscript 3 大小為500×300px,背景黑色。

      2.在場景里,使用矩形工具(G),設置邊框寬3px;畫一個正方形大小個40×40px;

      3dbox2

      3.將這個正方形上點右鍵,轉換元件(為電影剪輯);注冊設置為中心;

      3dbox3

      4.選擇元件,右鍵>鏈接;設置類為MyBox;

      3dbox4

      5.回到場景中刪除正方形;新建一個Actionscript文件并輸入下面代碼:

      1
      
      2
      
      3
      
      4
      
      5
      
      6
      
      7
      
      8
      
      9
      
      10
      
      11
      
      
      package {
      
      	import flash.display.MovieClip;
      
      	public class MyBox extends MovieClip {
      
      		//這是方塊的3d坐標
      
      		public var xpos3D:Number = 0;
      
      		public var ypos3D:Number = 0;
      
      		public var zpos3D:Number = 0;
      
      		public function MyBox() {
      
      		}
      
      	}
      
      }

      另存為MyBox.as,注意存在flash文件的同一路徑內,
      6.返回主場景,在第一幀中插入下列代碼:

      //立體場景縱深
      
      const MAXIMUM_Z:Number = 500;
      
      //方塊數量
      
      const NUMBER_OF_BOXES:Number = 15;
      
      //創建一個包含方塊的數組;
      
      var boxes:Array = new Array();
      
      //視圖焦距設置
      
      var focalLength:Number = 300;
      
      //Vanishingpoint是方塊消失點;
      
      var vanishingPointX:Number = stage.stageWidth / 2;
      
      var vanishingPointY:Number = 20;
      
      //3D方塊底邊位置
      
      var floor:Number = 80;
      
      //第一個方塊深度
      
      var startingDepth:Number = MAXIMUM_Z;
      
      //盒子之間的z距離值
      
      var zDistance:Number = 50;
      
      //這個循環為由遠到近的方塊定位
      
      for (var i=0; i < NUMBER_OF_BOXES; i  ) {
      
      	var box:MyBox = new MyBox();
      
      	box.xpos3D = 0;
      
      	box.ypos3D = floor;
      
      	box.zpos3D = startingDepth;
      
      	//更新方塊的深度;
      
      	startingDepth -= zDistance;
      
      	//使用角度公式計算縮放比例;
      
      	var scaleRatio = focalLength/(focalLength   box.zpos3D);
      
      	//縮放坐標比例;
      
      	box.scaleX=box.scaleY=scaleRatio;
      
      	//將方塊定位到場景中(由3d到2d轉換)
      
      	box.x=vanishingPointX box.xpos3D*scaleRatio;
      
      	box.y=vanishingPointY box.ypos3D*scaleRatio;
      
      	//將方塊放入數組
      
      	boxes.push(box);
      
      	//將方塊加入場景
      
      	addChild(box);
      
      }

      在菜單中選擇調試>測試場景效果如下:

      3dbox7

      7.在以上代碼后插入如下代碼,用于產生動畫;

      1
      
      2
      
      3
      
      4
      
      5
      
      6
      
      7
      
      8
      
      9
      
      10
      
      11
      
      12
      
      13
      
      14
      
      15
      
      16
      
      17
      
      18
      
      19
      
      20
      
      21
      
      22
      
      23
      
      24
      
      25
      
      26
      
      27
      
      28
      
      29
      
      30
      
      31
      
      32
      
      33
      
      34
      
      
      //用ENTER_FRAME事件加入動畫函數
      
      addEventListener(Event.ENTER_FRAME, enterFrameHandler);
      
       
      
      //每一幀都調用這個函數
      
      function enterFrameHandler(e:Event):void {
      
       
      
      	for (var i=0; i < NUMBER_OF_BOXES; i  ) {
      
       
      
      		//將box變為局部變量
      
      		var box:MyBox = (MyBox)(boxes[i]);
      
      		//減少深度
      
      		box.zpos3D-=5;
      
      		if (box.zpos3D<=- focalLength) {
      
      			//最后方塊始終在數組第一位
      
      			box.zpos3D=boxes[0].zpos3D zDistance;
      
      		}
      
      		var scaleRatio = focalLength/(focalLength   box.zpos3D);
      
      		box.scaleX=box.scaleY=scaleRatio;
      
      		//設置透明度變量
      
      		box.alpha=scaleRatio-0.5;
      
      		box.x=vanishingPointX box.xpos3D*scaleRatio;
      
      		box.y=vanishingPointY box.ypos3D*scaleRatio;
      
      	}
      
      	//根據深度排列數組
      
      	sortZ();
      
      }
      
       
      
      //這個函數使方塊正確排列
      
      function sortZ():void {
      
      	boxes.sortOn("zpos3D", Array.NUMERIC | Array.DESCENDING);
      
      	for (var i:uint = 0; i < NUMBER_OF_BOXES; i  ) {
      
      		setChildIndex(boxes[i], i);
      
      	}
      
      }

      分享:Flash CS4如何控制動畫聲音的停止和播放
      今天有閃友問到如何控制AS3中的聲音問題,用下面的小實例說明: /* As3Sound.as */ package { import flash.display.Sprite; import flash.events.*; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash

      來源:網頁教學網//所屬分類:Flash教程/更新時間:2009-03-18
      相關Flash教程