package { import flash.display.Bitmap; import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.utils.getTimer; import flash.system.Capabilities; [SWF(width="800", height="600", frameRate="900", backgroundColor="#FFFFFF")] public class ImageScrollerTest extends Sprite { // fps counting private var fpsTF:TextField; public var fps:Number = 0; private var fpsArray:Array; private var lastTime:Number; private var display:Bitmap; private var scrollX:Number = 0; private var scrollY:Number = 0; private var scrollZoom:Number = 1; private var browser:String; [Embed(source="grafitti.jpg")] private var img:Class; private var scroller:ImageScroller; public function ImageScrollerTest() { // Grab embedded bitmap display = new img() as Bitmap; this.addChild(display); scroller = new ImageScroller(display.bitmapData); display.bitmapData = scroller.data; // debug fpsTF = new TextField(); fpsTF.autoSize = TextFieldAutoSize.LEFT; fpsTF.selectable = false; fpsTF.background = true; fpsTF.selectable = true; addChild(fpsTF); fpsArray = new Array(); browser = "OS: "+Capabilities.os+" - Player Version: "+Capabilities.version; this.addEventListener(Event.ENTER_FRAME,enterFrame); } private function enterFrame(e:Event):void { // change bitmap scrollX += 1; scrollY += 1; scroller.panToAngle(scrollX); scroller.tiltToAngle(scrollY); scroller.scroll(); // Update the fps variable var fps:Number = Math.floor( 1000/(getTimer()-lastTime) ); fpsArray.push(fps); if(fpsArray.length > 200){ fpsArray.shift(); } fpsTF.text = browser+" - FPS: "+averageFps(); lastTime = getTimer(); } /** * Calculates the average of an array * @method averageFps * @return Number */ private function averageFps(): Number { var sum:Number = 0; for (var i:uint = 0; i < fpsArray.length; i++) { sum += fpsArray[i]; } return Math.floor(sum / fpsArray.length); } } }