• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:suzukaのスクリプトで)

suzukaのスクリプトでFlash制作 | 質問内容を要約

このQ&Aのポイント
  • suzukaのスクリプトでFlashを制作しております。 プログラムはさっぱりなので検索して出てきたactionscriptを切り貼りして試している状況です。
  • フレームアクションにおいて、キーを押したら特定のフレームまで移動するスクリプトを入れたいのですが、具体的な解決策はありますでしょうか。
  • フレームアクションの10フレーム目にボタンのスクリプトを入れると、押した瞬間に後に命令を引き継がせないスクリプトの記述はありますか?

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

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

◎ その1 に関して スクリプトは次のようにすれば良いと思います。 ------------------------------- this.stop(); // キー監視用にするオブジェクト「myKey」を作成 var myKey = new Object(); // 「myKey」にキーダウン時のイベントハンドラメソッドを定義 myKey.onKeyDown = function() { if (Key.isDown(Key.RIGHT)) { _root.gotoAndPlay(21); } else if (Key.isDown(Key.LEFT)) { _root.gotoAndPlay(31); } }; // Keyクラスのリスナーとして「myKey」を登録 Key.addListener(myKey); ------------------------------- (注) キー動作を実行させる場合はあらかじめ   Flashムービー上の任意の場所をクリックするなどして   Flashにフォーカスを当てておく必要があります。   (当たり前ですが,   例えばFlashを見ながらExcelを操作しているときに   キー操作をするとExcelの選択セルが移動するだけです。   Excelでなくブラウザであって同様。   ブラウザでなくSuzukaであっても同様。) > ●[parse error]とエラーが出る on(keyPress("a")){} や on(release){} など onハンドラ は フレームではなく,ボタンまたはスプライト(ムービークリップ)自体に書くスクリプトです。 > ●キーを押しても何も起こらない 書かれていらっしゃる if文 が実行されるのは, その if文 を書いたフレームの表示が開始される瞬間だけです。 普通はそのような瞬間を狙ってキーを押すことは不可能です。 したがって「フレームが表示された瞬間」ではなく 「キーを押した瞬間」に if文 を実行させるようにします。 ◎ その2 に関して これは今ひとつどうしたいのか意味がわかりません。 こう↓したいということでしょうか? ---------------------------- this.stop(); buttonA.onPress=function(){ // どこまでも持続して動かさずフレーム11で停止 _root.gotoAndStop(11); }; ---------------------------- それともこう↓したいということでしょうか? ---------------------------- this.stop(); buttonA.onPress=function(){ _root.gotoAndPlay(11); // buttonAのボタン機能を無効にする buttonA.enabled=false; }; ---------------------------- それともこう↓したいということでしょうか? ---------------------------- this.stop(); buttonA.onPress=function(){ _root.gotoAndPlay(11); // buttonAのonPressイベントハンドラメソッドを削除 delete buttonA.onPress; }; ----------------------------   ↓deleteの参考URL↓ 「イベントハンドラメソッドはdeleteで消せ!」 http://f-site.org/articles/2004/05/22140833.html

tailbeat
質問者

お礼

BlurFiltan様。お礼を申しあげます。遅くなりまして申し訳ありません、諸事情により返礼が遅くなってしまいました。 その2に関してですが、ボタンの効果をフレームに飛び飛びにして入れたかったのですが、その合間にある記述していないフレームにも効果が持続しており、そのフレームでもボタンを押すと前フレームにて記述したボタン押下時の命令が有効になってしまうのに困っていたという意味です。 おかげさまで一つ一つをあてがっていくことで解決することができました。ありがとうございます。

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

関連するQ&A

  • シューティングゲームの自機の当り判定

    以前の質問で、アクションスクリプトの記述がなかったので、詳しく説明します。http://oshiete1.goo.ne.jp/qa3535566.html 自機は、キーボードで操作します。 if(Key.isDown(87)){ gotoAndPlay(3) } if(Key.isDown(83)){ gotoAndPlay(5) } 3は上向きグラフィック、5は下向きグラフィックです。 246フレームには、 gotoandplay(1) と記述しています。 当たり判定は、別レイヤーにあります。 ステージ上の自機にmyshipというインスタンス名を付けています。 敵弾に当たると自機はbangjikiになります。 if(this.hitTest(_root.myship.hitarea)){ _root.myship.gotoAndPlay("bangjiki") _parent.removeMovieClip() }

  • Flashのキーボード操作で

    キーボードのテンキーでコマンドを選択するアクションスクリプトをくんでいるのですが・・・・・ onClipEvent (keyDown) { if (Key.isDown(Key.UP) or Key.isDown(Key.DOWN)) { this._y += 30; } else if (Key.isDown(Key.UP) or Key.isDown(Key.DOWN)) { this._y = -30; }else if (Key.isDown(Key.LEFT) or Key.isDown(Key.RIGHT)){ this._x = +50; }else if (Key.isDown(Key.LEFT) or Key.isDown(Key.RIGHT)){ this._x = -50; } if (Key.isDown(Key.SPACE)) { _root.flag = 1; } } というアクションスクリプトを組むと上下はうまく移動するのですが横移動がうまくいきません。いきなり予期しないところに移動してしまったりしてしまいます・・・・。

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

    お世話になります。 AS2.0の初心者です。 ページAにムービークリップタイプのボタンbuttonAとbuttonBがあります。そして、ページCがあります。 this.gotoAndStop(1);白 this.gotoAndStop(2);黒 this.gotoAndStop(3);白 仕様としては、 最初ページには、buttonAボタンしかありません。 この状態でEnterキーを押すと、buttonAが反応しページAで結果がでます。そして、buttonAボタンは見えなくなり、buttonBボタンが見えます。 ここで、もう一回Enterキーを押すと今度はbuttonBが反応し、ページCに移動します。 でも、実際は、最初Enrterキーを押すと、buttonAボタンだけではなく、buttonBボタンも一緒に反応しちゃって、一気にページC移動します。こうなると結果を見ることができません。 ここで質問ですが、最初Enterキーを押した場合、buttonAボタンだけ、反応させる方法はありませんか?そして、2度目のEnterキーを押すと今度はbuttonBボタンだけ反応する、、、 以下は、そのソースです。どこが間違っていますか。よろしくお願いします。 ●大元アクションスクリプト buttonA._visible=true; buttonB_visible=false; buttonA.onKeyDown = function() { if (Key.isDown(Key.ENTER)) { //ページAに結果出力 buttonA._visible=false; buttonB_visible=true; } } ●buttonAのアクションスクリプト // 何かキーが押された時 onClipEvent (keyDown) { if (Key.getCode() == 13) { this.gotoAndStop(2); } } // 何かキーが放された時 onClipEvent (keyUp) { if (Key.getCode() == 13) { this.gotoAndStop(1); } } ●buttonBのアクションスクリプト // 何かキーが押された時 onClipEvent (keyDown) { if (Key.getCode() == 13) { this.gotoAndStop(2); } } // 何かキーが放された時 onClipEvent (keyUp) { this.gotoAndStop(1); if (Key.getCode() == 13) { //ページCへ移動 } }

    • ベストアンサー
    • Flash
  • 携帯FLASHのスクリプト

    アクションスクリプト初心者です、質問よろしくお願いいたします。 ランダムでまばたきするなどの簡単なループアニメをflash4(MX)で書き出して、携帯で観覧できるアニメーションを作っています。 アクションスクリプトの勉強も兼ねて、そのループアニメに「1」ボタンを押すと花がフェードインして消える、と言ったボタン対応のアニメーションに挑戦中です。フレーム1でstopさせて、フレーム2にそれぞれインスタンス名をつけたシンボルを設置させています。ボタンにはこんな風に書いてみました↓ on (keyPress "1") { _root.hana.play(); } on (keyPress "2") { _root.hoshi.play(); } on (keyPress "3") { _root.heart.play(); パソコン上ではちゃんと動いてくれたのですが、flash4では対応していないスクリプトがあるようで携帯では動いてくれませんでした。 そこでお教え頂きたいのですが、このようなボタン(キー)に反応したアニメを作る場合flash4(flash lite)ではどのようにスクリプトを書いたらいいのでしょうか…? 携帯向けフラッシュを作成された事のある方、FLASH4に詳しい方、どうかご教授よろしくお願いいたしますm(__)m

    • ベストアンサー
    • Flash
  • FlashMXでのスクリプトの質問。

    FlashMXでのスクリプトの質問です。 1~30フレームまで5回繰り返して、その後31フレームに移り最後の60フレームでストップするというアクションをさせるには、どのようなスクリプトを使えばいいのでしょうか? 30フレーム目に1フレーム目に戻り5回繰り返すというアクション(これが分かりません。)、その後、6回目には31フレームに移り(gotoAndPlay(31);でしょうか?)そのまま最後の60フレームまで進み、60フレーム目で停止(stop();)。 これくらいしか私には分かりません。 どうか知恵をお貸し下さい。 宜しくお願いします。

  • 【Key.isDown】

    なんにもインスタンスを持たない【MC】を つくって、下記のソースを実行。 onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { _y -= 1; // 上に移動 } } そうすると↑キーを押すと【MC】が移動するのですが 本来やりたいことの動作確認でしかなく、 gotoAndPlay();を使うのが目的で 別に移動機能は無いものと考えてもらいます。 onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { gotoAndPlay("label"); } } フレームの移動をさせるにはどうすればいいのですか?? 教えてください><

    • ベストアンサー
    • Flash
  • 移動に関するアクションスクリプトがわかりません

    あるムービークリップをクリックした時にX座標を0の位置にもっていきたいのですが、アクションスクリプトをどう書いたら良いのか分かりません。 瞬間的に移動するのではなくスーッという感じで動かしたいのです。 on (release){ this._x = 0} と onClipEvent(enterframe){ this._x += -2 } これを融合させたような感じにしたいのですが、書き方が分かりません。メインのタイムラインに動くフレームをつくりgotoAndPlay()で飛ばしても良いんですが、アクションスクリプトだけで作ることは不可能でしょうか?

    • ベストアンサー
    • Flash
  • 複数のクリックボタンにより再生と停止場所を指定する方法

    複数のボタンを用意し、クリックするボタンにより異なるフレーム数で停止たいと思っております。 停止したいフレームごとにstop();を入れると、そこで毎回止まってしまうのでボタン毎に停止場所を指定しようと、以下のように試してみましたが、出来ませんでした。 停止場所をラベルでも指定してみましたが、出来ませんでした。 stop(); _root.next1.onRelease = function() { gotoAndPlay(5); this.stop(10); } _root.next2.onRelease = function() { gotoAndPlay(5); this.stop(20); } どなたかお考えのあるかたご教授いただけますと幸いです。 当方 Flash8 ActionScript2.0 を使用しています。

  • Suzukaで ある変数の値が、指定した数値になった時に動作させるASはどう記述したらいいのでしょうか?

    フラッシュ初心者です。 練習と勉強の為に、カードゲームを作っています。 プレイヤーがコインを持っていて増やしていくゲームです。 質問したいのは、 プレイヤーの持っているコイン(変数_root.coin)が0枚になった時に ゲームオーバーの画面を出したいのですが、 アクションスクリプトはどう記述したらいいのでしょうか? 私がやった方法です。 アクションフレームに以下のように記述したのですが上手くいきませんでした。 if(_root.coin <= 0){ _root.gameover.gotoandplay(ゲームオーバー画面へ); } 変数を条件に動作をさせるという事はできないのでしょうか? どうしたらうまく _root.gameover.gotoandplay(ゲームオーバー画面へ); 動作させる事ができるのでしょうか。 ご存知の方いらっしゃいましたら、宜しくお願いします。

    • ベストアンサー
    • Flash
  • else if文の順序を変えることに意味がありますか?

    else if文の順序を変えることに意味がありますか? 「スプライトに記述したクリップアクションです。 実行される内容はどうでも良いのですが、 else if文の順序を変えることに意味がありますか?」 ×(2)の部分だけが実行されません。       onClipEvent (enterFrame) {        if (_root.get_tabaco == false ){          this.gotoAndPlay(4); (1)  }else if(_root.get_tabaco ==true){          this.gotoAndPlay(1); (2)  }else if(_root.state_tabaco == 2){          this.gotoAndPlay(5);     } } ○全て実行されます。       onClipEvent (enterFrame) {        if (_root.get_tabaco == false ){          this.gotoAndPlay(4); (2)  }else if(_root.state_tabaco == 2){          this.gotoAndPlay(5); (1)  }else if(_root.get_tabaco ==true){          this.gotoAndPlay(1);     } } 「(1)と(2)の順序を変えただけで正しく実行されるようになりました。 しかし、なぜ?上手くいったのか、どこが間違いなのか分かりません。 else ifに順序なんかあるんでしょうか? こられのスクリプトに違いがありましたら、教えていただけませんか?」

    • ベストアンサー
    • Flash