当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash CS4教程:立体梦幻星空旋转3D地球

Flash动画制作
fmx2004 1000问(5)
Flash MX 2004 组件事件简单调试器
fmx2004 1000问(2)
Action Script 2.0新手调试
Flash 2004 MX Components
flash action 详解(9)
flash action 详解(7)
flash action 详解(1)
flash action 详解(6)
一个用纯AS写的正态曲线画法
flash action 详解(3)
浅谈AS的绘图功能及几个简单的实例
AS的基本代码解释(2)
flash action 详解(2)
flash action 详解(10)
运用for循环来对多个mc进行检测
极坐标在绘画方法中的运用
用Flash 2004编写简单的运算类
flash action 详解(4)
flash action 详解(5)

Flash动画制作 中的 Flash CS4教程:立体梦幻星空旋转3D地球


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-04   浏览: 260 ::
收藏到网摘: n/a

程序开发环境:Flash CS4 ActionScript 3.0

演示:


教程用BitmapSphereBasic类,创建改变旋转方向和移动贴图的实例。

1、新建AS3.0 flv文档,文档属性,500*500像素,帧频60fps ,存盘。如图1:
图1.png
2、导入制作球体和背景的图片到库中,右键单击球体贴图图片,命名为Earth。如图2:
图2.png
3、创建名为dotClip的影片剪辑,图层1绘制15*15笔触黑色,填充色为#cccccc的圆形,第2帧插入关键帧。添加图层2,在第2 帧插入关键帧,绘制5*5无笔触,颜色为黑色的圆形。图层结构如图3:
图3.png
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:/upload/tech/20100104/20100104135408_6cd67d9b6f0150c77bda2eda01ae484c.rar

com.rar:/upload/tech/20100104/20100104135411_a516a87cfcaef229b342c437fe2b95f7.rar