You can have a function that starts the print job, gets the page width and height, and then the last thing it does is attach an event listener for an end-of-scaling event and fires off the scaling function. The scaling function finishes and dispatches the end-of-scaling event, which runs your event listener function. The event listener function adds the scaled object to the print job and sends the job to the printer. Like this: private var printJob:FlexPrintJob; private function doPrint():void { printJob:FlexPrintJob = new FlexPrintJob(); if (!printJob.start()) return; yourScalingComponent.addEventListener("scalingDone", finishPrint); doScaling(printJob.pageWidth, printJob.pageHeight); } private function doScaling(pw:Number, ph:Number):void { var scaleJob:MyScalingComponent = new MyScalingComponent(); scaleJob.pageWidth = pw; scaleJob.pageHeight = ph; scaleJob.scaleIt(); } private function finishPrint(event:scalingDone) { var scaledObj:ScaledObj = event.result as ScaledObj; printJob.addObject(scaledObj, FlexPrintJobScaleType.NONE); printJob.send(); In your scaling component, define an event <mx:Metadata> [Event(name="scalingDone", type="events.CustomEvent")] </mx:Metadate> Then when the scaling is complete, dispatch the scalingDone event: this.dispatchEvent("scalingDone", scaledObj); The custom event looks like this (if you put it in a directory named events): package events { import flash.events.Event; public class CustomEvent extends Event { public var myObj:Object = null; public function CustomEvent(type:String, obj:Object) { super(type, true, true); this.myObj = obj; } } } HTH, ~randy
_____ From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Mike Anderson Sent: Monday, December 17, 2007 12:12 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Help with Printing (relates to Scaling Object, just before sending printjob) Greetings All! I have a major problem, where I have a function that properly scales an Object *just* before sending it to the printer. The issue is, the Object isn't scaling fast enough, so by the time it gets added to the PrintJob, it still isn't the proper scale - and looks completely wrong on the actual printout. Initially, I figured I could simply scale the Object first (in an entirely different function), then create some intentional pauses in the code (or use callLater in the right places), THEN run my PrintJob function code. BUT, my scaling functions rely on information brought back from the PrintJob - like PageWidth and PageHeight - which means, my Scaling Function must be called from within my PrintJob function. Bottom line, is that everything is happening too quickly, for the PrintJob to capture the properly scaled object. Is there a way for me to insert some intentional pauses, to slow things down, and give the object to be printed, time to properly scale, before getting sent to the PrintJob? Thank you in advance, for any help you can offer. Mike No virus found in this outgoing message. Checked by AVG. Version: 7.5.503 / Virus Database: 269.17.4/1187 - Release Date: 12/16/2007 11:36 AM