forked from: 8 figured ring
forked from 8 figured ring (diff: 52)
ActionScript3 source code
/**
* Copyright milchreis ( http://wonderfl.net/user/milchreis )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/uqGL
*/
// forked from freddy's 8 figured ring
package
{
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite
{
public function FlashTest()
{
// write as3 code here..
addChild(create8(stage.stageWidth/2, stage.stageHeight/2, 200, .01, 90, 0, 5));
}
private function create8(x:int, y:int, r:int, speed:Number, angle:Number, phase:Number, n:uint = 0):Sprite
{
var sp:Sprite = new Eight(r, speed, angle, phase);
sp.x = x;
sp.y = y;
if (--n > 0)
{
sp.addChild(create8( r, 0, r/2, speed * 1.5, angle, phase* (Math.random() - .5), n)).rotation = 90;
sp.addChild(create8(-r, 0, r/2, speed , angle * 2, phase* (Math.random() - .5), n)).rotation = 90;
}
return sp;
}
}
}
import flash.display.Sprite;
import flash.events.Event;
internal class Eight extends Sprite
{
private var _t:Number = 0, _speed:Number, _angle:Number, _phase:Number;
public function Eight(r:Number, speed:Number, angle:Number, phase:Number)
{
graphics.lineStyle(6);
graphics.drawCircle( r, 0, r);
graphics.drawCircle(-r, 0, r);
_speed = speed;
_angle = angle;
_phase = phase;
addEventListener(Event.ENTER_FRAME, loop)
}
private function loop(e:Event):void
{
rotation = Math.cos(_phase + _t * 2 * Math.PI) * _angle;
_t += _speed;
}
}
var trace:Function = Wonderfl.log;
