萬盛學電腦網

 萬盛學電腦網 >> 圖文處理 >> Flash教程 >> Flash實例教程:AS3.0打造三維旋轉球

Flash實例教程:AS3.0打造三維旋轉球

  本教程利用Flash CS4 ActionScript 3.0打造三維旋轉球,希望對大家有所幫助!教程用BitmapSphereBasic類,創建改變旋轉方向和移動貼圖。

  先看看演示:


效果演示

  制作方法:

  1、新建AS3.0 flv文檔,文檔屬性,500*500像素,幀頻60fps ,存盤。如圖1:

Flash實例教程:AS3.0打造三維旋轉球  三聯
圖1

  2、導入制作球體和背景的圖片到庫中,右鍵單擊球體貼圖圖片,命名為Earth。如圖2: 

Flash實例教程:AS3.0打造三維旋轉球
圖2

  3、創建名為dotClip的影片剪輯,圖層1繪制15*15筆觸黑色,填充色為#cccccc的圓形,第2幀插入關鍵幀。添加圖層2,在第2 幀插入關鍵幀,繪制5*5無筆觸,顏色為黑色的圓形。圖層結構如圖3:

Flash實例教程:AS3.0打造三維旋轉球
圖3

  4、返回場景1,圖層1拖入背景圖片。

 

  5、添加as層輸入代碼:

//導入BitmapSphereBasic類 

import com.flashandmath.cs4.BitmapSphereBasic; 

//創建一個行星 

var board:Sprite = new Sprite(); 

//添加到顯示列表 

this.addChild(board); 

//生成 datatype BitmapSphereBasic 的一個函數。 

// 設定函數初始值。 

var ball:BitmapSphereBasic; 

//旋轉的一個布爾值的函數。 

var autoOn:Boolean = true; 

//兩個函數為鼠標旋轉。 

var prevX:Number; 

var prevY:Number; 

//行星的位置. 

var ballX:Number = 250; 

var ballY:Number = 250; 

//貼圖 

var imageData:BitmapData = new Earth(800,548); 

ball = new BitmapSphereBasic(imageData); 

board.addChild(ball); 

ball.x = ballX; 

ball.y = ballY; 

//濾鏡 

ball.filters = [new GlowFilter(0xB4B5FE,0.6,32.0,32.0,1)]; 

this.addEventListener(Event.ENTER_FRAME,autoRotate); 

board.addEventListener(MouseEvent.ROLL_OUT,boardOut); 

board.addEventListener(MouseEvent.MOUSE_MOVE,boardMove); 

board.addEventListener(MouseEvent.MOUSE_DOWN,boardDown); 

board.addEventListener(MouseEvent.MOUSE_UP,boardUp); 

function autoRotate(e:Event):void { 

        if (autoOn) { 

                ball.autoSpin(-1); 

 

        } 

 

//三個偵聽為旋轉和鼠標。 

function boardOut(e:MouseEvent):void { 

        autoOn = true; 

 

function boardDown(e:MouseEvent):void { 

        prevX = board.mouseX; 

        prevY = board.mouseY; 

        autoOn = false; 

 

function boardUp(e:MouseEvent):void { 

        autoOn = true; 

 

function boardMove(e:MouseEvent):void { 

        var locX:Number = prevX; 

        var locY:Number = prevY; 

        //取反 

        if (! autoOn) { 

                prevX = board.mouseX; 

                prevY = board.mouseY; 

                ball.rotateSphere(prevY - locY, - (prevX - locX),0); 

                e.updateAfterEvent(); 

 

        }&n

copyright © 萬盛學電腦網 all rights reserved