我正在使用来自http://hub.tutsplus.com/tutorials/create-a-drag-and-drop-puzzle-in-actionscript-30--active-2920的代码来制作拖放装饰游戏。我试图做到这一点,以便当拖放的对象被拖出目标位置(在我的情况下是形状的轮廓)时,它会回到初始位置......基本上是反转拖放。我一直在搞乱真正的随机代码,到目前为止,这条线最接近我想要的,但我认为代码不正确,而且它也没有返回到初始位置,它只是在舞台的一侧.
所以,我在 stopDragObject 中添加了 else if 行,它让对象从目标位置移除,但它随机移动到舞台的一侧,而不是初始位置:
private function stopDragObject(evt:MouseEvent):void {
if (evt.target.hitTestObject(getChildByName(evt.target.name + "Target"))) {
evt.target.x = getChildByName(evt.target.name + "Target").x;
evt.target.y = getChildByName(evt.target.name + "Target").y;
} else if (evt.target.x = null) {
evt.target.x = xPos;
evt.target.y = yPos;
}
evt.target.stopDrag();
}
解决了
在阅读了下面的课程后,我最终得到了这个并且它完美地工作!(不完全像课程那样,但至少它有效......)
private function stopDragObject(evt:MouseEvent):void {
if (evt.target.hitTestObject(getChildByName(evt.target.name + "Target"))) {
evt.target.x = getChildByName(evt.target.name + "Target").x;
evt.target.y = getChildByName(evt.target.name + "Target").y;
} else {
evt.target.x = getChildByName(evt.target.name + "Int").x;
evt.target.y = getChildByName(evt.target.name + "Int").y;
}
evt.target.stopDrag();
}
我添加了一个初始对象,因此该对象只能位于目标或初始位置:)