i added a creationComplete event into the mix and seems to work

var testImage:Image = new Image();
testImage.addEventListener(FlexEvent.CREATION_COMPLETE, trythis);
//testImage.source = "{imgCls}";
this.addChild(testImage);

public function trythis(e:FlexEvent):void
{
Image(e.currentTarget).load(imgCls);
}



--- In flexcoders@yahoogroups.com, "Giles Roadnight" <[EMAIL PROTECTED]> 
wrote:
>
> Thanks, I've read that chapter but I still can't get this to work. 
I've been
> fiddling with it all weekend and still no luck.
> 
>  
> 
> I now have this code which is based on an example on the adobe 
site:
> 
>  
> 
> <?xml version="1.0"?>
> 
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>
> 
>  
> 
>     <mx:Script>
> 
>         <![CDATA[
> 
>                 import mx.controls.Image;
> 
>             [Embed(source="/assets/logo.swf")]
> 
>             [Bindable]
> 
>             public var imgCls:Class;
> 
>                                 
> 
>                                                 private function
> testPrint():void
> 
>                                                 {
> 
>                                                                 var
> testImage:Image = new Image();
> 
>  
> testImage.source = "{imgCls}";
> 
>  
> this.addChild(testImage);
> 
>                                                 }
> 
>         ]]>
> 
>     </mx:Script> 
> 
>  
> 
>     <mx:Button label="Icon Button 1" icon="{imgCls}" 
click="testPrint()"/>
> 
>     <mx:Button label="Icon Button 2" icon="{imgCls}"/>
> 
> </mx:Application>
> 
>  
> 
> The buttons display the image fine but when I click the first 
button I just
> get broken images appearing. I have tried using the Image.load() 
method and
> the image.source property and both give the same result.
> 
>  
> 
> I would be really grateful if someone could get this code working 
for me.
> 
>  
> 
> Many thanks
> 
>  
> 
> Giles Roadnight
> 
>  
> 
> From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
> Behalf Of Stephen Gilson
> Sent: 09 March 2007 19:46
> To: flexcoders@yahoogroups.com
> Subject: RE: [flexcoders] Using an embedded image at runtime, 
Please help.
> 
>  
> 
> There is an entire chapter in the docs on this topic that might 
help:
> 
>  
> 
> http://livedocs.adobe.com/flex/201/html/embed_082_1.html
> 
>  
> 
> Stephen
> 
>  
> 
>   _____  
> 
> From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
> Behalf Of Giles Roadnight
> Sent: Friday, March 09, 2007 12:39 PM
> To: flexcoders@yahoogroups.com
> Subject: RE: [flexcoders] Using an embedded image at runtime, 
Please help.
> 
> Many thanks for the reply but I am still having some problems.
> 
> I have this code:
> 
> [Embed(source="../assets/mixi.swf")]
> 
> [Bindable]
> 
>  private var mixiLogo:Class;
> 
> at the top of my class and this code:
> 
> private function printMovies(e:Event):void
> 
> {
> 
>                 var mixiLogo:Image = new Image();
> 
>                 mixiLogo.load("{this.mixiLogo}");
> 
>                 
> 
>                 this.addChild(mixiLogo);
> 
> }
> 
> That fires when I press a button but I am still getting a broken 
image. When
> I try to load the image into a panel that I am building to print 
nothing
> appears.
> 
> Is this code correct?
> 
> Thanks
> 
> Giles Roadnight
> 
> From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
> Behalf Of Alex Harui
> Sent: 09 March 2007 16:43
> To: flexcoders@yahoogroups.com
> Subject: RE: [flexcoders] Using an embedded image at runtime, 
Please help.
> 
> @Embed is a compiler directive so you can't put it in quotes.
> 
> You have to declare a variable
> 
> [Embed('../assets/mixipix.swf');
> 
> Var mixipix:Class
> 
> And load that
> 
>   _____  
> 
> From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
> Behalf Of Giles Roadnight
> Sent: Friday, March 09, 2007 7:16 AM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Using an embedded image at runtime, Please 
help.
> 
> Hi
> 
> I am still trying to get this print job done. I have got all of 
the text
> working fine but I can't get the logo to appear at the top, I hope 
someone
> can help.
> 
> I have this code:
> 
> private function printMovies(e:Event):void
> 
> {
> 
>                 var mixiLogo:Image = new Image();
> 
>                 mixiLogo.load("@Embed('../assets/mixipix.swf')");
> 
>                 this.addChild(mixiLogo);
> 
> }
> 
> But I just get a broken image appearing when I fire the function.
> 
> With this version of the function:
> 
> private function printMovies(e:Event):void
> 
> {
> 
>                 
> 
>                 this.printJob = new FlexPrintJob();
> 
>                 
> 
>                 if(this.printJob.start()){
> 
>                                 
> 
>                                 this.printPanel = new Panel();
> 
>                                 var txtApprovedList:Text = new Text
();
> 
>                                 var mixLogo:Image = new Image();
> 
>                                 
> 
>                                 mixLogo.load("assets/logo.swf");
> 
>                                 
> 
>                                 txtApprovedList.setStyle
("color",0x000000);
> 
>                                 txtApprovedList.width = 
printJob.pageWidth;
> 
>                                 txtApprovedList.text =
> this.txtMovieIDs.text;                    
> 
>                                 
> 
>                                 this.printPanel.addChild(mixLogo);
> 
>                                 this.printPanel.addChild
(txtApprovedList);
> 
>  
> this.printPanel.setStyle("borderStyle","none");
> 
>                                 
> 
>                                 this.addChild(this.printPanel);
> 
>                                 
> 
>  
> printPanel.addEventListener
(FlexEvent.CREATION_COMPLETE,this.doPrintCanvas);
> 
>                 }
> 
> }
> 
> I get the panel and text appearing but no iamge at all, not even a 
broken
> one.
> 
> I hope someone can help.
> 
> Giles Roadnight
>


Reply via email to