質問: flash cs3のアクションスクリプトに関する質問です。 ActionScript2.0を使っています。 現在ゲームを作っていますが次の場面で分からないことがあります。 3つの項目からそれぞれ1つずつ答えを選んでもらい「決定」のボタンを押すと答えによって次に再生するレイヤーを変えたいのですがうまくいきません。 具体的には 【A】【1】【あ】 【B】【2】【い】 【C】【3】【う】 【決定】 というボタンがあり、例えば【A】【1】【あ】と選んで【決定】を押すと、「レイヤーA」「レイヤー1」「レイヤーあ」が再生されるようにしたいのですが 【A】のボタンのアクションには on (release) {a=1} と書きました 上と同様にほかの【B】は{a=2}、【C】は{a=3}、【1】から【3】の項目については{b=1}のように【あ】の項目についても{c=} 【決定】のボタンのアクションには on (release) { if (a==1) {gotoAndPlay(フレーム1の名前); } ~同様にそれぞれ(a==2)以下が続きます。~ } と書きました。 シンタックスチェックでは間違いは見つかりませんでしたがシーンプレビューでは決定ボタンを押しても反応がありません。 はじめたばかりで何かが足りていないのか、根本的に間違っているのかもわからない状態です。 回答よろしくお願いします。 上記のこと以外で伝えたほうがいいことがありましたら教えてください。
回答: レイヤーはFlashでのオーサリングの時だけあるもので swfになったらなくなるもんです フレーム番号で3次配列でも作って gotoAndPlay(arr[a][b][c]) とでもやる感じでしょうか しかし選択のパターンが27もあるなら 行き先のフレームをn+0~26に それぞれにムービークリップを配置 abcの値の範囲を0~2にして 決定ボタンで実行するのは gotoAndStop(n+a*9+b*3+c) とやったほうがスクリプト書くのは 効率が良さそうに思います 27個もパターン用意するのに比べたら へでもないことかもしれないですが あと、先に言っておくと ムービークリップにムービークリップを 内包させて多次元配列の代わりにするような 方法はあんまり良くないです それから選択まえに決定が押されるのを 防ぐのにabcの初期値を-1にしておいて 決定ボタンのスクリプトの最初に if(a<0||b<0||c<0)return; でもつけといた方がいいかもです