何かしらのトリガーで、メッセージとボタンを備えたダイアログボックス(のようなもの)を表示させるサンプル。

ダイアログボックスのクラス(MyDialog)では、
・現在ダイアログボックスが表示されている?いない?を知るためのプロパティ(Readonly)
・ステージに追加された時のハンドラー(ステージの中央に表示するための処理)
・ステージから削除された時のハンドラー
・ボタンが押された際のハンドラー(カスタムイベント発行)
などが含まれています。
| 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 | package  { 	import flash.display.MovieClip; 	import flash.events.Event; 	import flash.events.MouseEvent; 	public class MyDialog extends MovieClip 	{ 		private var _opened:Boolean = false; 		public function MyDialog() 		{ 			this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); 			this.addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); 			this.btnOk.addEventListener(MouseEvent.CLICK, onClickBtnOk); 		} 		function get opened():Boolean 		{ 			return _opened; 		} 		function onAddedToStage(e:Event):void 		{ 			this.x = this.stage.stageWidth / 2; 			this.y = this.stage.stageHeight / 2; 			_opened = true; 		} 		function onRemovedFromStage(e:Event):void 		{ 			_opened = false; 		} 		function onClickBtnOk(e:MouseEvent):void 		{ 			dispatchEvent(new Event("CloseDialog")); 			e.stopPropagation(); 		} 	} } | 
ダイアログボックスを呼び出す側のドキュメントクラスでは、
・ステージがクリックされたらダイアログボックスを表示する
・カスタムイベント(ダイアログを閉じる)のハンドラ
が含まれています。
| 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 | package  { 	import flash.display.MovieClip; 	import flash.events.MouseEvent; 	import flash.events.Event; 	public class DialogTest extends MovieClip 	{ 		private var dlg:MyDialog = new MyDialog(); 		public function DialogTest() 		{ 			this.stage.addEventListener(MouseEvent.CLICK, onClickStage); 			dlg.addEventListener("CloseDialog", onCloseDialog); 		} 		function onClickStage(e:MouseEvent):void 		{ 			if(dlg.opened == false) 			{ 				this.addChild(dlg); 			} 		} 		function onCloseDialog(e:Event):void 		{ 			this.removeChild(dlg); 		} 	} } | 
実行結果
This movie requires Flash Player 11
ソースファイルは、こちらからダウンロード

コメントを残す
コメントを投稿するにはログインしてください。