トップページ > Stage > scaleMode(拡大縮小モード)を指定する



概要

scaleMode(拡大縮小モード)を指定してみましょう。

Flash Playerは画面サイズの変更ができます。
端を引っ張ればウィンドウサイズを拡大縮小出来ますし、右上の最大化ボタンや前回学んだフルスクリーンモードに変更することで画面サイズが変更されます。


その画面サイズを変更したときに、中にあるStage、つまり描画領域部分をどう処理すればいいのかを指定するのがStage#scaleModeプロパティです。
具体的にどういう指定方法があるのか見ていきましょう。


100 * 67pxの画像です。
これを拡大していきます。


"NO_SCALE"を指定しました。
  • 特徴
    • 拡大縮小しても画像サイズは変わりません。
    • 余白部分が表示されます。

"EXACT_FIT"を指定しました。
  • 特徴
    • ウィンドウの拡大に合わせて、ぴったりとフィットするようにStageも拡大されます。
    • 例えばウィンドウサイズが横に2.5倍、縦に3.0倍伸びたら、Stageも横に2.5倍、縦に3.0倍伸びます。


"SHOW_ALL"を指定しました。
  • 特徴
    • 縦横比を維持したまま拡大します。
    • 余白部分が表示されます。


"NO_BORDER"を指定しました。
  • 特徴
    • 縦横比を維持したまま拡大します。
    • SHOW_ALLと違い余白が表示されないのですが、縦横比を保つために画像の一部がトリミングされます。
    • 左側の葉っぱをよく見てください。半分しか表示されていません。薔薇の右側部分も切れています。



特徴は大体分かったと思いますので、実際にscaleModeを指定するコードを書いてみましょう。

stage.scaleMode = StageScaleMode.NO_SCALE;
// stage.scaleMode = "noScale";
 
scaleModeプロパティに値を代入するだけです。
コメントアウト部分のように文字列で指定することも可能です。


StageScaleMode.NO_SCALE / "noScale"
StageScaleMode.NO_BORDER / "noBorder"
StageScaleMode.EXACT_FIT / "exactFit"
StageScaleMode.SHOW_ALL / "showAll"


検証用コード

package
{
	import flash.display.Sprite;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Loader;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.net.URLRequest;
	import flash.system.LoaderContext;
 
	public class Main extends Sprite
	{	
		public function Main()
		{
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			var loader:Loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.INIT, init);
			loader.load(new URLRequest("http://farm4.static.flickr.com/3128/2860777818_49a92254b2_t.jpg"), new LoaderContext(true));
		}
 
		private function init(event:Event):void
		{
			var loader:Loader = event.currentTarget.loader;
 
			var bd:BitmapData = new BitmapData(loader.width, loader.height, false);
			bd.draw(loader);
			addChild(new Bitmap(bd));
		}
	}
}
 

|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|