« ASDocの警告を表示しない | メイン | enterFrame イベントの管理 »
2007年8月25日
[as2] AS2のEventDispatcherを使ってみる
27日の月曜日に心斎橋にて開催されるTERACOに参加することになったので。
予習ということで EventDispatcher クラスを使って、ステージサイズを取得するためのクラスを作成してみようと。
サンプル
サンプルソースのダウンロード ( 20070825_stageresize.zip )
今回作ったクラスは「StageResizeManager」というクラス。
詳細は省くけども、使えるメソッドはこの5つ。すべて static 。
ルートのタイムラインに下記のスクリプトを書いています。
setup の maxSize と minSize はオプション。
四隅の四角はそれぞれ中のタイムラインに下記のようなスクリプトが書かれてます。
なぜか今日は片言。
月曜日緊張するな~
予習ということで EventDispatcher クラスを使って、ステージサイズを取得するためのクラスを作成してみようと。
サンプル
サンプルソースのダウンロード ( 20070825_stageresize.zip )
今回作ったクラスは「StageResizeManager」というクラス。
詳細は省くけども、使えるメソッドはこの5つ。すべて static 。
setup( width:Number, height:Number, maxSize:Object, minSize:Object ):Void
setup は1回実行すると削除される
addEventListener( type:String , object:Object ):Void リスナーを登録
removeEventListener( type:String , object:Object ):Void 登録したリスナーの削除
eventRequest():Void サイズ変更の有無に関わらず強制的に1回resizeイベントを送信
getSizeInfo():Object ステージのサイズ情報を取得
で、肝心のイベントは
resizedの1つだけ。
ルートのタイムラインに下記のスクリプトを書いています。
setup の maxSize と minSize はオプション。
var defaultWidth:Number = 550;
var defaultHeight:Number = 350;
var maxSize:Object = { width:800 , height:600 };
var minSize:Object = { width:400 , height:300 };
StageResizeManager.setup( defaultWidth , defaultHeight , maxSize , minSize );
function resizeHandler( event:Object )
{
var str = "stage resize ---------------------------------\n" ;
for(var val in event){
str += " "+ val +" => "+ event[val]+"\n";
}
trac.text = str;
trace( str );
}
StageResizeManager.addEventListener( "resized" , resizeHandler );
this.onEnterFrame = function()
{
StageResizeManager.eventRequest();
delete this.onEnterFrame;
}
ちなみに onEnterFrame を使ってるのは、下層の四角4つの、それぞれのスクリプトの処理が終わった後に実行したいから。
四隅の四角はそれぞれ中のタイムラインに下記のようなスクリプトが書かれてます。
var loc = this;
function resizeHandler( event:Object )
{
loc._x = event.left;
loc._y = event.top;
loc.x.text = loc._x;
loc.y.text = loc._y;
}
StageResizeManager.addEventListener( "resized" , resizeHandler );
なぜか今日は片言。
月曜日緊張するな~
トラックバック(0)
このブログ記事を参照しているブログ一覧: AS2のEventDispatcherを使ってみる
このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/431

コメントする