球面移动:
/UploadTeach/201011/20101102155836854.swf
文档类:
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();
}
}
}
}
}
{
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;
}
}
}
唐山flash原创动画 。本教程由 唐山卡动互动影视动漫 转载 如有版权问题请联系删除。