[AS3] ウィンドウリサイズの終了を取ってみた

16th 06月 2009

ウィンドウリサイズの終了時に命令を実行したいのですが、
これがなかなか思った通りの動作にならずに悩んでいました。
やっとそれっぽくできたので、忘れないようにメモしておきます。

ソースファイル

package
{
	
	/**
	 * ...
	 * @author nezilab
	 */
	
	import flash.display.*;
	import flash.events.*;

	
	public class ResizeTest extends Sprite
	{
		public var mc						:MovieClip;
		//
		private var oldStageW				:int = 0;
		private var oldStageH				:int = 0;
		
		/*--------------------------------------------------------
		 *コンストラクタ
		----------------------------------------------------------*/
		public function ResizeTest() 
		{
			//trace("■ResizeTest			: constructor")
			
			// stage の初期設定を行います。
			stage.frameRate = 30;
			stage.scaleMode = StageScaleMode.NO_SCALE
			stage.align = StageAlign.TOP_LEFT;
			
			init();
		}
		
		
		/*--------------------------------------------------------
		 *初期化
		----------------------------------------------------------*/
		private function init():void
		{
			//trace("■ResizeTest			: init")
			stage.addEventListener(Event.RESIZE, onResizaStart);
		}
		
		/*--------------------------------------------------------
		 *リサイズスタート
		----------------------------------------------------------*/
		private function onResizaStart( e:Event ):void
		{
			//trace("■ResizeTest			: onResizaStart");
			trace("リサイズスタート");

			stage.removeEventListener( Event.RESIZE, onResizaStart );
			addEventListener(Event.ENTER_FRAME , onResizeProgress);
		}
		
		/*--------------------------------------------------------
		 *リサイズ中
		----------------------------------------------------------*/
		private function onResizeProgress(e:Event):void
		{
			//trace("■ResizeTest			: onResizeProgress");
			trace("リサイズ中");
			
			if (oldStageW == stage.stageWidth && oldStageH == stage.stageHeight ) {
				// 前回のステージのサイズと今のステージサイズが変更されていなけば、リサイズ終了
				trace("リサイズ終了");
				mc.x = stage.stageWidth;
				mc.y = stage.stageHeight;
				removeEventListener( Event.ENTER_FRAME, onResizeProgress );
				stage.addEventListener(Event.RESIZE, onResizaStart);
			}
			
			// 現在のステージサイズを保存する
			oldStageW = stage.stageWidth;
			oldStageH = stage.stageHeight;

		}
		
	}
}


トラックバック(0)

このブログ記事を参照しているブログ一覧: [AS3] ウィンドウリサイズの終了を取ってみた

このブログ記事に対するトラックバックURL: http://nezilab.heteml.jp/mt/mt-tb.cgi/13


コメントする



 
 

 

自画像

neziについて

nezi
1982 徳島生まれ
東京の片隅で、Flash使いに憧れるFlash見習い一号です。
Twitter / nezi

   

このサイトについて

ActionScriptという呪文を使えるようにがんばっているときに、
気づいたことや発見したことを書いていきます。
そのほかにも気になったこと等を書いていく、
メモ帳がわりに使っていくサイトです。