AS3文档类:球面移动
作者:cao4811 类型:原创 来源:中国教程网论坛
| 球面移动: 文档类: package { import flash.display.Sprite; import flash.events.Event; [SWF(width=465, height=465, frameRate=30, backgroundColor=0xEAEFF2)] public class Sphere extends Sprite { private const N:int = 100; public function Sphere() { var i:int = 0; var list:Array = []; for (i = 0; i < N; i++) { var d:Dot = addChild(new Dot(i)) as Dot; list.push(d); } addEventListener(Event.ENTER_FRAME,upup); function upup(e:Event):void { for (i = 0; i < N; i++) { list[i].loop(); } } } } } |
Dot类:
package
{
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
public class Dot extends Sprite
{
private var _x:Number = 0;
private var _y:Number = 0;
private var _z:Number = 0;
private var _r:uint = 1;
private var _xyAngle:Number = 0;
private var _xzAngle:Number = 0;
private var _xyAdd:Number;
private var _xzAdd:Number;
private var _rad:uint = 100;
private var _dot:Shape;
private var _num:int;
public function Dot(setNum:int)
{
_num = setNum;
_xyAngle = setNum * 6 - 90;
_xzAngle = setNum * 10;
this.x = 238;
this.y = 238;
_xyAdd = 0.7;
_xzAdd = 1.11;
init();
}
private function init():void
{
_dot = addChild(new Shape ) as Shape;
with (_dot.graphics)
{
//EAEFF2
beginFill(uint(0xff * _num / 100) * 0x0101);
drawCircle(0,0,3);
endFill();
}
}
public function loop():void
{
_xyAngle += _xyAdd;
_xzAngle += _xzAdd;
if (_xyAngle > 360)
{
_xyAngle -= 360;
}
if (_xzAngle > 360)
{
_xzAngle -= 360;
}
_x = Math.cos(_xyAngle * Math.PI / 180);
_y = Math.sin(_xyAngle * Math.PI / 180);
_x = _x * Math.cos(_xzAngle * Math.PI / 180);
_z = Math.sqrt(1 - _x * _x - _y * _y);
if (_xzAngle > 180)
{
_z *= -1;
}
_dot.x = _x * _rad;
_dot.y = _y * _rad;
_dot.scaleX = _dot.scaleY = _z + 1.1;
}
}
}
- 上一篇:
- PhotoShop制作流光渐隐字的GIF动画教程
- 没有相关教材
- 最近更新
