Thanks for the reply Abdul. However, if I remove the
FlexEvent.CREATION_COMPLETE listener, the checkboxes overlap each
other. Until I roll over them that is... once I roll over them they
each pop into the correct, non-overlapping position. I believe the
problem is that the textbox has not yet resized when INITIALIZE is
called. The behavior is virtually identical if I remove the INITIALIZE
listener, leaving only CREATION_COMPLETE; the items overlap until they
are rolled over. Very strange.

Any ideas?

Thanks,
Ben



--- In [email protected], "Abdul Qabiz" <[EMAIL PROTECTED]> wrote:
>
> I believe, you should use INITIALIZE in your case. I see, you are
setting
> measuredMinHeight in doStuff (..) method..
> 
> Initialize would dispatached before any layouting or measuring
happens (or
> before updateDisplayList (..) is invoked?)..
> 
> However, please check out..
> 
> -abdul
> 
> On 9/6/06, ben.clinkinbeard <[EMAIL PROTECTED]> wrote:
> >
> >   Hello, I have created a CheckBox whose label can accomodate
multiline
> > text by constructing a CheckBox subclass (mockingly) named
> > SuperCheckBox. I am adding a set of them to a VBox inside a loop, but
> > in order to get them properly spaced (not overlapping), I am having to
> > call both FlexEvent.INITIALIZE and FlexEvent.CREATION_COMPLETE. I know
> > I am doing something wrong and shouldn't have to call both, but can't
> > figure out which event is fired once the whole SuperCheckbox component
> > is done resizing its text box. Any help is appreciated; my code is
below.
> >
> > // in my Canvas
> > vb = VBox(addChild(new VBox()));
> > vb.setStyle("verticalGap", 20);
> > vb.addEventListener("newChildAdded", updateVBox);
> >
> > for(var i:int = 0; i < labelsArray.length; i++)
> > {
> > var cb:SuperCheckBox = new SuperCheckBox();
> > cb.label = labelsArray[i];
> > cb.width = 400;
> > vb.addChild(cb);
> > }
> >
> > private function updateVBox(event:Event):void
> > {
> > vb.invalidateDisplayList();
> > }
> >
> > // **** SuperCheckBox.as ***
> > package
> > {
> > import mx.controls.CheckBox;
> > import mx.events.FlexEvent;
> > import flash.text.TextFieldAutoSize;
> > import flash.events.Event;
> >
> > public class SuperCheckBox extends CheckBox
> > {
> > public function SuperCheckBox()
> > {
> > super();
> > addEventListener(FlexEvent.INITIALIZE, doStuff);
> > addEventListener(FlexEvent.CREATION_COMPLETE, doStuff);
> > }
> >
> > private function doStuff(event:Object):void
> > {
> > this.textField.wordWrap = true;
> > this.textField.autoSize = TextFieldAutoSize.LEFT;
> > this.textField.border = true;
> > measuredMinHeight = measuredHeight = this.textField.height;
> > dispatchEvent(new Event("newChildAdded", true));
> > }
> >
> > override protected function measure():void
> > {
> > super.measure();
> > measuredMinHeight = measuredHeight = this.textField.height;
> > }
> > }
> > }
> >
> > Thanks,
> > Ben
> >
> >  
> >
>







--
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/
 



Reply via email to