我正在處理一些可拖拽/拖拽的酒吧。因此它只能拖拽x因爲這是選擇欄。問題是選擇按鈕可拖拽出舞臺限制。我想只能在階段limit.I嘗試一些方法hitTestPoint和newshape,但它沒有工作。如何設置拖拽X限制
// define lock on y-axis
var LOCKY:Number = secbuton.y;
stage.addEventListener(MouseEvent.MOUSE_MOVE, _mouseMove);
function _mouseMove(e:MouseEvent):void
{
if(secbuton.y != LOCKY) secbuton.y = LOCKY;
}
// dragging
secbuton.addEventListener(MouseEvent.MOUSE_DOWN, _mouseDown);
function _mouseDown(e:MouseEvent):void
{
secbuton.startDrag(false, new Rectangle(35,345,420));
secbuton.addEventListener(MouseEvent.MOUSE_UP, _mouseUp);
}
// dropping
function _mouseUp(e:MouseEvent):void
{
secbuton.stopDrag();
secbuton.removeEventListener(MouseEvent.MOUSE_UP, _mouseUp);
if(secbuton.hitTestObject(kose1)){
secbuton.x = levcbk1.x +5
}
if(secbuton.hitTestObject(lev2)){
secbuton.x = levcbk2.x +5
}
if(secbuton.hitTestObject(lev3)){
secbuton.x = levcbk3.x +5
}
if(secbuton.hitTestObject(lev4)){
secbuton.x = levcbk4.x +5
}
if(secbuton.hitTestObject(lev5)){
secbuton.x = levcbk5.x +5
}
}
UPDATE
通常酒吧的工作是這樣的。
[![在這裏輸入的形象描述] [1] [1]
但問題是有打擊的邊界時或當嘗試拖動到Y軸。
[![在這裏輸入的形象描述] [2] [2]
第二個參數:** public function startDrag(lockCenter:Boolean = false,bounds:Rectangle = null):void ** http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/顯示/ Sprite.html#startDrag() – Organis
我是新的class.Im使用幀代碼。我可以在幀代碼中做到這一點? – KucuKeko
** secbuton.startDrag(false,new Rectangle(...)); **並在您傳遞的Rectangle構造函數中**矩形區域的左側,頂部,寬度,高度**,該矩形區域應該是用於拖動的邊界框你的secbutton對象。 – Organis