Flash教程 3DMAX教程
返回首页
当前位置: 主页 > 媒体动画 > Flash教程 >

Flash CS4教程:立体梦幻星空旋转3D地球

时间:2012-04-19 05:16来源:中国教程网论坛 作者:cao4811 作者: 点击:
Flash CS4教程:立体梦幻星空旋转3D地球,本教程用BitmapSphereBasic类,创建改变旋转方向和移动贴图的实例。
程序开发环境: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(); 



        } 

}
爱设计教学网(www.2sheji.com)——为您所需,替您所想!
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容