【发布时间】:2011-11-11 07:31:14
【问题描述】:
我想创建一个函数,我可以在其中拖动一个 MovieClip,它会撞到舞台上的其他 MovieClip 而不会重叠它们。 (即对象不能被拖过或穿过其他影片剪辑)。
function dragHolder01(event:Event):void{
if (mouseDownHolder01 == true) {
for(var m:int = 0;m<blockHolder.numChildren; m++){
var hitBlock:DisplayObject = blockHolder.getChildAt(m);
if(movaHolder01.hitTestObject(hitBlock)){
movaHolder01.x = movaHolder01x;
movaHolder01.y = movaHolder01y;
break;
}
}
movaHolder01.startDrag();
movaHolder01x = movaHolder01.x;
movaHolder01y = movaHolder01.y;
}
}
我想我可能有一个概念性的解决方案,但我需要你的帮助。 我想也许我可以限制“startDrag”以允许根据帧进度进行拖动,即玩家将无法为每一帧拖动对象超过一个像素(因此不能将对象拖入另一个像素超过一个像素)。
关于如何做到这一点的任何想法?
【问题讨论】:
-
到目前为止你尝试了什么,你有什么代码可以展示吗?你的文件是怎么设置的,你对舞台上的其他对象有可用的参考吗?
标签: actionscript-3