• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:on(press)などで変数nを変える方法)

FLASHでon(press)などで変数nを変える方法は?

このQ&Aのポイント
  • FLASHでon(press)などのイベントを使用して変数nを変える方法について教えてください。
  • 変数nの値が変わらない問題について質問です。スプライトAのボタンを押して変数nの値を-1したいのですがうまくいきません。
  • 現在は別のスプライトBを使用してタイミングを合わせて変数nを-1していますが、他に方法はないでしょうか?

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

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

おそらくこの点↓が問題でしょう。 > 次に スプライトAでボタンを作って、以下のように記述しました。 Suzuka や Parafla! の スプライト というものは Adobe (Macromedia) Flash で言うところの ムービークリップ(MovieClip) なんです。 で、 そのムービークリップというのはムービーの中のムービーであって「階層」を持つんです。 「ターゲットパス」 http://homepage3.nifty.com/ginga-b/MX/targetpath.html 「Suzuka 基礎・基本 ★ ターゲットパス(&階層)」 http://suzupara.iinaa.net/kiso_target.html ボタン と スプライト とは、階層を持つ持たないが大きな違いです。 (ボタン=階層を持たない ・ スプライト=階層を持つ) > タイムライン上にアクションレイヤーで > n = 10 ; > として 変数n に10を代入しました。 おそらくこの タイムライン上 とは メインのタイムライン, ActionScript的に言えば _root のタイムラインだと考えられます。 一方 > on(Press){ > n = n - 1; > } と書かれたのは スプライトA ですから つまり スプライトA の中の変数 n から -1 をしようとしているということになります。 階層図で表すと次のようになります。  _root ← n=10    └スプライトA ←nから1を引く したがって、 _root の変数 n の値を -1 したい場合は、 スプライトAに書くスクリプトを on(press){ _root.n = _root.n - 1; } または on(press){ _root.n -= 1; } または on(press){ _root.n--; } もしくは on(press){ _parent.n = _parent.n - 1; } または on(press){ _parent.n -= 1; } または on(press){ _parent.n--; } もしくは on(press){ this._parent.n = this._parent.n - 1; } または on(press){ this._parent.n -= 1; } または on(press){ this._parent.n--; } のように書く必要があります。 ============ なお on(release) や on(press) など onハンドラ の () 内の最初の文字は小文字です。 Flash Player 7 以上(SWF7 以上)用の SWF では 大文字小文字が厳格に区別されますから 大文字小文字を間違えると正常に動作しない現象が発生するおそれがあります。

16a25
質問者

お礼

レス感謝します。 ご指導頂きましたとおり、 ターゲットパスの指定により間違いをしていたようです。 改めてスクリプトを書き直して見た所、 私が希望した通りの動きをしてくれました。 当方まだASを作る基礎が出来て無いため、初歩的な部分で質問申し訳ありませんでした。 BlurFiltan様には過去にも何度も初歩的な質問にも関わらず、ご教授頂き大変感謝しております。 ありがとうございました<(__)>

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • FLASH、on (press)で…

    FLASH5を使用中です。 1フレーム目~3フレーム目ににあるボタンシンボルに on (press) { gotoAndPlay (2); } というアクションを書いています。 フレーム1~3には全てstopが書かれています。 マウスでクリックすると2フレーム目に移動するのですが、 その状態でもう一度クリックすると3フレーム目に移動してしまいます。 さらにもう一度クリックすると2フレーム目に戻ります。 これはどうしてなのでしょうか? どうすれば3フレーム目に移動させず、2フレーム目を繰り返す事ができるのでしょうか? 教えてください。お願いします。

  • mcが最後まで再生されるのを待って、on(press)を受けるようにしたい

    flash初心者です。 main_mcの中に、たくさんのmcを配置し、タイムラインに配置したボタンをクリックすると,mcが再生するよう作りました。 こんなかんじです。 on (press) { _root.main_mc.mc_017.gotoAndPlay(2); } フレーム1にはstop();が書いてあって 何の操作もしないときは再生しないようにしてあります。 そこまではできたのですが、再生中の間も、 ボタンをクリックするとmcの2フレームに戻り、再び再生されてしまいます。 最後まで再生されるのを待って、on(press)を受けるようにしたいのですが どうしたらいいでしょうか。 使用しているのはFLASHMX, mac os 10.4.11です。 初歩的な質問かも知れません。 ご教授いただけると幸いです。

    • ベストアンサー
    • Flash
  • FLASHのフレーム上にある変数をボタンを押した時に、切り替えたい。

    FLASHのフレーム上にある変数をボタンを押した時に、切り替えたい。 フレーム上にある変数にセットされている数字を、 ボタンを押したタイミングで、新しい数字を代入して、再計算したいです。 ◎現在フレームに下記のように記載しています。 ============================ p_pr1 = 3; p_pr2 = 10; t_price = p_pr1 + p_pr2; ============================ 最初の段階では、t_priceには、13が表示されます。 ◎ボタンアクションには、 ============================ on (press) { p_pr1 = 1; } ============================ これで、p_pr1には、1が代入されているんですが、合計は13のままです。 合計を11にするには、どうすればいいでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Flash
  • フレームラベルを使った複数指定について

          |1     |5   |10    |15   |20 レイヤー1 |▲*1*   |▲*2* |▲*3*   |▲*4* |▲*5* | レイヤー2 |●>--→|●--→|●>--→|●--→|●--→| レイヤー3 |●>--→|●--→|●>--→|●--→|●--→| レイヤー1にはフレームラベルが記入されています。 1フレーム目のレイヤー2のボタンは on(press){ gotoAndPlay("*1*"); gotoAndPlay("*2*"); } 1フレーム目のレイヤー3のボタンには on(press){ gotoAndPlay("*1*"); gotoAndPlay("*3*"); } としています。 こちらはきちんと正常に意図通りに動きます。 10フレーム目のレイヤー2には on(press){ gotoAndPlay("*3*"); gotoAndPlay("*4*"); } 10フレーム目のレイヤー3には on(press){ gotoAndPlay("*4*"); gotoAndPlay("*5*"); } としてみましたが、こちらは正常に動きません。 指定の仕方としては誤っているでしょうか? もし間違いでしたら正しい指定の仕方を教えてください。

    • ベストアンサー
    • Flash
  • 変数が渡らない

    選択するための3つのボタンを作成し、それぞれ変数ansに値を格納しました。下記がそのActionScriptの例です。 ------------------------------- on(release){ ans=1; _root.nextFrame(); } ------------------------------- ボタンを押した後、別のレイヤーのフレームからMCを読み込みます。 しかし、ボタン内で格納した変数が読み込まれずundefined(未定義)となってしまいます。if文で分岐したいのですが出来ずに困っています。 ボタンをクリックすることで変数に格納した値を、ムービークリップのイベント内で読み込むことは可能でしょうか?

    • ベストアンサー
    • Flash
  • FlashLiteでムービークリップをon(press)はできないのでしょうか?

    こんにちわ 現在FlashLiteを勉強しているのですが、on(press)イベントをボタンに記述する事はできるのですが、これをムービークリップに記述することはできないのでしょうか? というのも、僕がしたい事はあるムービークリップをpressしたらそのムービークリップが上下に大きくなるという動作を行わせたいのですが、、、 どのようにすればいいのかどなたかよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ボタンインスタンスにスクリプトを記述するやり方

    flash CS3 シーン1をループさせないで止めたいので「stop();」が上から2番目のレイヤーの1459行目のキーフレーム(最後のフレーム)に入っていて、一番上のレイヤー(1459行目の最後のフレーム)にボタンのインスタンスを配置して「もう一度みる」をクリックすると最初からFlashが見れるようにしたいと考えています。 この場合のアクションスクリプトの記述の仕方を教えてください。 使うスクリプトは on (press) { getURL("http://www.******/"); } でいいんですよね? よろしくお願い致します。

    • ベストアンサー
    • Flash
  • ループを抜けて指定したフレームへ行きたい

    大学の課題で簡単なFLASHゲームを作っているのですが アクションスクリプトの書き方で質問させてください。 最初の画面のスタートボタンを押したら、フレーム50からあるOPムービー的なものへ行き再生したいのですが うまくいきません。 最初のページには森の絵があり、枝が揺れているので 枝を揺らすために 別にアクションスクリプトを記述するだけのレイヤーをつくり this.gotoAndPlay(19) と書いてします。 この事で、全てのレイヤーが19~40をループしているようです。 スタートボタン(ボタンで作りました)を押す事で、 このループを抜けて、50フレームに行くのはどうしたらいいでしょうか 昨夜から本やサイトを見ているのですがどうにも失敗します on(press)関係をボタンをつけたレイヤーに書くとthis.gotoAndPlay(19)がきかず全て再生されてしまいます。 いまいちFLASHが理解できておらず、質問内容もガタガタですが 何とぞ宜しくお願いいたします。

  • ドラッグしたときの当たり判定

    ParaFlaを使ってFlashを制作しています aというスプライトをドラッグし bというスプライトにぶつかったらラベルCに飛ぶ というものを作りたいのですがうまくいきません aに記述しているアクションスクリプト on (press) { this.startDrag (true); } - on (release,releaseOutside) { this.stopDrag (); } - onClipEvent (enterFrame) { if(this.hitTest(_root.b) == true) { this.gotoAndPlay("c"); } } - onClipEvent (mouseMove) { updateAfterEvent(mouse); } バージョンはSWF8です ドラッグはできるのですがbとぶつかっても 何も起こりません bには何も記述していません どこを変更すればよいかわかる方 よろしくお願いします

    • ベストアンサー
    • Flash
  • AS3:ルートの変数とムービークリップ内の変数について

    AS3:ルートの変数とムービークリップ内の変数について ルートのタイムラインで設定した変数var RootVarがあるとして、これをあるムービークリップMCからMovieClip(root).RootVarで読み取って、MC内で何か処理をしたときMovieClip(root).RootVar++;とやってもルートのRootVarの値は変わりません。 例えば、 ■ルートのタイムライン1フレームに記述 var RootVar:uint; if(RootVar>=3){ trace("できた!!"); } ■ステージにあるムービークリップMCのタイムライン1フレームに記述 MovieClip(root).RootVar=0; var AddTimer:Timer = new Timer(1000,3); AddTimer.addEventListener(TimerEvent.TIMER,AddNum); AddTimer.start(); function AddNum(eventObject:TimerEvent):void { MovieClip(root).RootVar++; } ルートからムービークリップ、ムービークリップからルートへ変数に値を渡したり受け取ったりはできなのでしょうか? 変数の扱い方が問題なのでしょうか?よろしくお願いします。 環境:AS3、Flash CS4

    • ベストアンサー
    • Flash