<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            制作3D旋轉動畫效果Flash教程

            時間:2024-05-26 22:59:44 動畫設計 我要投稿
            • 相關推薦

            制作3D旋轉動畫效果Flash教程

              本教程著重于代碼的編寫,版本AS 3.0。只要制作一個旋轉的3D球,圖形元件的制作不作講解,請參看有關教程。

              include "Math2.as"

              //圖片容器

              var menu:Sprite=new Sprite();

              //使圖標移動

              menu.x = 300;

              menu.y = 200;

              //注冊事件偵聽器

              menu.addEventListener(Event.ENTER_FRAME,moveMenu);

              this.addChild(menu);

              //橢圓在x 和y 軸上的截距

              var disx:Number = 200;

              var disy:Number = 10;

              //旋轉速度

              var speed:Number = 0;

              initMenu(5);

              function initMenu(n:int) {

              for (var i:int; i

              var mc:MovieClip = new IconMenu();

              //縮小圖標

              mc.scaleX = mc.scaleY = .5;

              menu.addChild(mc);

              }

              }

              //事件偵聽器函數

              function moveMenu(e:Event):void {

              //獲取圖標數

              var iconCount:int = menu.numChildren;

              //定義數組

              var depthArray:Array = new Array();

              //把360度平分

              var angle:Number = 360 / iconCount;

              for (var z:int; z

              //根據深度獲取圖標

              var mc:MovieClip = menu.getChildAt(z);

              //跳轉到不同幀,來顯示不同的圖標

              mc.gotoAndStop(z+1);

              //設置圖標的位置

              mc.x = cosD(speed + angle*z) * disx;

              mc.y = sinD(speed + angle*z) * disy;

              setProp(mc,"alpha");

              setProp(mc,"scaleX",.2,.7);

              setProp(mc,"scaleY",.2,.7);

              //保存圖標到數組

              depthArray[z] = mc;

              }

              //重新設置圖標的深度

              arrange(depthArray);

              speed += 2;

              }

              function arrange(depthArray:Array):void {

              //按照y坐標排序

              depthArray.sortOn("y", Array.NUMERIC);

              var i:int = depthArray.length;

              while (i--) {

              menu.setChildIndex(depthArray[i], i);

              }

              }

              function setProp(mc:MovieClip,prop:String,n1:Number = .5, n2:Number = 1):void {

              mc[prop] = ((mc.y + 2 * disy) / disy - 1) / 2 * (n2 - n1) + n1;

              }

              5、新建.as文檔,保存名為:Math2.as (這個文檔是進行三角函數的計算)

              //角度轉弧度

              function angleToRadian(angle:Number):Number

              {

              return angle*(Math.PI/180);

              }

              //弧度轉角度

              function radianToAngle(radian:Number):Number

              {

              return radian*(180/Math.PI);

              }

              //計算正弦值

              function sinD(angle:Number):Number

              {

              return Math.sin(angleToRadian(angle));

              }

              //計算余弦值

              function cosD(angle:Number):Number

              {

              return Math.cos(angleToRadian(angle));

              }

              //計算反正切

              function atan2D(y:Number, x:Number):Number

              {

              return radianToAngle(Math.atan2(y, x));

              }

              把fla文檔與Math2.as 文檔保存在同一目錄下,進行測試。

            【制作3D旋轉動畫效果Flash教程】相關文章:

            flash怎么制作圍繞中心旋轉的文字動畫效果07-04

            flash怎么給圖片制作伸縮動畫效果09-13

            PS制作3D火焰效果教程06-04

            flash怎么制作動畫08-20

            flash動畫的詳細制作流程10-01

            flash動畫制作的廣告優勢05-09

            Flash動畫制作學習的心得08-01

            flash動畫制作流程簡介10-07

            flash動畫制作的發展前景12-27

            flash動畫制作有什么技巧09-13

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看