• ベストアンサー

FLASHで、ラベル名を取得するには?

今現在ムービーがいるところ(タイムラインでも、ラベル名でもかまいません)を取得するActionScriptのようなものはありますか? 1|2|3 ●   ● ●→どちらもthis.stop(); の時に、ボタンを押すと、今は1にいる、今は3にいる、ということがわかるようにしたいのです。 FLASH5です。

質問者が選んだベストアンサー

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

_currentframe というプロパティに、再生ヘッドの位置が、フレームの番号で入っています。 例えば、メインのタイムラインのフレーム3で this.stop(); で止まっているのなら、フレーム3に  main_frame = _root._currentframe; というスクリプトを設定すると、変数 main_frame には 3 が入ります。 _currentframe はムービークリップが持っているプロパティです。 例えば clip というムービークリップがあるとすると、  clip_frame = clip._currentframe; で、今再生されている clip のフレームの番号を取得できます。

w-inty
質問者

お礼

回答アリガトウございます。 無事、フレームの番号を取得できました。 例えば、1フレーム目に「最初」という名前がつけられていた場合、この「最初」という名前を取得することは可能でしょうか? もしできなければそれはそれでいいのですが、できるのであればそちらの方が便利かな、と思ったもので…。 もしおわかりでしたらよろしくお願いします。

その他の回答 (1)

  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

フレームラベルは取得できないと思います。 念のためデバッガでも見てみましたけれど、フレームラベルを管理していると思われる変数などは見当たりませんでした。 仮に、ラベルを管理している○○というプロパティや内部のシステム変数のようなものがあったとしても、ラベルを取得する時は  frame_label = ○○; こんな感じの表記になってしまいますので、  frame_no = _root._currentframe; として、_currentframe を使って取得する場合と、スクリプトの分かりやすさはあまり変わらないですね。 どうしても名前をスクリプトの中に記述したければ、変数を使って  frame_name = "最初"; といった具合に必要なフレームごとに変数に名前を入れて行けば、ラベルの代わりに使うことはできそうです。 ただし、同じ変数に値を代入すると、前に入っていた値は上書きされて消えてしまいますので、ご注意ください。

関連するQ&A