import hype.extended.behavior.FixedVibration;
import hype.extended.behavior.VariableVibration;
import hype.extended.color.ColorPool;
import hype.extended.trigger.ExitShapeTrigger;
import hype.framework.core.ObjectPool;
import hype.framework.core.TimeType;
import hype.framework.display.BitmapCanvas;
import hype.framework.rhythm.SimpleRhythm;
MyExitShape.visible = false;
var myWidth = stage.stageWidth;
var myHeight = stage.stageHeight;
var bmc:BitmapCanvas = new BitmapCanvas(myWidth, myHeight);
addChild(bmc);
var clipContainer:Sprite = new Sprite();
var color:ColorPool = new ColorPool(
0x587b7C, 0x719b9E, 0x9FC1BE, 0xE0D9BB, 0xDACB94, 0xCABA88, 0xDABD55, 0xC49F32, 0xA97409
);
var pool:ObjectPool = new ObjectPool(MyCircle, 200);
function addNextClip(r:SimpleRhythm) {
pool.request();
}
var rhythm:SimpleRhythm = new SimpleRhythm(addNextClip);
rhythm.start(TimeType.TIME, 1);
pool.onRequestObject = function(clip) {
clip.x = myWidth / 2;
clip.y = myHeight / 2;
clip.scaleX = clip.scaleY = 0;
// target Object, property, spring, ease, vibrationRange
var xVib:VariableVibration = new VariableVibration(clip, “x”, 0.99, 0.01, 100);
var yVib:VariableVibration = new VariableVibration(clip, “y”, 0.99, 0.01, 100);
xVib.start();
yVib.start();
// target Object, property, spring, ease, min, max, isRelative
var aVib:FixedVibration = new FixedVibration(clip, “alpha”, 0.9, 0.05, 0.0, 1.0, false);
var sVib:FixedVibration = new FixedVibration(clip, “scale”, 0.9, 0.05, 0.05, Math.ceil(Math.random() * 3) * 0.3, false);
var rVib:FixedVibration = new FixedVibration(clip, “rotation”, 0.9, 0.05, 0, 360, false);
aVib.start();
sVib.start();
rVib.start();
// exit callback function, target Object, shape, shapeFlag
var onExit:ExitShapeTrigger = new ExitShapeTrigger(onExitShape, clip, MyExitShape, true);
onExit.start();
color.colorChildren(clip);
clipContainer.addChild(clip);
}
function onExitShape(clip):void {
pool.release(clip);
clipContainer.removeChild(clip);
}
bmc.startCapture(clipContainer, true);