10回クリックでスコアに10点加えたいのですが...

このQ&Aのポイント
  • ムービークリップシンボルの中にあるボタンを10回クリックすると、シーン1のscoreと名付けたダイナミックテキストに10点加えるためのスクリプトについて質問です。
  • スクリプトにはcount変数を使用し、10回目のクリック時にscore変数に10点加えるように設定していますが、何か間違っているようです。
  • ただし、_root表記は使用できないため、他の方法で解決する必要があります。ご教示いただけると幸いです。
回答を見る
  • ベストアンサー

10回クリックでスコアに10点加えたいのですが...

ムービークリップシンボルの中にある ボタンを10回クリックすると、 シーン1のscoreと名付けたダイナミックテキストに10点加える ということをやりたいと思っています。 それでボタンに直接 on (release) { count++; if (count == 10) { _parent.score = (_parent.score+10);   } } というスクリプトを打って、 ひとつ上のレイヤーにcount = 0;と入れています。 どこが間違っているのでしょうか? ものすごい簡単な間違いかと思うのですが、 1人でやっているとなかなか同じところを グルグルしてしまいわからなくなってしまい。。 ちなみに仕事の規定で、_root表記が使えません。 分かる方いらっしゃいましたら、 是非とも回答お願いいたします。

  • Flash
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> ものすごい簡単な間違いかと思うのですが、 間違いがあったとしても, 場合によって対処は色々変わるで, スッキリ 「こうすれば良い」 という回答はできません。 まず ボタン ですが, 「ムービークリップインスタンスのボタンである場合」 と 「ボタンインスタンスのボタンである場合」 の2通りが考えられますが, ご質問の感じからして, なんとなく「ボタンインスタンスのボタンである場合」のような気がするので, ムービークリップ製のボタンではないということで続けます。 次にバージョンですが, お使いの Falsh のバージョンがわかりません。 「Flash MX をご使用,または,Flash Player 6 以下の SWF をパブリッシュする場合」や, 「Flash MX 2004 以上をご使用,または,Flash Player 7 以上の SWF をパブリッシュする場合」 などなど, 様々な場合(Flash CS3 とか Flash Lite とか…)が考えられます。 ご質問の感じからして, なんとなく「Flash CS3(AS3.0)」や「Flash Lite」は考えられないので, 「Flash MX をご使用,または,Flash Player 6 以下の SWF をパブリッシュする場合」 と, 「Flash MX 2004 以上をご使用,または,Flash Player 7 以上の SWF をパブリッシュする場合」 の2通りについて回答します。 またテキストフィールドの名前(> scoreと名付けたダイナミックテキスト)ですが, 「テキストフィールドの名前 score は,変数名のことである」 のか, 「テキストフィールドの名前 score は,インスタンス名のことである」 のかがわかりません。 どちらの場合も考えられるので,両方回答します。 全ての場合についての回答にはなっていませんが, つまり,2×2=4(通り) の場合についての回答です。 ◎「Flash MX をご使用,または,Flash Player 6 以下の SWF をパブリッシュする場合」   で,   「テキストフィールドの名前 score は,変数名のことである」場合。 ボタンには次のように書くのが無難で良いと思います。 ---------------------------------- on (release) { count++; if (count == 10) { _parent.score = Number(_parent.score)+10; } } ---------------------------------- ◎「Flash MX をご使用,または,Flash Player 6 以下の SWF をパブリッシュする場合」   で,   「テキストフィールドの名前 score は,インスタンス名のことである」場合。 ボタンには次のように書くのが無難で良いと思います。 ---------------------------------- on (release) { count++; if (count == 10) { _parent.score.text = Number(_parent.score.text)+10; } } ---------------------------------- ◎「Flash MX 2004 以上をご使用,または,Flash Player 7 以上の SWF をパブリッシュする場合」   で,   「テキストフィールドの名前 score は,変数名のことである」場合。 Flash Player 7 以上の SWF をパブリッシュする場合は, count++; でいきなり,変数 count に 1 を加算することはできません。 Flash MX までは,初期値を設定していない変数の値は, 「0」 もしくは 「""(空白文字列)」 として自動的に処理が進んでいました。 Flash MX 2004 以降(Flash Player 7 以上の SWF をパブリッシュする場合)は, 初期値を設定していない 変数count は undefined ですから,「0」 でも 「""」 でも何でもありません。 undefined な 変数count に 1 を加算しても「NaN(非数)」 になるだけで, 1にはなりませんし,「NaN」にさらに 1 を加算しても 「NaN」 のままです。 したがって,ボタンを配置したムービークリップ内のタイムラインなどに, count を初期化するための1文が必要になります。 ムービークリップのボタンを配置したフレームの,違うレイヤーのキーフレームに, 次のスクリプトを書きます。 ----------------------------- // 変数 count の初期化 count = 0; ----------------------------- そして,ボタンには次のように書くのが無難で良いと思います。 ---------------------------------- on (release) { count++; if (count == 10) { _parent.score = Number(_parent.score)+10; } } ---------------------------------- ◎「Flash MX 2004 以上をご使用,または,Flash Player 7 以上の SWF をパブリッシュする場合」   で,   「テキストフィールドの名前 score は,変数名のことである」場合。 ムービークリップのボタンを配置したフレームの,違うレイヤーのキーフレームに, 次のスクリプトを書きます。 ----------------------------- // 変数 count の初期化 count = 0; ----------------------------- ボタンには次のように書くのが無難で良いと思います。 ---------------------------------- on (release) { count++; if (count == 10) { _parent.score.text = Number(_parent.score.text)+10; } } ---------------------------------- まだまだ場合は多数考えられますので, 上のうちどれかをしてみても,うまく行かない可能性は十分あります。

chobimu
質問者

お礼

FLASHのバージョンは8で、 今回はボタンインスタンスのボタンでした。 キチンと書いてなかったにもかかわらず、 何パターンもの回答頂き、本当に感謝しています。 ◎「Flash MX 2004 以上をご使用,または,Flash Player 7 以上の SWF をパブリッシュする場合」   で,   「テキストフィールドの名前 score は,変数名のことである」場合。 の ---------------------------------- on (release) { count++; if (count == 10) { _parent.score = Number(_parent.score)+10; } } ---------------------------------- のスクリプトでうまく出来ました! 前回も今回も質問にお答え頂いて、 ほんとうにありがとうございました! まわりにFlashやっている人がいないので、 この質問サイトでのお答えに助けて頂いてます。

関連するQ&A

  • シーンからムービクリップ内のラベルへ移動

    Flash8でWEBサイトを制作中です。 大本のシーン1があり、そこにはボタンとムービークリップAを配置してあります。 そしてそのムービークリップA内のタイムラインにはラベル1があります。 そのラベル1に、シーン1のボタンから移動したいのですが、うまくいきません。 ムービークリップA内のボタンからシーン1のラベルへの移動はできるのですが、つまりその逆ができないかと頭を悩ませています。 シーン1にあるボタンには on (release) { this.gotoAndPlay("ラベル1"); } のアクションスクリプトを入れています。 他にも on (release) { _parent.gotoAndPlay("ラベル1"); } 等を入れてみましたが、全く反応しません。 大変困っています。どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • ボタンから一つ上の階層のムービークリックを徐々にアルファ値を上げたり下げたりする。

    はじめまして、jpncan15といいます。 初めて質問させていただきます。 階層がややこしい状態ですが、ボタンから一つ上の階層のムービークリップのアルファ値を徐々に上げたり下げたりしたいのですが、なかなかうまく行かず昨晩から悩み中です。 もし、ご存じの方がいればご教授お願いいたします!! ○状況 シーン1  mc1(ムービークリップ)   mc2(ムービークリップ:インスタンス名:image)   mc3(ムービークリップ) buttan(ボタン:ボタン名:b1) ○buttan(ボタン:ボタン名:b1)のスクリプト ※触っていると、アルファ値が0→70%に変わって行く。 ボタンをはなすとアルファ値が70→0%変わって行く。 ※このスクリプトだと、徐々に変わって行くのではなくいきなり、アルファ値が「5」変わるだけなのです。。。 on (rollOver) { if (this._parent.image._alpha < 70){ this.common_b._alpha += 5; } } on (rollOut) { if (this._parent.image._alpha > 70){ this.common_b._alpha -= 5; } }

    • ベストアンサー
    • Flash
  • Flash8でサウンドが鳴りません

    Flash初心者です。 ActionscriptでBGMを流し、ユーザーがプレイとストップの制御ができるようにしたいのですがうまくいきません。 1、ボタンA(レイヤー1)とボタンB(レイヤー2)を作り、文字(レイヤー3)とscript(レイヤー4)を組み合わせてオブジェクトを作りシンボル化しました。 2、ライブラリ内のwavサウンドをリンゲージしました("bgm") 3、レイヤー4の1フレーム目に this._sound = new Sound(); this._sound.attachSound("bgm"); this._sound.start(0,999); 4、ボタンAに on(release){ this._sound.start(0,999); } 5、ボタンBに on(release){ this._sound.stop(); } と記述してあります。 シーンプレビューでは音が鳴り制御もできるのですが、 上記のシンボルをシーンのレイヤーに配置してムービープレビュー すると音が鳴りません。 どうしてでしょう?? さっぱり分からず困り果ててます。 どなたかご伝授御願いします。

  • actionscript

    FLASHを作成してますが、actionscriptでつまずいています。 シーンが1~5まであるFLASHで、 添付の画像のようなものです。 シーン2が 左のメニュー一覧はムービークリップになっていて、 その中にボタンがある状態(入れ子?)です。 ボタンをクリックするとシーン1の先頭に飛ぶようにしたくて on (release) { this._parent._parent.gotoAndStop("シーン 1","1"); } と書きましたがうまくいきません。 詳しい方いましたら教えてください

    • ベストアンサー
    • Flash
  • Flashでボタンをつくっているのですが、actionscriptをつ

    Flashでボタンをつくっているのですが、actionscriptをつかってボタンをクリックさせたいのですが、アクションパネルのところに「現在の選択範囲にアクションを割り当てることはできません。」と表示されてしまいます。 参考書に附属されているflaをみたところ、Actionscript1.0、2.0となっているのですが、作成しているのはActionscript3.0で作っています。 ====== on (release) { /*↑ボタンが押されて離されたら*/ _parent.gotoAndPlay("about"); /*↑「about」ラベルへ移動*/ } ====== このようなscriptをいれたいのですが、うまくいきません。 ムービークリップでボタンを作るまではできました。その後、何かが抜けているのかして上記のようなエラーがでます。 flash初心者のため、どういう風に書いて質問させていただいたらよいのかわからないのですが、参考flaと見比べたときに「シンボル定義」のなかにあるムービークリップがひとつたりませんでした。(このムービークリップは「navigation」というものですのでそれがありません。) 質問するにはあまりにも情報が少ないかもわかりませんが、何卒ご教授いただけると大変助かります。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • ボタンを押した時、外部swfを読み込み

    ムービークリップ内のボタン(写真のサムネイル)を押した時、外部.swf(写真やコメントを書いたswf)を読み込もうとしております。 _rootに空のムービークリップを配置し、インスタンス名を load_mcと指定。 _rootに配置したムービークリップの中に配置してあるボタンに on (release) { this._parent.load_mc.loadMovie("comment.swf"); } と書きました。しかしボタンを押してもcomment.swfが表示されません。 解決方法をお教えください。よろしくお願いいたします。

  • ムービークリップの入れ子

    Flash CS3の初心者です。ムービークリップの入れ子を使用した際、こちらが思うようにフレーム処理をしてくれません。 "TOP"と名前をつけた1つのシーンに「アクションスクリプト」、「画像」、「テキスト」の3つのレイヤーを準備し、「画像」レイヤーには入れ子になったムービークリップを挿入しています。 入れ子のムービークリップに仕込んだモーショントゥイーンが終わってからテキストを表示する処理をしてほしいのですがうまくいかず困っています。 <作業内容> (1)画像レイヤーにはモーショントゥイーンを仕込んだムービークリップを1フレーム目から挿入しています。(作業場所:TOP/) (2)順序付けのためテキストレイヤーは1フレーム目は空白にし、2フレーム目から挿入しています。(作業場所:TOP/) (3)アクションスクリプトのレイヤーには1フレーム目と2フレーム目にはそれぞれ以下の記入をしています。(作業場所:TOP/)  this.stop(); (4)画像レイヤーに挿入したムービークリップでは、入れ子のムービークリップのレイヤーの他にアクションスクリプトのレイヤーを設け、その最終フレームでは"this.stop();"、"gotoAndPlay(2,"TOP");"と記入しています。(作業場所:TOP/画像ムービークリップ) <問題> (1)~(4)でムービープレビューを実行すると、入れ子にしたムービークリップのモーショントゥイーンは最後までうまくいきますが、(4)の"gotoAndPlay(2,"TOP");"がエラーとなり、「ArgumentError: Error #2108: シーン TOP が見つかりません。・・・」となってしまいます。 シーン名はウィンドウのシーンパネルで確かにTOPに変更しています。ちなみに"TOP"をthis.parentに変更して実行すると、3つのレイヤーの処理が同時にスタートしてしまいます。 最初に記載した動作の実現方法や参考HPについてご教授頂けると大変助かります。よろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップ内のボタン

    フラッシュ初心者です。 アクションスクリプトがうまく動かず困っています。 シーン1にムービークリップ1(インスタンス名:mc1)とムービークリップ2(インスタンス名:mc2)が置いてあります。 mc2の中にはボタンAを配置してあり、ボタンAをクリックすると、mc1のフレームラベル(B)に飛ぶような制御をしたいです。 ボタンAに記述してあるスクリプトは以下です。 on (release) { this._parent.mc1.gotoAndplay("B"); } しかしクリックしても全く動きません。 絶対パスで指定してもダメでした。 ちなみに、ためしに、mc1ではなく、シーン1上のフレームラベルに 飛ばすように記述したら普通に動きました。。 何か記述間違いがあるのでしょうか? 分かる方がいましたら教えてください。 お願いします。

  • ボタンクリックで画像を表示

    質問です。 ボタンをクリックして同じFlash内に画像を出したいのですが うまくいきません。 on (release) { tellTarget ("./mem") { gotoAndStop("kk"); } } クリックするとmemレイヤーのkkというムービークリップを 出すように設定したつもりなのですが、多分このプログラムが 間違っていると思うのですが、どこが間違っているのでしょうか。 教えてください。 お願いいたします。

    • ベストアンサー
    • Flash
  • ボタンによるシンボルの表示・非表示 (FlashMX2004)

    シーン上にボタンシンボルとムービーシンボルが2つずつあります。 ボタン1or2を押すたびに、ムービーシンボル1or2を 表示したり、非表示にしたりしたいのですが、 それぞれにどのようなアクションスクリプトを書けばよいのでしょうか? ボタンで表示する際に、ムービーシンボルが重ね順で上側にくるようにしたいです。

    • ベストアンサー
    • Flash

専門家に質問してみよう