我正在处理一些可拖拽/拖拽的酒吧。因此它只能拖拽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