ドラッグ&ドロップで制御
マウスで押しながらムービークリップを動かす
on (press) { this.startDrag(); } on (release, releaseOutside) { this.stopDrag(); }
var box_mc:MovieClip; //イベントに関数を割り当てる box_mc.onPress = startMoving; box_mc.onRelease = stopMoving; //ドラッグを開始する関数 function startMoving():Void { this.startDrag(); //ドラッグを開始 } //ドラッグを終了する関数 function stopMoving():Void { this.stopDrag(); //ドラッグを終了 }
ドラッグできる範囲を指定する
(false, 左上X座標, 左上Y座標, 右下X座標, 右下Y座標)
var box_mc:MovieClip; //イベントに関数を割り当てる box_mc.onPress = startMoving; box_mc.onRelease = stopMoving; //ドラッグを開始する関数 function startMoving():Void { this.startDrag(false, 20, 20, 350, 200);//ドラッグを開始-範囲指定 } //ドラッグを終了する関数 function stopMoving():Void { this.stopDrag(); //ドラッグを終了 }
ドラッグする範囲を限定する
on (press) { this.startDrag(true,0,0,500,300); } on (release, releaseOutside) { this.stopDrag(); }
- startDrag()は、イベントが発生したときマウスカーソルをムービークリップの基準点にロックする(true)か、しない(false)か、インスタンスをステージの上下左右のどの範囲まで動かせるようにするか設定できる。
startDrag(true, 左, 上, 右, 下);
《演習》
以下のような動きをするスクリプトを記述しなさい。
var heightEdge = 300; var rate = 50; this.weight_mc.onPress = function() { this._parent.weight_mc.startDrag(false, 0, 0, 500, 300); } this.weight_mc.onRelease = function() { this._parent.weight_mc.stopDrag(); this._parent.weight_mc.onEnterFrame = function() { this._parent.weight_mc._y += rate; if (this._parent.weight_mc._y>heightEdge) { this._parent.weight_mc._y = heightEdge; this._parent.weight_mc.onEnterFrame = undifined; } } }