本教程利用Flash CS4 ActionScript 3.0打造三維旋轉球,希望對大家有所幫助!教程用BitmapSphereBasic類,創建改變旋轉方向和移動貼圖。
先看看演示:
效果演示
制作方法:
1、新建AS3.0 flv文檔,文檔屬性,500*500像素,幀頻60fps ,存盤。如圖1:
圖1
2、導入制作球體和背景的圖片到庫中,右鍵單擊球體貼圖圖片,命名為Earth。如圖2:
圖2
3、創建名為dotClip的影片剪輯,圖層1繪制15*15筆觸黑色,填充色為#cccccc的圓形,第2幀插入關鍵幀。添加圖層2,在第2 幀插入關鍵幀,繪制5*5無筆觸,顏色為黑色的圓形。圖層結構如圖3:
圖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