正在阅读:Flash实例教程:AS3.0打造三维旋转球Flash实例教程:AS3.0打造三维旋转球

2009-11-28 09:56 出处:PConline 作者:中国教程网论坛 责任编辑:lizhiyan

  本教程利用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(); 

 

        } 

}

  6、把附件中的com解压到同一目录下,完工测试。

  Dot.rar

  com.rar

关注我们

最新资讯离线随时看 聊天吐槽赢奖品