Change var sprite:Sprite = new Sprite();
to var uiComponent:UIComponent = new UIComponent(); Flex is heavily biased towards UIComponents: they support instantiation from MXML descriptors, invalidation, measurement, layout, focus management, drag management, etc., etc. Sprite supports none of these; it is a low-level Flash class on which we build UIComponent. Sprites are light-weight, but that's because they lack most of the capabilities that Flex is designed to offer. By the way, is there some reason why you're creating a Shape inside to draw on? You could just draw on the graphics of the Sprite or UIComponent, and that would be more efficient because it wouldn't involve creating an additional DisplayObject. - Gordon -----Original Message----- From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of sufibaba Sent: Thursday, March 02, 2006 3:26 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: visual children must implement mx.core.IUIComponent Thanks Gordon, That worked. One other question regarding Sprite Drag and Drop. Situation: Have a box drawn by the Shape Class which is in a Sprite. I have the following code: -------- Draw Rectangle ------------------------------------------ private function draw (name:String) { if (w > 0 && h > 0) { var sprite:Sprite = new Sprite(); sprite.name = name; trace("name= " + name); addChild(sprite); var child:Shape = new Shape(); child.graphics.beginFill(0xffffff); child.graphics.lineStyle(.5, 0x000000); child.graphics.drawRect(0, 0, w, h); child.graphics.endFill(); sprite.addChild(child); sprite.addEventListener(MouseEvent.MOUSE_DOWN, dragObject); } } ----------- dragObject ----------------------------------------------- private function dragObject(event:MouseEvent) { if (event.target.name == "obj"){ var dragInitiator:UIComponent=UIComponent(event.currentTarget); var ds:DragSource = new DragSource(); ds.addData("name","format"); var canvasProxy:Sprite = new Sprite(); canvasProxy.width=30; canvasProxy.height=30; DragManager.doDrag(dragInitiator, ds, event); } } ---------------------------------------------------------------- When I try to drag this object, I get the following Error: Type Coercion failed: cannot convert flash.display::[EMAIL PROTECTED] to mx.core.UIComponent If I don't cast the sprite to the UIComponent, I still get the same error. It seems that the DragManager likes UIComponent types. What would be a solution do you think. Cheers, Tim --- In flexcoders@yahoogroups.com, "Gordon Smith" <[EMAIL PROTECTED]> wrote: > > Make ImageViewer extend UIComponent instead of Sprite. In order to do > stuff like automatic layout, Flex containers expect their content > children to be UIComponents. > > - Gordon > > > -----Original Message----- > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On > Behalf Of sufibaba > Sent: Thursday, March 02, 2006 11:11 AM > To: flexcoders@yahoogroups.com > Subject: [flexcoders] visual children must implement > mx.core.IUIComponent > > Hi All, > > I have the following: > > 1. ImageViewer.as > 2. main.xml > > in ImageViewer.as, I have this class definition: > > public class ImageViewer extends Sprite { > public funtion ImageViewer(){ > // code > } > // other functions and code > } > > > in main.xml, I am calling: <ImageViewer/> > > The error I am getting is: > --------------------------------------------------------------------- > component declaration are now allowed in here.(Note: visual children > must implement mx.core.IUIComponent) > --------------------------------------------------------------------- > Does anone know what the problem might be. > > Any help is appreciated, > > Cheers, > > Tim > > > > > > > -- > Flexcoders Mailing List > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > Search Archives: > http://www.mail-archive.com/flexcoders%40yahoogroups.com > Yahoo! Groups Links > -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/