【发布时间】:2010-03-18 11:59:07
【问题描述】:
红色:父动画剪辑内的形状,
黄色:父动画剪辑内的子代
Image http://frontenddev.com/images/stack.png
我想为黄点设置动画,但要确保它们永远不会超出红色形状的边界。我该如何解决这个问题?
【问题讨论】:
标签: flash actionscript-3
红色:父动画剪辑内的形状,
黄色:父动画剪辑内的子代
Image http://frontenddev.com/images/stack.png
我想为黄点设置动画,但要确保它们永远不会超出红色形状的边界。我该如何解决这个问题?
【问题讨论】:
标签: flash actionscript-3
试试hitTestObject。它评估显示对象以查看它是否与obj 显示对象重叠或相交。
for each(var yellow:DisplayObject in yelloDotsArray)
{
if(yellow.hitTestObject(theRed))
trace("this dot is within the limits");
else
trace("this dot is outside the red area");
}
【讨论】:
这基本上等同于为自定义形状滚动您自己的物理引擎。我建议研究现有的物理引擎并应用一个来满足您的需求。
也就是说,如果对象可以离开显示对象的边界并且您只是不希望它们在这种情况下出现,则可以使用同一显示对象的第二个副本来掩盖原始对象。
【讨论】:
就外部形状是矩形(或矩形联合作为您的图片)而内部形状是圆形而言,检查所有圆形的圆心和所有矩形边缘之间的距离比使用 hitTestObject 便宜得多。
另外,我建议使用现有的库,例如http://code.google.com/p/collisiondetectionkit。
【讨论】: