イベントハンドラの引数を...restに設定して、各イベントに対応した処理をそれぞれ定義しておくとかなり使い回しができる関数が
作れると思います。
イベントハンドラに引数をつけて使い回す関数を作る事については今後色々研究していく予定です。
例題
イベントハンドラの引数に...restを設定し、...restに渡された各引数の内容を出力する。
マウスイベントでアクセスした場合は...restは関係しない。
my_btn.addEventListener(MouseEvent.CLICK,completeHandler(5,15,"returnにイベントを定義しておく"));
function completeHandler(...rest:Array)
{
//trace("...rest="+typeof rest[0]);
var restLength_ui:uint=rest.length;//引数の数
trace("引数の数="+restLength_ui);
trace("...rest="+rest);//rest配列に格納された引数
return function (e:MouseEvent):void{
//btnがクリックされた時の処理
trace("ボタンがクリックされました"+e.currentTarget)
//
}
}

2007年12月20日
2007年12月19日
イベントハンドラに引数をつける
イベントハンドラに引数をわたす簡単な処理を行います。
イベントハンドラに任意の引数を設定した後に、
returnでイベントハンドラ用の引数を設定したfunction を定義しておく事で
同じ関数内でクリックした時の処理と、通常の方法でアクセスした時の処理を
振り分ける事ができます。
例題 一つの関数内ににクリックイベント時に行う処理と、引数を設定して通常のやり方で
アクセスした場合の処理の両方を定義する。
通常にアクセスした時と、オブジェクトをクリック(MouseEvent)してアクセスした時で
それぞれ違う処理を返す。
my_btn.addEventListener(MouseEvent.CLICK,sampleHandler(12));//output 12
function sampleHandler(ui:uint)
{
trace("引数 ui ="+ui)
return function (evt:MouseEvent):void{
//btnがクリックされた時の処理
trace("ボタンがクリックされました"+evt.currentTarget)
//
}
}
sampleHandler(30)//output 30
この様にイベントハンドラの関数内に return function(引数:イベントトリガと同じ型)と定義する事で、イベントハンドラの関数に普通にアクセスした場合と特定のイベントでアクセスした場合の処理を振り分けする事でき、イベントハンドラに引数を設定する事ができます。
イベントハンドラに任意の引数を設定した後に、
returnでイベントハンドラ用の引数を設定したfunction を定義しておく事で
同じ関数内でクリックした時の処理と、通常の方法でアクセスした時の処理を
振り分ける事ができます。
例題 一つの関数内ににクリックイベント時に行う処理と、引数を設定して通常のやり方で
アクセスした場合の処理の両方を定義する。
通常にアクセスした時と、オブジェクトをクリック(MouseEvent)してアクセスした時で
それぞれ違う処理を返す。
my_btn.addEventListener(MouseEvent.CLICK,sampleHandler(12));//output 12
function sampleHandler(ui:uint)
{
trace("引数 ui ="+ui)
return function (evt:MouseEvent):void{
//btnがクリックされた時の処理
trace("ボタンがクリックされました"+evt.currentTarget)
//
}
}
sampleHandler(30)//output 30
この様にイベントハンドラの関数内に return function(引数:イベントトリガと同じ型)と定義する事で、イベントハンドラの関数に普通にアクセスした場合と特定のイベントでアクセスした場合の処理を振り分けする事でき、イベントハンドラに引数を設定する事ができます。
2007年11月22日
Loaderがファイルのロードに失敗した時のIOErrorEvent.IO_ERROR
Loaderがファイルのロードに失敗した時のIOErrorEvent.IO_ERRORについて解説します。IOErrorEvent.IO_ERRORはLoaderやURLLoaderがファルのロードに失敗した時のイベント処理です。なんらかの事情でファイルが正常にロードされない事もあるので、Loaderを使う処理を行う時は、ロードに失敗した時の事も考えてIOErrorEventの処理をきちんと設定しておく事をお勧めします。
例題
URLLoaderがファイルをロードした際に、ファイルがみつからなかった場合のIOErrorEvent.IO_ERRORで設定した関数にアクセス。
xmlLoader.addEventListener (IOErrorEvent.IO_ERROR,xmlIoErrorEvent);
xmlLoader.load(new URLRequest("notfound.swf"));;
function xmlIoErrorEvent(evt:IOErrorEvent)
{
trace("XMLのロードに失敗しました。")
}
例題
URLLoaderがファイルをロードした際に、ファイルがみつからなかった場合のIOErrorEvent.IO_ERRORで設定した関数にアクセス。
xmlLoader.addEventListener (IOErrorEvent.IO_ERROR,xmlIoErrorEvent);
xmlLoader.load(new URLRequest("notfound.swf"));;
function xmlIoErrorEvent(evt:IOErrorEvent)
{
trace("XMLのロードに失敗しました。")
}
2007年11月20日
addEventListenerでイベントを定義したLoaderオブジェクトをnewで初期化するとaddEventListenerで定義した イベントも初期化される
addEventListenerでイベントを定義したLoaderオブジェクトをnewで初期化するとaddEventListenerで定義した
イベントも初期化されます。
newで初期化したLoaderに初期前のLoaderと同じ振る舞いをさせたい時は同じイベントをもう一度設定する必要があります。
例題 Loaderがswfをロードが完了したら完了通知のイベントをトリガさせる。初期化した後にロードしてもイベント定義が初期化
されているため、完了通知のイベントはトリガしない。
var my_lo:Loader=new Loader();
my_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler)
my_lo.load(new URLRequest("sample.swf"));
function completeHandler(evt:Event)
{
//ファイルをロードが完了した際にトリガされるイベント
}
my_lo.load(new URLRequest("sample.swf"));
//my_loオブジェクトを初期化する
my_lo=new Loader();
my_lo.load(new URLRequest("sample.swf"));//newで初期化されているためイベントがトリガされない
イベントも初期化されます。
newで初期化したLoaderに初期前のLoaderと同じ振る舞いをさせたい時は同じイベントをもう一度設定する必要があります。
例題 Loaderがswfをロードが完了したら完了通知のイベントをトリガさせる。初期化した後にロードしてもイベント定義が初期化
されているため、完了通知のイベントはトリガしない。
var my_lo:Loader=new Loader();
my_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler)
my_lo.load(new URLRequest("sample.swf"));
function completeHandler(evt:Event)
{
//ファイルをロードが完了した際にトリガされるイベント
}
my_lo.load(new URLRequest("sample.swf"));
//my_loオブジェクトを初期化する
my_lo=new Loader();
my_lo.load(new URLRequest("sample.swf"));//newで初期化されているためイベントがトリガされない
2007年09月26日
addEventListenerでイベントの定義と実行を同時に行う
addEventListenerでイベントの定義と実行を同時に行います。
addEventListenerの第一引数にはイベント名、第二引数に関数そのものを定義します。
例題
sample_mc.addEventListenerでMouseEvent.CLICKイベントトリガを定義すると同時に関数も定義します。
sample_mcをクリックすると関数にアクセスします。ソースコードを見る | Flashゲーム研究所
addEventListenerの第一引数にはイベント名、第二引数に関数そのものを定義します。
例題
sample_mc.addEventListenerでMouseEvent.CLICKイベントトリガを定義すると同時に関数も定義します。
sample_mcをクリックすると関数にアクセスします。ソースコードを見る | Flashゲーム研究所
2007年09月25日
removeEventListenerでaddEventListenerで設定したイベントを消去する。
removeEventListenerでaddEventListenerで設定した設定したイベントを消去します。
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
removeEventListenerは不要になったイベントを無効にしたい時に使用します。
例題
ボタンに設定したクリックイベントをremoveEventListenerで消去します。
btn_mc.addEventListener(MouseEvent.CLICK,clickHandler)でbtn_mcをクリックするとclickHandlerにアクセスするイベントを設定します。
clickHandlerの関数内に
btn_mc.removeEventListener(MouseEvent.CLICK,clickHandler)
と定義しbtn_mcのイベントを消去します。
これでbtn_mcのクリックイベントが無効になります。
Flashゲーム制作ではイベント数は膨大な数になります。不要なイベントは放っておくと様々なトラブルを引き起こします。
不要になったイベントは即removeEventListenerで消去すると良いでしょう。
ソースコードを見る | Flashゲーム研究所
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
removeEventListenerは不要になったイベントを無効にしたい時に使用します。
例題
ボタンに設定したクリックイベントをremoveEventListenerで消去します。
btn_mc.addEventListener(MouseEvent.CLICK,clickHandler)でbtn_mcをクリックするとclickHandlerにアクセスするイベントを設定します。
clickHandlerの関数内に
btn_mc.removeEventListener(MouseEvent.CLICK,clickHandler)
と定義しbtn_mcのイベントを消去します。
これでbtn_mcのクリックイベントが無効になります。
Flashゲーム制作ではイベント数は膨大な数になります。不要なイベントは放っておくと様々なトラブルを引き起こします。
不要になったイベントは即removeEventListenerで消去すると良いでしょう。
ソースコードを見る | Flashゲーム研究所
2007年09月15日
格納用オブジェクトにEvent.ADDEDを定義し格納用オブジェクト内に何かのオブジェクトが表示されたらイベントをトリガする。
格納用オブジェクトにEvent.ADDEDを定義し格納用オブジェクト内に何かのオブジェクトが表示されたらイベントをトリガします。
Event.ADDEDはaddChild等でオブジェクトが表示された時にトリガされるイベントです。
前回は表示するオブジェクトにEvent.ADDEDを定義し、addChildで表示されたらイベントがトリガされましたが
今回は表示される格納用オブジェクトにオブジェクトが表示されたらイベントがトリガされる使い方をします。
格納用オブジェクトになにか表示されたらイベントがトリガされるという事です。
前回と全く一緒です、オブジェクトを格納するオブジェクト.addEventListener(Event.ADDED,addedHandler)
で表示オブジェクト内にオブジェクトが追加されたらイベントがトリガされます。
今回の様に格納用オブジェクトにEvent.ADDEDを設置するやり方がEvent.ADDEDメソッドの本当の使い方に近いと思います。
例題
sample_spオブジェクトを生成します。
box_mcというsample_spを格納するためのMCを生成します。
このbox_mcにEvent.ADDEDを定義します。
childBtn_spというボタンを生成し、クリックするとsample_spがbox_mcに表示されます。
box_mc内にオブジェクトが表示されたのでイベントがトリガされます。続きを読む
Event.ADDEDはaddChild等でオブジェクトが表示された時にトリガされるイベントです。
前回は表示するオブジェクトにEvent.ADDEDを定義し、addChildで表示されたらイベントがトリガされましたが
今回は表示される格納用オブジェクトにオブジェクトが表示されたらイベントがトリガされる使い方をします。
格納用オブジェクトになにか表示されたらイベントがトリガされるという事です。
前回と全く一緒です、オブジェクトを格納するオブジェクト.addEventListener(Event.ADDED,addedHandler)
で表示オブジェクト内にオブジェクトが追加されたらイベントがトリガされます。
今回の様に格納用オブジェクトにEvent.ADDEDを設置するやり方がEvent.ADDEDメソッドの本当の使い方に近いと思います。
例題
sample_spオブジェクトを生成します。
box_mcというsample_spを格納するためのMCを生成します。
このbox_mcにEvent.ADDEDを定義します。
childBtn_spというボタンを生成し、クリックするとsample_spがbox_mcに表示されます。
box_mc内にオブジェクトが表示されたのでイベントがトリガされます。続きを読む
2007年09月14日
dispatchEventを応用してサムネイルを総て読み込んだ事を通知し、一度にサムネイルを表示させる
dispatchEventを使用してサムネイルを総て読み込んだ事を通知し、一度にサムネイルを表示させるメソッドを記述しました。
dispatchEventがだいたいどういうものなのか認識できた気がします。
dispatchEventを使って「Loaderオブジェクトが画像を全部読み込んだ」という事をブロードキャストしています。
ソースコード
↓
続きを読む
dispatchEventがだいたいどういうものなのか認識できた気がします。
dispatchEventを使って「Loaderオブジェクトが画像を全部読み込んだ」という事をブロードキャストしています。
ソースコード
↓
続きを読む
2007年09月13日
Event.ADDEDで表示リストにオブジェクトが表示された事を参照する。
Event.ADDEDで表示リストにオブジェクトが表示された事を参照します。
Event.ADDEDはaddChild等でオブジェクトが表示された時にトリガされる
イベントです。
object.addEventListener(Event.ADDED,addedHandler)
と記述した場合、objectがaddChild等で表示された場合
addedHandlerにアクセスします。
addChildはFlashコンテンツを作る場合必ずと言っていいほど使う処理です。そのaddChildが実行された
タイミングを参照できるEvent.ADDEDの使い方を把握しておくと色々処理が円滑に進むと思います。
例題
sample_spオブジェクトを生成します。sample_sp.addEventListener(Event.ADDED,sampleAddedHandler)
と記述し、sample_spが表示されるとsampleAddedHandlerメソッドにアクセスするよう定義します。
childBtn_sptというボタンを生成し、クリックするとsample_spがaddChildされるよう定義します。
クリックするとsample_spが表示されるのでEvent.ADDEDがトリガされsampleAddedHandlerにアクセスします。
続きを読む
Event.ADDEDはaddChild等でオブジェクトが表示された時にトリガされる
イベントです。
object.addEventListener(Event.ADDED,addedHandler)
と記述した場合、objectがaddChild等で表示された場合
addedHandlerにアクセスします。
addChildはFlashコンテンツを作る場合必ずと言っていいほど使う処理です。そのaddChildが実行された
タイミングを参照できるEvent.ADDEDの使い方を把握しておくと色々処理が円滑に進むと思います。
例題
sample_spオブジェクトを生成します。sample_sp.addEventListener(Event.ADDED,sampleAddedHandler)
と記述し、sample_spが表示されるとsampleAddedHandlerメソッドにアクセスするよう定義します。
childBtn_sptというボタンを生成し、クリックするとsample_spがaddChildされるよう定義します。
クリックするとsample_spが表示されるのでEvent.ADDEDがトリガされsampleAddedHandlerにアクセスします。
続きを読む
dispatchEventの基本的な使用方法について
dispatchEventの基本的な使用方法について解説します。
dispatchEventはイベントをブロードキャストするメソッド。主に自分で定義したイベントに
アクセスする際に使われます。プロパティは
dispatchEvent(event:Event)
となっていて第一引数にはイベントオブジェクトを指定する必要があります。
イベント処理はFlash制作の上で避けては通れません。逆に言えばこのイベント処理に長けていると
その分制作効率、クオリティが大きく向上します。イベント処理に大きく関わる
dispatchEventの応用方法もこれからどんどん行っていきます。
今回は基本的な処理方法を記述します。
例題
sample_mcという空のMCにイベントを定義します。今までと違うのは自分でイベントのトリガを定義するという事です。今までは
MouseEvent.CLICKの様にあらかじめ定型化されていましたが今回はaddEventListenerの第一引数に"myEvent"とFlash側では
決められていないイベントを自分で定義します。第二引数は第一引数のイベントのトリガが押されたときにアクセスする
関数名を記述します。
sample_mc.dispatchEvent(new Event("myEvent"))で上記で定義したmyEventをブロードキャストします。dispatchEventの第一引数にnew Event("イベント名")と入れますが、この第一引数に入れるオブジェクトはEventオブジェクトである必要があるので
new Eventでイベントオブジェクトを生成する事が重要です。
myEventのトリガがひかれ定義した関数にアクセスします。
続きを読む
dispatchEventはイベントをブロードキャストするメソッド。主に自分で定義したイベントに
アクセスする際に使われます。プロパティは
dispatchEvent(event:Event)
となっていて第一引数にはイベントオブジェクトを指定する必要があります。
イベント処理はFlash制作の上で避けては通れません。逆に言えばこのイベント処理に長けていると
その分制作効率、クオリティが大きく向上します。イベント処理に大きく関わる
dispatchEventの応用方法もこれからどんどん行っていきます。
今回は基本的な処理方法を記述します。
例題
sample_mcという空のMCにイベントを定義します。今までと違うのは自分でイベントのトリガを定義するという事です。今までは
MouseEvent.CLICKの様にあらかじめ定型化されていましたが今回はaddEventListenerの第一引数に"myEvent"とFlash側では
決められていないイベントを自分で定義します。第二引数は第一引数のイベントのトリガが押されたときにアクセスする
関数名を記述します。
sample_mc.dispatchEvent(new Event("myEvent"))で上記で定義したmyEventをブロードキャストします。dispatchEventの第一引数にnew Event("イベント名")と入れますが、この第一引数に入れるオブジェクトはEventオブジェクトである必要があるので
new Eventでイベントオブジェクトを生成する事が重要です。
myEventのトリガがひかれ定義した関数にアクセスします。
続きを読む
2007年08月05日
AS3のNow Loading
AS3でNow Loadingを行う方法。自己流なのでもっと効率的なやり方があると思いますが一応ソースコードを記しときます。続きを読む
2007年08月04日
2007年07月30日
2007年07月21日
addEventLitenerのイベント
addEventListenerので主に使用するイベントのプロパティ一覧
続きを読む
続きを読む
2007年07月18日
2007年07月17日
addEventLitenerの練習
as3のイベント処理で主流となったaddEventListenerの使用方法を基礎の基礎からやっていく。
続きを読む
続きを読む






