It will help some, but you'll still end up with 500,000 vectors spread thorough 1000 overlaid shapes.
In order to handle undo, you would track the vectors in your own array of points and take snapshots as I suggested. I wouldn't even encode as png, all you need is one extra bitmapdata. ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Troy Gilbert Sent: Friday, March 28, 2008 10:36 AM To: [email protected] Subject: Re: [flexcoders] Re: graphics object seems to degrade performance > Are you suggesting I choose a point in time, for instance, when 500 > vectors are drawn, then convert them, encode as png file, overlay as > another child image, clear the graphics object and let user continue > scribbling on newly cleared graphics object?. Reading through this thread reminded me of a similar performance issue I encountered. I have a component that allows the user to erase parts of image. I originally implemented this by creating a mask for the bitmap and drawing on the mask to erase. I ran into the same problem: the more the user erased, the slower the app got. I eventually switched to using a bitmap as the mask, but I lost my nice soft brushes and easy, smooth resizing that the vectors gave me. In thinking about Alex's suggestion I had a thought (that would help you as well). Instead of "baking" your lines to a bitmap, creating a new shape and drawing on that, then baking that into your bitmap, repeat... which has the problem of losing your vectors... could you keep an array (or rather, a stack) of shape layers, and as the user draws a certain amount of vectors on that shape (like you said, 500 lines or such), you push another shape layer on the stack and set the previous shape layer cacheAsBitmap to true. You'd then get the performance boost of the bitmap without losing the fidelity of your vectors. When the user is ready to finalize their drawing, you just start at the bottom of the stack and draw the shapes into a bitmap at whatever is the desired final resolution (scaling it up or down as needed). That should be an excellent trade-off... the only drawback would be if you were using the vector renderer to draw things that interact with existing vectors, i.e. using fills with intersections, etc. Troy.

