Flash/AIR are vector display list renderers.  If you give it tons of
vectors to display, it will take a while to render them.  This is quite
different from bitmap renderers like Windows.  There are advantages and
disadvantages to each.

 

If I were writing such an app, I would probably take a snapshot every
once in a while and draw on top of the recent snapshot.

 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of dannyvenier
Sent: Thursday, March 27, 2008 7:19 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] graphics object seems to degrade performance

 

Hi,
I'm writing an AIR app that uses a scribble type component. In a 
nutshell, just uses the graphics lineTo() method to draw a line from 
the current location to the new position of the mouse on a mouse move 
event.

I have noticed that after scribbling for a bit (maybe 30 seconds), 
the mouse movement tracking is impaired and my scribbling which once 
resembled smooth circles, starts to look like octagons, hexagons, 
pentagons...eventually triangles....you get the picture. The 
frequency which the application picks up the move events is reduced 
so the smooth tracking turns to noticable lines. The graphics object 
appears to be bogging down the application and mouse event frequency 
as the number of lines in the graphics object increases. It doesn't 
take long to degrade.

I tried out the flex profiler and didn't show any significant growth 
in memory over this scribble period. I tried a scrible application 
from Andy Rayne's scribble board 
http://weblogs.macromedia.com/arayne/
<http://weblogs.macromedia.com/arayne/>  and it behaves exactly the same

way. There is no scaling, zooming or manipulation of the graphics 
lines at all. I'm assuming they're just pushing points onto an array 
but haven't looked into the source to confirm how this type of class 
behaves.

Has anyone experienced this kind of degradation with a graphics 
object and if so, have you figured out what's going on?

 

Reply via email to