「イベント」の版間の差分

提供: LWF Wiki
移動: 案内検索
(毎フレーム実行させたい)
(カスタムイベントを使いたい)
63行: 63行:
  
 
==カスタムイベントを使いたい==
 
==カスタムイベントを使いたい==
 +
Movieにイベントを発火したタイミングでリスナー関数を実行するといったことが可能になります。<br/>
 +
例えば、特定のフレームにイベント発火のスクリプトを記述すれば、そのタイミングで処理を走らせるといったことができます。<br/>
 +
下記はそのサンプルになります。<br/>
 +
//イベントリスナーを設定
 +
<Movieインスタンス>.addEventListener("complete",function(){
 +
    console.log("complete!");
 +
}
 +
↑のMovieインスタンスの任意のフレームに下記のスクリプトを記述
 +
/* js
 +
    //イベント発火
 +
    this.dispatchEvent("complete");
 +
*/
 +
addEventListenerの第1引数は対応するイベントの指定。<br/>
 +
第2引数はイベントを受け取った際に実行する関数を入れます。<br/>

2013年10月21日 (月) 21:30時点における版

目次

イベントとは?

MovieインスタンスやButtonインスタンスにイベントを設定することで
インスタンスが生成された瞬間や、インスタンスの描画準備が整った瞬間、毎フレームの処理、任意のイベントを発火した瞬間、等
様々なタイミングで関数を実行したりすることができます。

Movieが生成された瞬間に関数を実行したい

Movieインスタンスが生成された瞬間に関数を実行したい場合のサンプルです。

  • attachMovieで追加したMovieの場合
//attachMovieでインスタンスが生成された瞬間アラートを表示
<Movieインスタンス>.attachMovie("linkageName","movieName",{
    "load":function(){
        alert("このMovieは今、生成されました");
    }
});
  • フレームスクリプトで記述する場合

該当するタイムラインの1フレーム目に記述します。

/* js_load
    alert("このMovieは今、生成されました");
*/

上記のjs_load指定は1Movieにつき1つまでです。

Movieの再生準備が整ったら関数を実行したい

Movieインスタンスが生成され、描画の準備が整った瞬間に関数を実行したい場合のサンプルです。

  • attachMovieで追加したMovieの場合
//attachMovieでインスタンスが生成され、描画準備が整った瞬間アラートを表示
<Movieインスタンス>.attachMovie("linkageName","movieName",{
    "postLoad":function(){
        alert("このMovieの描画準備が整いました");
    }
});
  • フレームスクリプトで記述する場合

該当するタイムラインの1フレーム目に記述します。

/* js_postLoad
    alert("このMovieの描画準備が整いました");
*/

上記のjs_postLoad指定は1Movieにつき1つまでです。

Movieが削除された瞬間に関数を実行したい

Movieインスタンスが削除された瞬間に関数を実行したい時のサンプルです。

  • スクリプトで指定する場合
//削除された時のイベントリスナーを設定
<Movieインスタンス>.addEventListener("unload",function(){
    alert("このMovieは削除されました");
});
  • フレームスクリプトで記述する場合

該当するタイムラインの1フレーム目に記述します。

/* js_unload
    alert("このMovieは削除されました");
*/

上記のjs_unload指定は1Movieにつき1つまでです。

毎フレーム実行させたい

Movieの更新処理が走る度(毎フレーム)に関数を実行させたい場合のサンプルです
更新処理が走る度なので、movie.active=falseになっている場合は実行されません。

  • スクリプトで指定する場合
<Movieインスタンス>.addEventListener("enterFrame",function(){
    console.log("毎フレームはしってます");
});
  • フレームスクリプトで記述する場合

該当するタイムラインの1フレーム目に記述します。

/* js_enterFrame
    console.log("毎フレームはしってます");
*/

上記のjs_enterFrame指定は1Movieにつき1つまでです。

カスタムイベントを使いたい

Movieにイベントを発火したタイミングでリスナー関数を実行するといったことが可能になります。
例えば、特定のフレームにイベント発火のスクリプトを記述すれば、そのタイミングで処理を走らせるといったことができます。
下記はそのサンプルになります。

//イベントリスナーを設定
<Movieインスタンス>.addEventListener("complete",function(){
    console.log("complete!");
}

↑のMovieインスタンスの任意のフレームに下記のスクリプトを記述

/* js
    //イベント発火
    this.dispatchEvent("complete");
*/

addEventListenerの第1引数は対応するイベントの指定。
第2引数はイベントを受け取った際に実行する関数を入れます。