只有几个不可见的显示对象不应该减慢它的速度,但有很多可以。我认为一个更简洁的选择可能是只在代码中处理它,而不是在舞台上实际不可见的显示对象。
对于圆,您将定义中心点和半径。然后如果有人点击它,你可以去:
var xDist:Number = circle.x - mousePoint.x;
var yDist:Number = circle.y - mousePoint.y;
if((xDist * xDist) + (yDist * yDist) <= (circle.radius * circle.radius)){
// mousePoint is within circle
} else {
// mousePoint is outside of circle
}
如果您坚持使用显示对象来设置这些圆形命中区域(有时在视觉上会更容易,然后通过数字),您还可以编写一些代码来读取这些显示对象(并从渲染中删除它们)以获取它们的位置和半径大小。
添加方法:
// inputX and inputY are the hotspot's x and y positions, and inputRadius is the radius of the hotspot
function hitTestObj(inputA:DisplayObject, inputX:int, inputY:int, inputRadius:int):Boolean {
var xDist:Number = inputX - inputA.x;
var yDist:Number = inputY - inputA.y;
var minDist:Number = inputRadius + (inputA.width / 2);
return (((xDist * xDist) + (yDist * yDist)) =< (minDist * minDist))
}