Hatena::ブログ(Diary)

酒は血液、呑んだら献血

2008.01.23

currentLabelで現在のフレームのラベル名の取得をやってみた ActionScript3.0

AS3からフレームのラベル名へのアクセスが可能になった

  • currentLabel: 文字列で現在のフレームのラベル名を取得
  • currentLabels: タイムライン上のラベル情報を配列で取得する

以下、

俺なりに【使用例】と【注意点】そして【いろいろ検証】をまとめたものです


【使用例】

f:id:bigchu:20080123214737p:image

新しいMovieClipをつくり、タイムラインを設定しました


this.stop();                     // 1フレーム目で止める

// 文字列で現在のフレームのラベル名を取得
trace(currentLabel);             // label_A を出力

// ライムラインのラベル情報を配列で取得する
trace(currentLabels[0].name);    // label_A を出力
trace(currentLabels[1].name);    // label_B を出力
trace(currentLabels[2].name);    // label_C を出力

// 該当ラベルのフレームを取得
trace(currentLabels[0].frame);    // 1 を出力
trace(currentLabels[1].frame);    // 13 を出力
trace(currentLabels[2].frame);    // 25 を出力

// ラベル総数
trace(currentLabels.length);     // 3 を出力




【注意点】

f:id:bigchu:20080123220953p:image

ラベルのフレーム範囲はこの通りである

  • 赤: label_A (01 〜 12)
  • 黄: label_B (13 〜 24)
  • 青: label_C (25 〜 36)

f:id:bigchu:20080123221631p:image

ということは、フレーム(21)はラベル名「label_B」である

だが、currentLabels[1].frameで取得できるのは「13」だ

そう、ラベルの先頭フレームになる。13フレーム目だけが「label_B」ではないということです




【いろいろ検証】

f:id:bigchu:20080123223138p:image

gotoAndStop(totalFrames); // 最後のフレームにする
addEventListener(Event.ENTER_FRAME, funtion (e: Event): void {
    
    prevFrame(); // 前のフレームに戻る
    
    if (currentLabel == "label_B") {
        trace("label_Bに到達したフレーム", currentFrame);
        removeEventListener(Event.ENTER_FRAME, animetionControl);
    }

    if (currentFrame <= 1)
        gotoAndStop(totalFrames); // 一応、繰り返しのため
    
});
  • フレーム逆再生にするから意味がある検証なので矢印の方向に流します
  • label_BのフレームにきたらENTER_FRAMEイベント削除する

【出力結果】

label_Bに到達したフレーム 24

キーフレームではなく、ラベル名のフレーム範囲に入ったら処理されちゃいました

ん、ちょいまてよ。こうするとどうだ?


f:id:bigchu:20080123224947p:image

空のキーフレームを挿入

【出力結果】

label_Bに到達したフレーム 24

ん?空じゃだめ?


f:id:bigchu:20080123225332p:image

挿入したキーフレームに「dummy」とラベル名をつける

【出力結果】

label_Bに到達したフレーム 13

これだっ!


AS2ではできなかっらラベルへのアクセスがとっても便利


次はこれやってみよ

addFrameScript


前から思っていましたが、

フレームの開始が"1"なのが気に入らないぞクルァ!!

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/bigchu/20080123/1201096788