目に見えない表示オブジェクトがいくつかあるだけでそれほど遅くなることはありませんが、多くの場合は遅くなる可能性があります。よりクリーンなオプションは、ステージ上に実際の目に見えない表示オブジェクトを配置するのではなく、コードですべてを処理することだと思います。
円の場合、中心点と半径を定義します。次に、誰かがクリックしたかどうかを取得するには、次のようにします。
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))
}