OK, weird, so why then do children of the UIComponent I added, like text and sprites, (with graphics drawn in them) appear, but not Image? Are they rendered in a completely different way?
Thanks, Jason --- In [email protected], "Michael Schmalle" <[EMAIL PROTECTED]> wrote: > > Hi, > > The original question of this long thread was 'Why can't I get the > mx.controls.Image component to display correct in a UIComponent wrapper". > > The easy answer to this all is, UIComponent's updateDislayList() method does > NO sizing of it's children. This is what containers do, using whatever > layout algorithm you give them. > > Unless you subclass and override measure() and updateDisplayList() in > UIComponent, you WILL NEVER get an Image component to be show. This is > because nothing is calling setActualSize() on the UIComponent's child... the > Image component. > > Lang story short, this will never work, create a 'light' container impl that > measures and sizes you UIComponent children or use a Box or Canvas. > > Mike > > On Fri, Aug 1, 2008 at 12:12 PM, Laurent Cozic <[EMAIL PROTECTED]> wrote: > > > I didn't read the other replies, but in general I think it's not a good > > idea to add a Flex component to a non-Flex object. You might be able to get > > it to work by simulating the framework workflow - for example, by manually > > calling all the "invalidateXX" methods, however it's not a very clean > > approach. > > > > In this case, a better way would be to directly create an instance of your > > embedded object and add it to the display list. I think the syntax would be: > > > > var image:BitmapAsset = new _moveGroupImage() as BitmapAsset ; > > this.addChild(image); > > > > > > -- > > Laurent Cozic > > > > Flash, Flex and Web Application development > > http://pogopixels.com > > > > ----- Original Message ---- > > From: "Merrill, Jason" <[EMAIL PROTECTED]> > > To: [email protected] > > Sent: Friday, August 1, 2008 4:57:36 PM > > Subject: [flexcoders] Re: problem adding images to UIComponents using AS3 > > > > OK, let me back up here. First, thanks to those who responded. So I > > thought by isolating my problem with an example (heck, I'm not even using > > Canvas) it would shed light on why this bug is occuring, but it isn't > > unfortunately, I'm more or less confusing the real problem with y'all. > > Sorry. So maybe what I thought was the problem was instead something else. > > > > > > Here is my actual project code, and a description of the setup. The > > problem is, the image is not getting attached to the sprite, even though the > > sprite is showing up in the display list just fine (the graphics draw from > > code - but the image doesn't show). I know the path to the image is right, > > I can use the same embed and new Image() code elsewhere in my app to make > > the image appear. Here is the code and the setup in the application: > > > > package com.venice.view. network.grouping Tool > > { > > import flash.display. Sprite; > > import mx.controls. Image; > > > > public class GroupHandle extends Sprite > > { > > public var id:int; > > > > public const FILL_COLOR:uint = 0xffffff; > > public const FILL_ALPHA:Number = .5; > > public const STROKE_COLOR: uint = 0x000000; > > public const STROKE_THICKNESS: Number = 1; > > public const STROKE_ALPHA: Number = 1.0; > > public const SIZE:Number = 10; > > > > [Embed(source = "/media/icons/ control_repeat_ blue.png")] > > [Bindable] > > private var _moveGroupImage: Class; > > > > public function GroupHandle( ):void > > { > > //this works: > > graphics.clear( ); > > graphics.lineStyle( STROKE_THICKNESS , > > STROKE_COLOR, STROKE_ALPHA) ; > > graphics.beginFill( FILL_COLOR, FILL_ALPHA); > > graphics.drawRect( -(SIZE/2) , -(SIZE/2), SIZE/2, > > SIZE/2); > > graphics.endFill( ); > > > > //this doesn't: > > var icon:Image = new Image(); > > icon.source = _moveGroupImage; > > addChild(icon) ; > > } > > } > > } > > > > This class, GroupHandle. as, which extends Sprite, is added in the display > > list in my application as follows: > > > > *Application* (main MXML) > *network* (Panel based MXML component) >* > > groupsLayerUI* (a UIComponent, necessary because it's added to a Panel > > container) >*groupingTool* (.as class that extends Sprite) >*groupHandle*(.as class that extends Sprite) > > > > The groupsLayerUI UIComponent seems to be fine holding other content, and > > even in the groupHandle, it renders drawn graphics just fine. Just not the > > image. Even if I size the UIComponent, it doesn't work. It's not making any > > sense to me why this image doesn't appear in this sprite, even though it > > will appear in other places in my app, and even though other graphics in the > > sprite appear fine. I thought maybe it had something to do with also > > drawing on the same sprite, but that's not it either, I removed that code > > and it still fails to load the embedded image. Can someone figure out what > > could be wrong? Thanks. > > > > Jason Merrill > > ***Bank of America * > > Enterprise Technology & Global Risk L&LD > > Instructional Technology & Media > > > > *****Join the Bank of America Flash Platform Developer Community* > > > > *Are you a Bank of America associate interested in innovative learning > > ideas and technologies? > > Check out our internal * *****GT&O Innovative Learning Blog****** &* ***** > > subscribe*. > > > > > > > > > > > > -- > Teoti Graphix, LLC > http://www.teotigraphix.com > > Teoti Graphix Blog > http://www.blog.teotigraphix.com > > You can find more by solving the problem then by 'asking the question'. >

