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 [email protected], "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: [email protected]
[mailto:[EMAIL PROTECTED] On
> Behalf Of Stephen Gilson
> Sent: 09 March 2007 19:46
> To: [email protected]
> 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: [email protected]
[mailto:[EMAIL PROTECTED] On
> Behalf Of Giles Roadnight
> Sent: Friday, March 09, 2007 12:39 PM
> To: [email protected]
> 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: [email protected]
[mailto:[EMAIL PROTECTED] On
> Behalf Of Alex Harui
> Sent: 09 March 2007 16:43
> To: [email protected]
> 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: [email protected]
[mailto:[EMAIL PROTECTED] On
> Behalf Of Giles Roadnight
> Sent: Friday, March 09, 2007 7:16 AM
> To: [email protected]
> 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
>