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/

