WEB开发网
开发学院图形图像Flash Flash实例教程:AS3.0打造三维旋转球 阅读

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

 2009-12-01 00:00:00 来源:WEB开发网   
核心提示:先看看演示:制作方法:1、新建AS3.0 flv文档,文档属性,Flash实例教程:AS3.0打造三维旋转球,500*500像素,帧频60fps ,varprevX:Number;varprevY:Number;//行星的位置.varballX:Number=250;varballY:Number=250;//贴图va

先看看演示:

制作方法:

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解压到同一目录下,完工测试。

Tags:Flash 实例 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接