Ahr, Vengeance MX, that's not entirely true. You can use the alpha channel with CopyPixels. And for memory usage - just have a BitmapData that you always draw to. I had the same spikes when I always threw away my BitmapData canvas. Just do a .fillRect with your favorite background color and use it again.

That's what I'm doing here: http://enwire.dk/flash/Flocking.html
Alright, I'm actually using the .draw method on BitmapData so I can use BlendMode.ADD, but I strongly suspect that when the input to the draw method is a BitmapData then it's just a form of copyPixels underneath.