In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

sierpinski triangle

Sierpinski triangle using BitmapData draw method 
Mateusz Malczak (http://segfaultlabs.com)
Get Adobe Flash player
by malczak 21 Jan 2009
    Embed
package {

 import flash.display.*;
 import flash.geom.*;
 import flash.events.*;
 import flash.utils.*;

 [SWF(width="465", height="465", backgroundColor="0x000000", frameRate="10")]

 /* Sierpinski triangle using BitmapData draw method 
  * Mateusz Malczak (http://segfaultlabs.com)
  **/
 public class Main extends MovieClip {
    private var _bd : BitmapData;
    private var _bdclone : BitmapData;
    private var _fmtx : Matrix;
    private var _mp : Point = new Point( 465/2, 465/(6*Math.random()+4) );
    private var _rct :  ColorTransform = new ColorTransform(1,1,1,1,40,-20,-20);
    private var _gct :  ColorTransform = new ColorTransform(1,1,1,1,-20,40,-20);
    private var _bct :  ColorTransform = new ColorTransform(1,1,1,1,-20,-20,40);
    private var tmr:Timer;

    public function Main():void
    {
      _bd = new BitmapData(465,465,true,0xffffff);
      var b:Bitmap = new Bitmap(_bd);
      addChild(b);
      _fmtx = new Matrix(0.5,0,0,0.5);
      _bdclone = _bd.clone();
      tmr = new Timer(300,10);
      tmr.addEventListener( TimerEvent.TIMER, ef );
      tmr.addEventListener( TimerEvent.TIMER_COMPLETE, restart );
      restart();
    }

    private function restart( evt:Event=null ):void
    {
        _bd.noise( Math.random() ); /* load some picture instead of noise */
        _mp = new Point( 465/2, 465/(20*Math.random()) );
        tmr.reset();
        tmr.start();
    };

    private function ef( evt:Event ):void
    {
        _bdclone.fillRect( _bdclone.rect, 0xffffff );
        _bdclone.draw( _bd );
        _bd.fillRect( _bd.rect, 0xffffff );
        _fmtx.tx = 0; _fmtx.ty =  _mp.x;
        _bd.draw( _bdclone, _fmtx, _rct );
        _fmtx.tx = _mp.x; _fmtx.ty = _mp.x;
        _bd.draw( _bdclone, _fmtx, _gct );
        _fmtx.tx = _mp.y; _fmtx.ty = 0;
        _bd.draw( _bdclone, _fmtx, _bct );
        
    };


 }

}