Now I'm really confused. How do I make a ball using standard Flex components ? Everything I've seen uses a sprite. Where can I find "complete Flex examples that use standard Flex components" ?
Gordon Smith wrote: > > Built in to the Flash Player are low-level flash.* classes such as > Sprite. The Flex framework libraries contains higher-level mx.* > classes such as UIComponent, Button, Container, VBox, etc. which add > many capabilities beyond those in the Player. > > The Flex framework was designed with the assumption that most > developers would be delighted with the greater capabilities of > the high-level classes and not have much interest in the low-level > ones, which are primitive by comparison. In hindsight, this was > wrongheaded. Many people like you want to mix the two -- generally > because the low-level classes can have greater performance or smaller > code size, or because you're bringing over code from the > Flash-not-Flex world -- and it isn't as easy as it should be to mix > them. I hope we can do better in a future release. > > You write AS3 code to use both flash.* and mx.* classes, and, once you > understand a few rules, you can use both sets of classes in a Flex > application. But it isn't completely trivial, so it's dangerous to > just take a simple Sprite-based class and expect it to "just work" in > Flex. > > The problem you're running into here is that Flex Containers such as > VBox assume that their children are high-level UIComponents rather > than just low-level Sprites. One reason is that containers do > automatic layout management, which requires code in the children to > report how big the child wants to be, etc. > > So currently you have to work around this assumption by doing things > like creating an intermediate UIComponent to parent the Sprite or > adding the Sprite to the Container as a "raw" child (see the > rawChildren property). > > If you're new to Flex, I suggest beginning with complete Flex examples > that use standard Flex components and postponing trying to use > Sprites-based classes. You'll make more progress, gain confidence, and > then be in a better position to understand how to take advantage of > Sprites later. > > Gordon Smith > Adobe Flex SDK Team > > ------------------------------------------------------------------------ > *From:* flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] > *On Behalf Of *rueter007 > *Sent:* Thursday, January 17, 2008 10:12 PM > *To:* flexcoders@yahoogroups.com > *Subject:* [flexcoders] Re: addchild > > you cannot add sprites directly that way. you can do the following. > > var ballParent: UIComponent = new UIComponent(); > ballParent.addChild(ball); > vbox.addChild(ballParent); > > and ofcourse, you have to set the width, height etc. > > - venkat > http://www.venkatj.com <http://www.venkatj.com> > > --- In flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com>, "[EMAIL PROTECTED]" <[EMAIL > PROTECTED]> wrote: > > > > This is the entire ball class > > package com.oreilly.programmingflex.states { > > > > > > import flash.display.Sprite; > > > > public class Ball extends Sprite { > > private var radius:Number; > > private var color:uint; > > > > public function Ball(radius:Number=40, color:uint=0xff0000) { > > this.radius = radius; > > this.color = color; > > init(); > > } > > public function init():void { > > graphics.beginFill(color); > > graphics.drawCircle(0, 0, radius); > > graphics.endFill(); > > > > } > > } > > > > > > } > > > > > > Sherif Abdou wrote: > > > it means that the ball is not a IUIcomponenet which it is required > for > > > it to be added on stage, show me a bit of the ball class code so i > can > > > know > > > > > > ----- Original Message ---- > > > From: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > > > Sent: Thursday, January 17, 2008 11:38:26 PM > > > Subject: Re: [flexcoders] addchild > > > > > > OK thanks. Now when I try to use addChild, I get this error. What does > > > it mean ? > > > myball=new Ball; > > > addChild(myball) ; > > > TypeError: Error #1034: Type Coercion failed: cannot convert > > > com.oreilly. programmingflex. states::Ball@ 5787299 to > > > mx.core.IUIComponen t. > > > at > > > mx.core::Container/http://www.adobe. com/2006/ flex/mx/internal > > > ::addingChild > <http://www.adobe.com/2006/flex/mx/internal::addingChild > <http://www.adobe.com/2006/flex/mx/internal::addingChild>>() > > > at mx.core::Container/ addChildAt( ) > > > at mx.core::Container/ addChild( ) > > > at Main/::initializeHa ndler() > > > at Main/___Application 1_initialize( ) > > > at > > > flash.events: :EventDispatcher /flash.events: EventDispatcher: > > > :dispatchEventFu nction() > > > at flash.events: :EventDispatcher /dispatchEvent( ) > > > at mx.core::UIComponen t/dispatchEvent( ) > > > at mx.core::UIComponen t/set processedDescriptor s() > > > at mx.core::Container/ createComponents FromDescriptors( ) > > > > > > Sherif Abdou wrote: > > > > addChild not addchild > > > > > > > > ----- Original Message ---- > > > > From: "[EMAIL PROTECTED] org <mailto:info1%40reenie.org>" > <[EMAIL PROTECTED] > > > org <mailto:info1%40reenie.org>> > > > > To: [EMAIL PROTECTED] ups.com > <mailto:flexcoders%40yahoogroups.com> > > > > Sent: Thursday, January 17, 2008 11:03:15 PM > > > > Subject: [flexcoders] addchild > > > > > > > > I have a ball class. I can make a ball. How do I add it to the > stage ? > > > > > > > > I have seem plenty of examples, and they use addchild. > > > > Every time I try to use addchild, I get this error: > > > > Error: Call to a possibly undefined method addChild. > > > > > > > > or if I try to attach it to an existing element > > > > such as <mx:VBox id="vbox"> > > > > vbox.addchild( ball); > > > > I get :Error: Access of undefined property vbox. > > > > > > > > So what can I put addchild on ? > > > > > > > > > > > > > > > > ------------ --------- --------- --------- --------- --------- - > > > > Never miss a thing. Make Yahoo your homepage. > > > > <http://us.rd. yahoo.com/ evt=51438/ *http://www. yahoo.com/ r/hs > > > <http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs > <http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs>>> > > > > > > > > > > > > > > > > > ---------------------------------------------------------- > > > Be a better friend, newshound, and know-it-all with Yahoo! Mobile. > Try > > > it now. > > > > <http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ%20 > > <http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ%20>> > > > > > > > > > > >