// Flash9 actionscript3.0, test for graphics // Petri Leskinen, Espoo, Finland, June 2008 package { import flash.display.Sprite; import flash.display.BitmapData; import flash.text.TextField; import flash.utils.getTimer; import flash.geom.Point; // import flash.geom.Rectangle; import flash.events.Event; // [SWF(backgroundColor="0xFFFFFF", frameRate="31")] public class GraphicsPathTest2versio9 extends Sprite { private var i:int; public var n:int =512; public var perlinData:BitmapData; public var po:Array= [new Point(), new Point(), new Point()]; private var txt:TextField; public function GraphicsPathTest2versio9() { // We use a bitmap only 2 pixels high perlinData = new BitmapData(n,2,false); // txt for Timer txt = new TextField(); txt.textColor =0xFF000000; txt.y = 10; addChild(txt); // ready to go upDate(new Event(Event.RENDER)); addEventListener(Event.ENTER_FRAME, upDate); } private function upDate(e:Event):void { // Animating perlinNoise po[0].y += 0.03; po[1].y -= 0.01; po[2].y += 0.0112510; perlinData.perlinNoise(n/3,1,3,13, true,true,4,false, po); var startT:Number = getTimer(); // for Timer //for (var j:int=0; j!=100; j++) { // for time testing with (this.graphics) { clear(); beginFill(0x00,1.0); lineStyle(1.0,0x00); moveTo(0,perlinData.getPixel(0,0) & 0xFF); // point's y-value is red from the bitmapdata // First the upper row from left to right for (i=0 ; i!=n; i++) { this.graphics.lineTo(i,perlinData.getPixel(i,0) & 0xFF); } // Then the lower row from right to left for (i=n-1 ; i!=-1; i--) { this.graphics.lineTo(i,perlinData.getPixel(i,1) & 0xFF); } endFill(); } //} // for time testing // update the Timer txt.text= Number(getTimer()-startT).toString() +" ms"; } } }