• ベストアンサー

進行方向に徐々に停止するスクリプト

お世話になります。 初めて投稿いたします。 フラッシュ8で、ステージ上にあるシンボルをドラッグして動かすという スクリプトを勉強したのですが on(press){ this.startDarg(); } on(release,releaseOutside){ this.stopDrag(); } マウスを離したら、いままでドラッグしていた進行方向に 向かって徐々に停止するという状態にしたいです。 どうか、教えていただけませんでしょうか?

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

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

どういう方向性で勉強されている(習われている?)のかわかりませんから回答しにくい面もありますが, 一応, onイベントハンドラを使用されている という雰囲気を壊さないように考えてみました。 -------------------------------------- onClipEvent (load) { // ゆっくりになる度合を設定 slowdown = 9/10; // 動く割合の変数 movement の初期化 movement = 1; // プレスされたかどうかのフラグの初期化 press_flag = false; } on (press) { this.startDrag(); // プレスされたかどうかのフラグをtrueにする press_flag = true; // 座標をpos_x1とpos_y1に記録 pos_x1 = this._x; pos_y1 = this._y; } on (release, releaseOutside) { this.stopDrag(); // プレスされたかどうかのフラグをfalseにする press_flag = false; // 動く割合の変数 movement の初期化 movement = 1; } onClipEvent (enterFrame) { if (press_flag) { // 前に記録しておいた座標を違う変数に代入 pos_x2 = pos_x1; pos_y2 = pos_y1; // あらたに今の座標を記録 pos_x1 = this._x; pos_y1 = this._y; } else { // movement を slowdown の割合で少なくする movement *= slowdown; // 記録の差分座標ずつ動かす(減速させながら) this._x += (pos_x1-pos_x2)*movement; this._y += (pos_y1-pos_y2)*movement; } } ------------------------------------- onイベントハンドラが使用できるようになった, Flash MX 以上で使用可能なスクリプトです。 ActionScriptのバージョンは1.0です。

yumetiyo12
質問者

お礼

BlurFiltan様 ありがとうございます。 私は、フラッシュ初心者でテキストを見ながら勉強しているのですが 漠然と、疑問が湧いてきました。 本当にありがとうございました。 これから、もっともっと勉強していきたいと思います。 助かりました。

関連するQ&A

専門家に質問してみよう