Skip to content

Instantly share code, notes, and snippets.

@ryzed
Created September 9, 2013 19:14
Show Gist options
  • Save ryzed/6500130 to your computer and use it in GitHub Desktop.
Save ryzed/6500130 to your computer and use it in GitHub Desktop.
package ;
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.Lib;
import mt.Fiber;
/**
* ...
* @author ...
*/
using ryz.utils.DisplayObjectUtils;
class XFiber extends Fiber
{
public var dObj:DisplayObject;
override public function run():Void
{
while (true)
{
while (dObj.x < 500)
{
dObj.x = dObj.x + 5;
yield();
}
while (dObj.x > 100)
{
dObj.x = dObj.x - 5;
yield();
}
}
}
}
class YFiber extends Fiber
{
public var dObj:DisplayObject;
override public function run():Void
{
while (true)
{
while (dObj.y < 300)
{
dObj.y = dObj.y + 2;
yield();
}
while (dObj.y > 100)
{
dObj.y = dObj.y - 2;
yield();
}
}
}
}
class ColorFiber extends Fiber
{
public var dObj:Sprite;
public var rStep:Float = 0;
override public function run():Void
{
while (true)
{
rStep += 0.05;
dObj.graphics.clear();
dObj.graphics.lineStyle(0, Std.random(0xffffff));
dObj.graphics.drawCircle(0, 0, Math.cos(rStep) * 8 + 16);
yield();
}
}
}
class TestThreads
{
static function main()
{
var stage = Lib.current.stage;
var spr = new Sprite();
spr.to(256, 256).attach(stage);
var xf = new XFiber(FiberType.Frame);
xf.dObj = spr;
var yf = new YFiber(FiberType.Frame);
yf.dObj = spr;
var cf = new ColorFiber(FiberType.Frame);
cf.dObj = spr;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment