我已经就此问了几个问题,关于它的其他问题,但我差不多完成了!
我正在Animate CC中进行拖放交互,而且我几乎让它工作了。它可识别拖拽和下降,但目标区域上的位置似乎已关闭。 Demo
我的猜测是,这与我没有正确地做globalToLocal()
有关,但我不确定。到目前为止,修改w1
,w2
,h1
,h2
中的值并没有改变。
这是交叉测试功能,它是一个非常受欢迎的here
function intersect(obj1, obj2){
var objBounds1 = obj1.nominalBounds.clone(); //used nominalBounds for shape in animateCC
var objBounds2 = obj2.nominalBounds.clone();
var pt = obj1.globalToLocal(objBounds2.x, objBounds2.y); //is this what's wrong?
var h1 = -(objBounds1.height / 2 + objBounds2.height);
var h2 = objBounds2.height / 2;
var w1 = -(objBounds1.width / 2 + objBounds2.width);
var w2 = objBounds2.width / 2;
if(pt.x > w2 || pt.x < w1){
spliceThis(hitTestArray, obj2);
return false;
}
if(pt.y > h2 || pt.y < h1){
spliceThis(hitTestArray, obj2);
return false;
}
if(hitTestArray.indexOf(obj2) < 0){ //Obj2 not found
hitTestArray.push(obj2);
}
return true;
}
obj1
是拖动对象,obj2
是放置目标。我知道画架没有宽度和高度,所以也许这是它的一部分?但我不确定如何重构它来解释这个问题。此外,它有点工作,所以我不知道为什么如果高度和宽度只是空的情况会是这样的呢?
我完全不理解这一点,还是我很接近?