ラベル内をループさせる(フレーム移動)
[記載日]2009/09/22
レイヤー1,2を作成し、11フレーム作成
各レイヤーの2フレーム目にキーフレームを挿入する
レイヤー1の2フレーム目にラベル「hoge」を指定する
各フレームの11フレーム目にキーフレームを挿入する
レイヤー2の11フレーム目に、以下のコードを記述する
this.gotoAndPlay("hoge");
●上記設定時のサンプル
重ね順を指定して動的にインスタンスを配置する
[記載日]2009/09/22
- this.addChildAt(Loader, index);
インスタンスをスクリプトで動的に追加する際に、重ね順(深度)を指定する
var loader : Loader = new Loader();
loader .load(new URLRequest("hoge.swf"));
this.addChildAt(loader, 0);
「index」に「0」を指定
※this.addChild(Loader) でよい
ラベル内を一定時間停止後にループさせる
(ActionScript2.0 setInterval を 置き換える)
[記載日]2009/09/29
※「ラベル内をループさせる(フレーム移動)」の設定がすでにされている過程とする
レイヤー2の2フレーム目にキーフレームを追加し、以下のコードを記述する
//1.1~2秒間のランダムな値を代入
var waitTime = Math.floor(Math.random() * 1000) + 1000;
//2.waitTimeの時間後に1回だけ実行するタイマーインスタンスを生成
var timer : Timer = new Timer(waitTime, 1);
//3.指定時間に到達した際に、メソッドtimeoutを呼ぶイベントリスナーを登録
timer.addEventListener(TimerEvent.TIMER, timeout);
//4.タイマーのカウント開始
timer.start();
//5.現在のフレームで停止
this.stop();
function timeout( event : TimerEvent ) : void {
//6.イベントリスナーを解除する
timer.removeEventListener(TimerEvent.TIMER, timeout);
//7.フレームを再生
this.play();
}
(多分後から見てわかんなくなるから、無駄にコメント大量投入)
外部swfを呼び出す
[記載日]2009/09/30
a.swfよりb.swfを呼び出す
以下のコードをa.swfのフレームアクションとして記述する
Loader loader : Loader = new Loader();
// ロード完了時にloadCompメソッドを呼び出すようイベントリスナーを追加
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, loadComp );
// b.swfをロードする
loader.load( new URLRequest( "b.swf" ) );
function loadComp( event : Event ) {
// イベントリスナーの削除
loader.contentLoaderInfo.removeEventListener( Event.COMPLETE, loadComp );
// ステージにb.swfを追加
this.addChild(loader);
}
外部swfを呼び出し、メソッドを呼び出す
[記載日]2009/09/30
- Loader.content as MovieClip
「Loader.content」を使用し、Loaderクラスで読み込んだswfのrootにアクセスできる
a.swfよりb.swfを呼び出し、b.swfのフレームアクションを呼び出す
(b.swfの1フレーム目に以下のコードが設定されていると想定)
function calcAdd( a : int, b : int ) : int {
return a + b;
}
a.swfの1フレーム目に以下のコードを記述する
var answerInt : int = -1;
Loader loader : Loader = new Loader();
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, loadComp );
loader.load( new URLRequest( "b.swf" ) );
function loadComp( event : Event ) {
loader.contentLoaderInfo.removeEventListener( Event.COMPLETE, loadComp );
this.addChild(loader);
// b.swfのムービークリップを取得
var bMovieClip = loader.content as MovieClip;
// b.swfのcalcAddメソッドを使用
answerIns = bMovieClip.calcAdd(1, 2);
trace("Answer = " + answerIns);
}
※ロード完了イベントリスナーにてLoader.contentを使用して
b.swfのムービークリップを取得すること
(ロード完了後でないとb.swfのメソッドが使用できない為)
サウンドを再生
フレームアクションに以下のコードを記述
// Soundインスタンスを生成
var sound : Sound = new Sound();
// 読み込み開始
sound.load(new URLRequest("open.mp3"));
// サウンドを開始し、SoundChannelに格納
var soundChannel:SoundChannel = sound.play();
最終更新:2009年10月04日 21:02