演示:
本教程用BitmapSphereBasic類,創(chuàng)建改變旋轉(zhuǎn)方向和移動貼圖的實例。
1、新建AS3.0 flv文檔,文檔屬性,500*500像素,幀頻60fps ,存盤。如圖1:
2、導(dǎo)入制作球體和背景的圖片到庫中,右鍵單擊球體貼圖圖片,命名為Earth。如圖2:
3、創(chuàng)建名為dotClip的影片剪輯,圖層1繪制15*15筆觸黑色,填充色為#cccccc的圓形,第2幀插入關(guān)鍵幀。添加圖層2,在第2 幀插入關(guān)鍵幀,繪制5*5無筆觸,顏色為黑色的圓形。圖層結(jié)構(gòu)如圖3:
4、返回場景1,圖層1拖入背景圖片。
5、添加as層輸入代碼:
//導(dǎo)入BitmapSphereBasic類 import com.flashandmath.cs4.BitmapSphereBasic; //創(chuàng)建一個行星 var board:Sprite = new Sprite(); //添加到顯示列表 this.addChild(board); //生成 datatype BitmapSphereBasic 的一個函數(shù)。 // 設(shè)定函數(shù)初始值。 var ball:BitmapSphereBasic; //旋轉(zhuǎn)的一個布爾值的函數(shù)。 var autoOn:Boolean = true; //兩個函數(shù)為鼠標(biāo)旋轉(zhuǎn)。 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); } } //三個偵聽為旋轉(zhuǎn)和鼠標(biāo)。 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(); } } |
6、把附件中的com解壓到同一目錄下,完工測試。