- 締切済み
吸着後の事
吸着後についてわからない事があります。 ドラッグ&ドロップでmaru_mcをsikakuというMCに吸着させています。 sikakuというMCに衝突していない時は指定座標に戻るようにしているのですが、二点うまくいかないところがあります。 吸着後、maru_mcをsikakuから離す時、maruがその場を動こうとしない時があり、すんなりドラッグできない。 maru_mcが、衝突していない時でも指定座標にもどらず、sikakuに吸着してしまう時があります。 改善点等たくさんあるとおもいますが、よろしくお願いします。 下記スクリプトです。 maru_mcのスクリプト on (press) { this.startDrag(); this.onEnterFrame = function() { if (this.hitTest(_root.sikaku)) { this._x += (_root.sikaku._x-this._x)/4; this._y += (_root.sikaku._y-this._y)/4; } }; } on (release, releaseOutside) { this.stopDrag(); this.onEnterFrame = function() { if (!this.hitTest(_root.sikaku)) { this._x += (400-this._x)/6; this._y += (300-this._y)/4; } else { this._x += (_root.sikaku._x-this._x)/4; this._y += (_root.sikaku._y-this._y)/4; } }; }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
こんな感じではどうでしょうか? 変えたのは,on (press)イベントハンドラ内だけなので, on (press)イベントハンドラだけ書きます。 -------------------------------------- on (press) { this.startDrag(); // プレスした時点で sikaku とヒットしていれば if (this.hitTest(_root.sikaku)) { // 変数 flag を 1 に flag = 1; } else { // それ以外は flag を 0 に flag = 0; } this.onEnterFrame = function() { // sikaku とヒットしていてなおかつ flag が 0 であれば if (this.hitTest(_root.sikaku) && flag == 0) { this._x += (_root.sikaku._x-this._x)/4; this._y += (_root.sikaku._y-this._y)/4; } }; } --------------------------------------