FLASHでビットマップのフルスクリーン表示。
外部ビットマップデータを読み込んで、ウィンドウ全面に表示されるように拡大・縮小を行います。ウィンドウのサイズが変更されたら、それに合わせてビットマップもリサイズします。
サンプルはこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.PixelSnapping; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.net.URLRequest; public class Main extends Sprite { public function Main() { var loader:Loader = new Loader(); var info:LoaderInfo = loader.contentLoaderInfo; //ビットマップデータの読み込み loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); loader.load(new URLRequest("image.jpg")); //ステージのスケールを固定で、原点を左上に stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; //ビットマップの読み込みが完了した時 function onComplete(event:Event):void { var bmd:BitmapData = new BitmapData(info.width, info.height); var bm:Bitmap = new Bitmap(bmd, PixelSnapping.NEVER, true); //ビットマップを描画 bmd.draw(loader); stage.addChild(bm); adjustBitmap(bm); } //ビットマップをステージのサイズに合わせる function adjustBitmap(bm:Bitmap):void { var inner:Number = bm.width/bm.height; //ビットマップの縦横比 var outer:Number; //ステージの縦横比 //ステージのサイズが変更された時 stage.addEventListener(Event.RESIZE, transSize); transSize(); //ビットマップを拡大・縮小 function transSize():void { var size_x:uint = stage.stageWidth; var size_y:uint = stage.stageHeight; outer = size_x/size_y; //ビットマップ、ステージの縦横比を比較してサイズを変更 if (inner >= outer) { size_x = size_x*(inner/outer); } else { size_y = size_y*(outer/inner); } bm.width = size_x; bm.height = size_y; } } } } } |