【Key.isDown】の使い方について

このQ&Aのポイント
  • 【Key.isDown】を使ったフレームの移動方法について教えてください。
  • 【MC】を使ってフレームの移動をしたいです。
  • 具体的なコードとしては、【Key.isDown】を利用してフレームにラベルを指定し、そのラベルに移動させる方法があります。
回答を見る
  • ベストアンサー

【Key.isDown】

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

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

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

  • ベストアンサー
  • is_may
  • ベストアンサー率65% (58/89)
回答No.1

onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { gotoAndPlay("label"); } } だと空のムービークリップの「label」というフレームに移動するということになります。以下のように修正してみてはいかがでしょうか。 onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { this._parent.gotoAndPlay("label"); } }

dizzdive
質問者

お礼

なるほど!ありがとうございます。 私はあれから、ボタンオブジェクトを作って 画面外に配置。 on (keyPress "<Enter>") { gotoAndPlay("label"); } それでも行けました。

関連するQ&A

  • MCのgotoAndPlay制御について

    今現在すごく初歩的なものを作っています。 まず、MCですが、1~10フレームは歩く動作、11~20フレームは座る動作 と言ったフレームで動作を表現したものです。 このMC内で1~10フレームを繰り返すようにgotoAndPlay(1)と10フレーム目に書きました。 そして、このMCに onClipEvent (load) { // スピードの初期値 spd = 5; } onClipEvent (enterFrame) { // spd ずつ右へ移動 this._x += spd; if(this._x>100){ spd = 0; this.gotoAndPlay(11); } } といったように A地点~B地点は歩いている動作をさせながら5ずつ移動させ、100まで来たら停止させ、 そのB地点では座る動作(MCの11フレーム目から)をスタートさせるようにしました。 しかし、実際はMCの11フレーム目で固まった状態です onClipEvent (enterFrame)なので当たり前なのは分かっているのですが、 他に方法が分かりません。 何かなるべく完結な方法はありますでしょうか?

    • ベストアンサー
    • Flash
  • 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
  • mcのx座標が50以上になったら次フレーム

    タイトルどおり、 mcのx座標が50以上になったら次フレーム という処理をしたく、 mcに次のアクションスクリプトを記述しました。 onClipEvent(enterFrame){ this._x += 10; } onClipEvent(load){ if(this._x >= 50){ nextFrame(); } } しかし何故か次のフレームに行ってくれません。 どこか間違っているのでしょうか。。。 nextFrame();をgotoAndPlay(2);にしても駄目でした。

    • ベストアンサー
    • Flash
  • キーボードのキーを3つたて続けてに押すと反応しないバグはどうにかなりませんか?

    タイトルの通りです。3つの種類のキーを立て続けに押すと(Ctrl+Alt+Deleteを押すようなカンジの押し方)、反応してくれないキーがあります。 次の例はそれを確かめるためのもので、一応実験をしました。 //_root.my_mc内のスクリプト onClipEvent (enterFrame) { if (Key.isDown(32)) {//spaceキー trace("space on") } if (Key.isDown(87)) { trace("W on") } if (Key.isDown(83)) { trace("S on") } if (Key.isDown(65)) { trace("A on") } if (Key.isDown(68)) { trace("D on") } } //////// 「A+W+スペース」と押した場合には3つとも反応してtraceの出力結果もそれを示したものとなります。 しかし「S+D+スペース」と押した場合にはなぜか最後に押したスペースが反応しません。 今ゲームを作っていて、この問題に非常に困っています。 どうすれば反応してくれるのでしょうか? ちなみに環境はFlash8pro AS2.0 WinXP。もちろん、ちゃんと「キーボードのショートカットを無効」のやつをオンにしてやっています。

    • ベストアンサー
    • Flash
  • FLASH MXで質問です

    アクションスクリプト初心者ですが、無い知恵を振り絞って簡単なシューティングゲームを作ろうと思っています。 そこで質問なのですが、キーボードで自機となるMovieClipオブジェクトを自由に動かしたいのですが、斜めに移動させるにはどの様にしたら良いのでしょうか? 今の所、4方向への移動は onClipEvent(enterframe) { if (Key.isDown(Key.LEFT)) { _x += -10; }else if (Key.isDown(Key.RIGHT)) { _x += 10; //以下上下移動をUP,DOWNキーに割り当て } } としています。 ifの後を&&のAND処理で2つのキーが押された場合をtrueとすれば良いとは思うのですが、書き方が悪いようで機能してくれませんでした。 ぜひアドバイスをお願いします。

  • mcの中のフレームラベルの移動

    初めまして。 当方初心者なので、よくわからないので、質問させていただきます。 外部にswfとしてフレームラベルの複数ついたものがあって、 それをmc(mcs_mc)で読み込みし、スクリプトで一定時間毎に mcに読み込んだ外部swfのフレームラベル(chapter1~chapter10)を移動させたいのですが、うまく動いてくれません。 どの用にしたらよいでしょう?よろしくお願いします。 onClipEvent(load){ this._lockroot = true; } onClipEvent(enterFrame){ setInterval( function(){ mcs_mc.gotoAndPlay("chapter2"); }, 1000); }

    • ベストアンサー
    • Flash
  • ムービープレビューでないと動きません。

    ゲームを途中まで作ったのですが、ムービープレビューで出力したときにしか動きません。 (他のパブリッシュプレビューや実際にサーバーにUPして見ましたがコントロールがききません)問題があれば教えて頂きたく質問させて頂きました。 どうぞよろしく御願いします。 onClipEvent (load) { _root.target._x=100 speed = 0; rot = -90; dx = 0; dy = 0; } onClipEvent (enterFrame) { _root.target.honou.gotoAndStop(1); if(Key.isDown(Key.SPACE)) {speed +=0.8; _root.target.honou.gotoAndStop(2); } if(Key.isDown(Key.LEFT)){ rot -= 3 this._y +=2} if(Key.isDown(Key.RIGHT)) { rot += 3 this._y +=2} else{ this._y =this._y + 3 } dx = Math.cos(rot * Math.PI / 180) * speed; dy = Math.sin(rot * Math.PI / 180) * speed; speed *= 0.9; _x += dx; _y += dy; _rotation = rot; }

    • ベストアンサー
    • Flash
  • 複数のmcに同じイベントを記述したら、1つしか反応しない

    うまくいかない原因がわからず困っています。 画面上の複数のmcに同じイベントを記述しました。 内容はシンプルで、「mc01にマウスがのったらフレームf01に移動する、 マウスが離れたらフレームstartに戻る」というものです。 mc02はf02へ、mc03はf03へ移動というふうにします。 これをmc01からmc07まで順番に書いていったところ mc07は反応するのですが、あとの6つが反応しません。 mc07の記述を消すとmc06が反応するようになり、 どうやら一番最後に記述している部分しか反応しないようです。 これ↓がそれぞれのmcに書いてるASです。 ---------------------------------------------------------- onClipEvent (enterFrame) { if (_root.mc01.hitTest(_root._xmouse,_root._ymouse,1)) { _root.gotoAndPlay("f01"); } else { _root.gotoAndPlay("start"); } } ---------------------------------------------------------- ちなみにFlash8使用、プレイヤー8でパブリッシュしてます。 どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップの中フレーム移動を「キーボード」で行いたい!

    FLASH初心者なのですが、ちょっとしたクイズを作らなくてはいけなくて ActionScriptに挑戦しています。 rootにひとつのMCがあります。 このMCのタイムラインにはフレームが7個あり このフレームの移動を「Spaceキー」で動かしたいため rootのタイムラインに下記のようなscriptを書きました。 ------------------------------------- onClipEvent (enterFrame) { this.gotoAndStop(1); if (Key.getCode() == Key.SPACE){ this.gotoAndStop(2); } } ------------------------------------- このコードで「スペース」を押すと1フレームから2フレームへの 移動はできましたが、「スペースを押すたびに次のフレームにいってほしくて、 フレーム7ではストップしてほしい」という動作をさせるためには どうしたらいいのでしょうか? loopとかif...else if...などの構文がよくわからないなりに 試したのですが、うまくいきませんでした。 分かられる方助けてください、よろしくお願いします。

    • ベストアンサー
    • Flash
  • Key操作について

    http://www.kaitopurin.com/ 上記のサイトの様にキャラクターをキー操作によって動かしたいのですが、わかりません。 var thirom:MovieClip; var back:MovieClip; var speed:Number = 4; thirom.onEnterFrame = test; function test():Void { if(Key.isDown(Key.LEFT)) this._x -= speed; if(Key.isDown(Key.RIGHT)) this._x += speed; if(Key.isDown(Key.UP)) this._y -= speed; if(Key.isDown(Key.DOWN)) this._y += speed; } 途中までスクリプトを書いてみたんですが、ここから先がわかりません。例えば動かす対象のムービークリップ内にジャンプやしゃがむ動作を取り入れて、ラベルなどで移動する方法が一般的なんでしょうか? どうかご教授お願いします。 環境はMac,flash8です。

    • ベストアンサー
    • Flash

専門家に質問してみよう