• 締切済み

【ActionScript】命令文を再実行する方法で

FLASH8(Win-XP)使用者です。 命令文を再実行する方法について考えています。 現在、タイムラインに記述したスクリプトを再度実行させたい場合は _root.gotoAndPlay() 等を使い、フレーム間を往復させ、再び同じスクリプトを実行させています。 これでも当然問題はないのですが、さらにスマートな方法もあるのではないか… タイムラインに依存しなくても… フレームが1つでもできないのか… などと模索しております。 そんな方法ご存知の方いらっしゃりましたらよろしくお願いいたします。

みんなの回答

noname#35109
noname#35109
回答No.1

普通は function(ユーザー定義関数)を使います。 例えば, 10フレームのムービーを作成したとします。 _rootのフレーム1に --------------------------------- // ユーザー定義関数 myFunc の定義 function myFunc() { a = 3; b = 5; c = a+b; trace(c); } // myFunc の初回実行 myFunc(); --------------------------------- と書いておき, フレーム10 をキーフレームにして, そのキーフレームに, --------------------------- // 最終フレームでストップ stop(); // myFunc の初回実行 myFunc(); --------------------------- と書いて,ムービープレビューすると, 8 が2回トレースされると思います。 ボタンからでも, ---------------------- on (release) { myFunc(); } ---------------------- または,myFunc を定義した場所である _root というパスを入れて, --------------------- on (release) { _root.myFunc(); } --------------------- としても実行できます。 さらに詳細↓。 「関数とは?FLASH」 http://www.1art.jp/flash/le/lesson31/lesson31.htm 「関数 - Flash」 http://www.game3rd.com/flash/action/function.htm ======================== 今は function が定義できますから, function で良いのですが, かつて(Flash4以前)は call関数 (callメソッドではない方)が使用されていました。 任意のフレームのスクリプトを呼び出す関数です。 ---例--------------------- // フレーム1 のスクリプトを実行 call(1); ------------------------- call関数は現在,FlashLite1.x で使われるのみの関数となっています。 第 2 回 アニメーションとインタラクティブ機能 その 5 「call と telltarget」 http://www.adobe.com/jp/devnet/devices/articles/togoru_11.html

ikataro
質問者

お礼

回答ありがとうございます。 関数やボタンにする場合、全体を{ }で囲むことになりますので、何百行にもなる長い文だとインデントすることに抵抗を感じてしまうんです。 フレームが1つしかなくても 「再度このフレームの記述を読め」 みたいな命令文がないのかなあ、と空想していたのですが… 好き勝手言ってしまい申し訳ありません。

関連するQ&A