I'd suspect that maybe you're calling captureImg() immediately after setting 
the data/drawing the elements in your code?
If so, it may not actually be rendered to the components graphics when the 
snapshot is taken.
Just a guess, but it smells a bit like a timing problem to me (I've made too 
many of the same, myself).
I'm afraid I can't remember offhand the component event when the screen is 
actually drawn, but a crude approach might be to call captureImg via 
callLater() and see if it works.
(If I'm not completley wrong, that is). 
I confess I sometimes just add a temporary button to call my fn when I think 
I've made a similar kind of error (which normally confirms it).



-----Original Message-----
From: [email protected] on behalf of netdeep
Sent: Wed 12/03/2008 19:52
To: [email protected]
Subject: [flexcoders] captureImage not drawing fresh images
 
I'm having a problem creating a png snapshot of a chart I'm drawing.  I can use 
the 
ImageSnapshot captureImage method but it only draws the elements added during 
the 
creation of the component and if I later add data from messaging or with 
actionscript 
(addChild), it only draws the original elements and not the new data.  Here is 
my method:

 private function captureImg(comp:UIComponent):void {
                var imageSnap:ImageSnapshot = 
ImageSnapshot.captureImage(dynaChart);
                var imageByteArray:ByteArray = imageSnap.data as ByteArray;
                imgSave.saveImage(imageByteArray);
            }

I also have this line in my init() method:  ImageSnapshot.defaultEncoder = 
PNGEncoder;

But I don't even know if I need that for sure.

I then send it to a java servlet to write it to a file.  As I said, it works 
but only writes the visual 
components added during initialization of the application.  So I am just 
getting a blank chart.



______________________________________________________________________
This communication is from Primal Pictures Ltd., a company registered in 
England and Wales with registration No. 02622298 and registered office: 4th 
Floor, Tennyson House, 159-165 Great Portland Street, London, W1W 5PA, UK. VAT 
registration No. 648874577.

This e-mail is confidential and may be privileged. It may be read, copied and 
used only by the intended recipient. If you have received it in error, please 
contact the sender immediately by return e-mail or by telephoning +44(0)20 7637 
1010. Please then delete the e-mail and do not disclose its contents to any 
person.
This email has been scanned for Primal Pictures by the MessageLabs Email 
Security System.
______________________________________________________________________

<<winmail.dat>>

Reply via email to