Чую я, что сабж должен был обсуждаться, но поиском ничего не нашел.
Уж слишком сильно addChild() понижает fps. Может можно без добавления спрайта к спрайту каким-то образом перерисовать спрайт мишени?

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;
import General.FpsCounter;
public class Question extends Sprite
{
private var aim:Sprite;
private var target:Sprite;
static public var m_fpsCounter:FpsCounter = new FpsCounter();
public function Question()
{
createAndAddAim();
addATarget();
m_fpsCounter.x = 7;
m_fpsCounter.y = 5;
addChildAt(m_fpsCounter, 0);
addEventListener(Event.ENTER_FRAME, update);
}
private function update(e:Event):void
{
m_fpsCounter.update();
}
private function addATarget():void
{
target = new Target();
target.x = 150;
target.y = 100;
target.addEventListener(MouseEvent.MOUSE_DOWN, onTargetMouseDown);
addChildAt(target, 0);
}
private function onTargetMouseDown(e:MouseEvent):void
{
for (var i:int = 0; i < 8; i++)
{
var bulletHole:Sprite = new BulletHole();
bulletHole.x = (mouseX - target.x) + (Math.random() * 40 - 20);
bulletHole.y = (mouseY - target.y) + (Math.random() * 40 - 20);
target.addChild(bulletHole);
}
}
private function createAndAddAim():void
{
aim = new Aim();
aim.mouseEnabled = false;
aim.x = mouseX;
aim.y = mouseY;
addChild(aim);
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveAim);
Mouse.hide();
}
private function moveAim(e:Event):void
{
aim.x = mouseX;
aim.y = mouseY;
}
}
}