立体梦幻星空旋转3D地球
-
荷塘月色
1楼 2016-11-21 13:22:14
本教程用BitmapSphereBasic类,创建改变旋转方向和移动贴图的实例。1、新建AS3.0 flv文档,文档属性,500*500像素,帧频60fps ,存盘。如图1:
4、返回场景1,图层1拖入背景图片。5、添加as层输入代码:
-
荷塘月色
2楼 2016-11-21 13:22:27
//导入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();
}
}
-
荷塘月色
3楼 2016-11-21 13:22:38
6、把附件中的com解压到同一目录下,完工测试。Dot.rar