I have tried to port this old code to the latest version of Flint (4.x) and am very surprised that it _appears_ to run a lot slower. I would have imagined that more recent versions would be more performant, if anything, not less. So I assume there may be something wrong with what I'm doing now that wasn't wrong 5 years ago.
Here's the old code:
var renderer:BitmapRenderer;
var emitter:Emitter;
var mc_pic:MovieClip;
public function Main() {
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init( event:Event ) {
mc_pic = this.getChildByName( "picMC" ) as MovieClip;
mc_pic.cacheAsBitmap = true;
renderer = new PixelRenderer( new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight ) );
renderer.addFilter( new BlurFilter( 6, 6, 1 ), true );
renderer.cacheAsBitmap = true;
emitter = new Emitter();
emitter.renderer = renderer;
emitter.counter = new Steady( 10000 );
emitter.addInitializer( new Position( new RectangleZone( mc_pic.x, mc_pic.y, mc_pic.x + mc_pic.width, mc_pic.y + mc_pic.height ) ) );
emitter.addInitializer( new Velocity( new DiscZone( new Point( 0, 0 ), 5, 20 ) ) );
emitter.addAction( new Move() );
emitter.start();
addChild( renderer );
mc_pic.mask = renderer;
}
And here's the updated version:
var renderer:BitmapRenderer;
var emitter:Emitter;
var mc_pic:MovieClip;
public function Main() {
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init( event:Event ) {
mc_pic = this.getChildByName( "picMC" ) as MovieClip;
mc_pic.cacheAsBitmap = true;
renderer = new PixelRenderer( new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight ) );
renderer.addFilter( new BlurFilter( 6, 6, 1 ), true );
renderer.cacheAsBitmap = true;
emitter = new Emitter2D();
emitter.counter = new Steady( 10000 );
emitter.addInitializer( new Position( new RectangleZone( mc_pic.x, mc_pic.y, mc_pic.x + mc_pic.width, mc_pic.y + mc_pic.height ) ) );
emitter.addInitializer( new Velocity( new DiscZone( new Point( 0, 0 ), 20, 5 ) ) );
emitter.addAction( new Move() );
renderer.addEmitter( emitter );
emitter.start();
addChild( renderer );
mc_pic.mask = renderer;
}
]]>