オブジェクトドラッグのお勉強(再)
2005.02.25
オブジェクトをマウスでドラッグするテスト /1kb
半年振りにFlashLab再開…。折角高い金だして買ったのにこれでは…(汗)
というわけで、手始めに昔やったオブジェクトドラッグのカクカクを直してみることにしました。
色々サイトを見て回った所、カクカクはフレームレートを低く設定していた所為だった事が判明。
これを解決する為に…
onClipEvent (mouseMove) {
updateAfterEvent();
}
を追加しました。
これにより、マウスが動くたびに更新されるため、スムーズな動きになるという感じです。すごーい。
牛さんも自由に動き回れて喜んでいるに違いない。
更に、startDragの3番目以降のパラメータで行動範囲も設定できることが判明…。
startDrag(this, false, 1, 1, 300 - this._width, 200 - this._height);
コレの為に試行錯誤していた時間は一体。今となってはそれもよき思い出。
前回は、こんな愚行を延々としていたわけです。あらやだ。
onClipEvent (enterFrame) {
if (Math.floor(this._x) < 0) {
this.stopDrag();
this._x = 0;
}
if (Math.floor(this._x + this._width) > _root.canvas_size_x) {
this.stopDrag();
this._x = (_root.canvas_size_x - this._width);
}
if (Math.floor(this._y) < 0) {
this.stopDrag();
this._y = 0;
}
if (Math.floor(this._y + this._height) > _root.canvas_size_y) {
this.stopDrag();
this._y = (_root.canvas_size_y - this._height);
}
}
この応用で、マウスにくっ付いてくるオブジェクトも滑らかにする事が出来ました。
これでオブジェクトドラッグの基本操作は卒業しよう、ハァハァ。