package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; [SWF( width="800",height="600", backgroundColor="#ffffff")] public class BoingBoing extends Sprite { public function BoingBoing() { stage.scaleMode = "noScale"; stage.align = "TL"; stage.frameRate = 20; var c:Array = [[22,0,0,7],[23,6,0,-7],[4,0,0,7],[9,0,0,7], [12,0,0,7],[17,0,0,7],[15,6,0,-5],[9,2,3,0], [18,4,2,0],[19,5,0,0], [9,0,-8,0],[2,1,2,0], [21,0,-10,0],[2,3,0,2],[7,2,0,3],[19,2,0,0]]; var p:Array = [0xffffff,0xff0000]; var b:BitmapData = new BitmapData( 46, 7, false, 0xff0000 ); var bm:Bitmap = new Bitmap( b ); addChild( bm ); bm.scaleX = bm.scaleY = 10; bm.x = ( 800 - bm.width ) >> 1; bm.y = ( 600 - bm.height ) >> 1; var px:int, py:int, dx:int, dy:int, pc:int = 0, i:int = 0, dl:int = 30; stage.addEventListener( Event.ENTER_FRAME, function( event:Event ):void { if ( dx == 0 && dy == 0 ) { if ( i == c.length ){ if ( dl-- > 0 ) return; dl = 30; i = 0; pc = 1 - pc; c.sort( function( a:Object,b:Object ):int{ return Math.random() < 0.33 ? 1 : Math.random() < 0.5 ? -1 : 0 } ); } px = c[i][0]; py = c[i][1]; dx = c[i][2]; dy = c[i++][3]; } b.setPixel( px, py, p[pc] ); b.setPixel( px + 24, py, p[pc] ); px += ( dx == 0 ? 0 : dx < 0 ? -1 : 1 ); py += ( dy == 0 ? 0 : dy < 0 ? -1 : 1 ); dx += ( dx == 0 ? 0 : dx < 0 ? 1 : -1 ); dy += ( dy == 0 ? 0 : dy < 0 ? 1 : -1 ); }); } } }