• ベストアンサー

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

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

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

  • ベストアンサー
  • an631
  • ベストアンサー率82% (28/34)
回答No.1

あくまでムービークリップのx座標が0以上の場合限定ですが、 以下のスクリプトで出来ます。 on (release) { flag = 1; } と onClipEvent (enterFrame) { if (flag) { if (this._x > 0) { this._x -= 2; } else { this._x = 0; flag = 0; } } }

weaver102
質問者

お礼

動きました、ありがとうございます。 スクリプトをやり始めたばかりなので if(flag)のところが、if(flag == 1)じゃないのは何故なのか分からないのですか、教えていただけますでしょうか。よろしくお願いします。

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

その他の回答 (1)

  • an631
  • ベストアンサー率82% (28/34)
回答No.2

> if(flag)のところが、if(flag == 1)じゃないのは何故なのか分からないのですか if(flag == 1)は if(flag)に省略できます。 なので今回の場合、どっちを使ってもかまいません。 同様にif(flag == 0)は if(!flag)に省略できます。 本当はこれでは説明不足なのですが、 やり始めと言うことなので慣れてきたらこのあたりを詳しく調べてみると面白いかもしれません。

weaver102
質問者

お礼

詳しくご説明頂きありがとうございます。 本を買って勉強します。 助かりました、ありがとうございました。

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

関連するQ&A

  • ムービークリップ再生後次のフレームへ移動しません

    アクションスクリプトを使って、テキストが下から上へ流れるようにムービークリップを再生し、テキストが流れ終わったところで次のフレームへ移動させたいのですが、フレームが移動せず困っています。 スクリプトは色々なところで調べて、やっとの事で下記のように書きました。 使用しているのはFlash MX 2004 です。 |○  □|○|  ←1.スクリプトレイヤー |●    □|  ←2.ムービークリップレイヤー |○|●→|●|  ←3.ムービークリップ後に再生したいレイヤー 1.のスクリプト(2つのキーフレームいずれとも) stop(); 2.のムービークリップのスクリプト onClipEvent (load) { spd =5; onClipEvent (enterFrame) { this._y = this._y-spd; if (this._y<=-10) { spd = 0; gotoAndPlay(2); } } 知り合いにお見舞いのメッセージをと思って作ったのですが、送ることが出来なくてとてもあせっています。 どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • ドラッグアンドドロップアンドスムーズ移動

    x:0,y:0の座標に置いてあるムービークリップを 好きな場所にドラックができて話した瞬間x:0,y:0の座標に戻るという スクリプトが書きたいのですが、戻り方をだんだんとスムージングしていくような形で戻したいと思います。 以下をうまく組み合わせて実行したいと思っています。 どなたかご教授お願いします。 on (press) { this.startDrag(); } on (release) { this.stopDrag(); } onClipEvent (enterFrame) { xpos = 0; ypos = 0; this._x += (xpos-this._x)/2; this._y += (ypos-this._y)/2; }

    • ベストアンサー
    • Flash
  • mcのx座標が50以上になったら次フレーム

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

    • ベストアンサー
    • Flash
  • アクションスクリプトで、ムービークリップを5回だけ回転させたい。

    アクションスクリプトのど素人です。 ムービークリップを何回転かさせてストップさせたいのですが、うまくいかず永久に回転し続けます。 どこに問題があるのでしょうか・・・。使用バージョンは8です。 onClipEvent (enterFrame) { for(i=0; i<5; i++) this._rotation += 40; } 初歩的な質問ですいません(> <)

    • ベストアンサー
    • Flash
  • FLASHで移動のスクリプトを教えて下さい。

    FLASHについて質問です。シンボル移動のアクションスクリプトを教えて下さい。 FLASH CS5 XPとVista使用 アクションスクリプト 2.0 簡単なゲームを作っています。 動かしたいムービークリップをフレーム移動ではない方法を考えています。 ムービークリップの名前を「maru」とし、ステージにx200、y200の位置(A地点)に配置しムービークリップをクリックする、 すると右に100移動、(B地点) 2回目にクリックすると元の地点(A地点)に戻る。 3回目にクリックするとまた右に100移動、(B地点) 4回目にクリックすると元に地点(A地点)に戻る。 ・・・というような一つのムービークリップがA地点とB地点を行き来するだけの動きを希望しています。 このようなアクションスクリプトを試してみました。 on (release) { if (_x > 200) { marux = -marux; } if (_x < 200) { marux = -marux; } _x += marux;} onClipEvent (load) { marux = 100; } ところがこれだと、3回目のクリックでもとのA地点に行かずに-100の座標、A地点より100左の地点へ行ってしまします。 ムービークリップにいれるアクションスクリプトを教えて下さい。 どうかよろしくお願い致します。

  • アクションスクリプトでイージング

    Flash初心者です。 お聞かせ願いたいのですが、トゥイーンで設定できる イージングのような動きを、スクリプトで制御したく 思っているのですが、方法が分からずにいます。 下記のように、指定したX座標へ移動させる際に イージングを適用させたいのですが、どこにどのような スクリプトを追記すればよろしいでしょうか? onClipEvent (load) { theX = 0; } onClipEvent (enterFrame) { this._x += (theX-this._x)/5; } ご存知の方がおられましたら、回答いただければ幸いです。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 画像切り替えのアクションスクリプト

    3枚以上の画像を右と左に行くボタンで動かし切り替えて生きたいのですが、ちなみに画像の動き方はだんだん遅くなってとまるというのがベストです。 みようみまねでなんとか次のようにできたのですが、3枚以上はできません。 画像を横に並べて一枚にした画像をシンボルに変換し インスタンス名をpicにして次のスクリプトをそのムービークリップに書き込みました。 this._x = -200; this._y = 0; } onClipEvent (enterFrame) { if (flag==1) { dx = (0-this._x)/4; this._x += dx; } if (flag==0) { dx = (200+this._x)/4; this._x -= dx; } } なお、ボタンを2つ作成し、 on(release) { _root.pic.flag = 1; } と on(release) { _root.pic.flag = 1; }

  • センターに配置

    一つのムービークリップに onClipEvent (enterFrame) { xm = (Stage.width-this._width)/2; ym = (Stage.height-this._height)/2; this._x += (xm-this._x)/4; this._y += (ym-this._y)/4; } というアクションシュクリプトを書いています。 ところがです! そのムービークリップに on (release) { gotoAndPlay("01"); } と追記して指定のフレームラベル"01"に飛んでくれましぇん… なぜでしゅか? ムービークリップの中にボタンを入れて on (release) {...を記入したりまたが だめです。 ボタンをウィンドの上下左右センターに配置する方法、 もしくはムービークリップが指定のフレームラベルに行ってくれる方法を教えて下さい!!! もう、うんこしていてドアを開けられたときくらいびっくりしています。いや、苦しんでいます。

  • 停止してしまうgotoAndPlay

    愛想尽かされてしまいそうなのですが 質問をさせて頂きます。 どうも、フレーム上に書くスプリクトと クリップイベントの動作制限がイマイチ分かりません。 ある、ムービークリップがステージに配置されており onClipEvent (enterFrame)で移動制御しています。 (this._x-=5てな具合です) そのムービークリップは30フレームほどで形成されており しょっぱなのフレームでstop();をかけ、ムービークリップが自動的にアニメしないように停止させています。 で、on (press) にてそのムービークリップが マウスで押されたときにthis.gotoAndPlay("ラベル名");と、 その停止されていたムービークリップがマウスダウンをきっかけに動くといったものです。 ※ ここまでは思惑通りに進行できたのですが・・・・ マウスが押されるとか押されないとかは別に 例えば時間的に又はムービークリップがある一定の場所に到達したときに 停止させてたアニメを動作させたいのです。 私なりに考え、 onClipEvent (enterFrame)の命令の中で IF文にて座標を調べ特定の場所に着たので this.gotoAndPlay("ラベル名");にて動作させようとしたら ダメでした。 画像は変化しているので、ジャンプはしているようなのですが 何故か1コマで停止しているようです。 onClipEvent (enterFrame)内で this.gotoAndPlayは無効なのでしょうか? 手引書にはそれぞれの機能説明はありますが 使用制限が記載されていないので どういう間違いを犯しているのかわかりません。 上記、宜しくお願い致します。 尚、本件は別欄でご質問させて頂いてます物とは 別扱いとなります。 (質問ばかりでスミマセン。何かお勧めの手引書でもあれば教えて下さい)

    • ベストアンサー
    • Flash
  • Flash MX ActionScriptのEnterFrame

    Flash 初心者です。 クリップアクションの、 onClipEvent (enterFrame) { } がいまいちよくわかりません。 フレームが1フレームだけのルートのタイムラインに、 何の動きもないムービークリップオブジェクト(これも1フレームのみ)を1つ置いたとします。 そのムービークリップに、例えば、 onClipEvent (enterFrame) { _rotation+=20; } とアクションをつけたとします。 これを再生すると、回転し続けますよね。 これはルートのタイムラインが1フレームだけでも、 それがループしていると考えると、納得できるのですが、 1フレーム目に、this.stop();を記述しても、 回転し続けます。 enterframeとはどのように解釈すればいいのですか? ルートのタイムラインが再生される度に呼び出されるということでは ないのでしょうか? よろしくお願い致します。