package { import flash.display.Sprite; import flash.events.*; import flash.display.*; import flash.text.*; import flash.events.*; public class FlashTest extends MovieClip { public function FlashTest() { var p: Particula = new Particula (null,5); var t: Particula = new Particula (p,10); addChild(p); addChild(t); } } } import flash.geom.Rectangle; import flash.display.Sprite; class Particula extends Sprite { import flash.events.*; public var xPos:Number; public var yPos:Number; private var rWidth:Number; private var rHeight:Number; private var color:uint; private var grados : int=0; private var radian: int; private var velocidad : Number= 10; private var _padre:Particula; public function Particula (padre:Particula,radio:int,xPos:Number=100,yPos:Number=100) { this._padre = padre; this.xPos = xPos; this.yPos = yPos; this.graphics.beginFill(0x000000); this.graphics.drawCircle(xPos,yPos,radio); this.graphics.endFill(); this.addEventListener(Event.ENTER_FRAME,orbitar); } private function orbitar(e:Event) :void { if(_padre!=null) { grados += velocidad; radian = (grados /180)*Math.PI; this.x = _padre.xPos+Math.cos(radian)*50; this.y = _padre.yPos-Math.sin(radian)*50; } } } flash on 2009-4-21