Flex :: Get Label Height After Setting Text Property?
Jun 17, 2011
I'm looping through a recordset, and for each item I create at runtime a spark Label and set the text property from a field of the recordset. The labels must have a fixed width and some text goes multiline. I want to arrange the label vertically so I need to know the height of the label so I can place the next label properly, but when I try to read this property, after the labels is added through the addElement mehtod, it returns 0.
Setting the text property of a flex DateField makes the selectedDate property of that DateField go to null.I need to set the text property so that I can use a particular format (DD-MMM-YYYY).
I'm trying to convert an MXML component to an ActionScript Class. The component consists of a Form with a TextInput, TextArea, and two buttons - Save and Cancel, and a Validator for the TextInput, and other logic to handle events that occur. This component is currently extended by several other components. Now, in the MXML component binding the TextInput text property to a property in an Object was very easy: <mx:TextInput text="{_itemToEdit.name}" />
But in ActionScript, I'm creating the TextInput and setting the text property before the Object is set, and the TextInput is not being updated: public var itemToEdit:Object = {}; private var nameInput:TextInput = new TextInput(); public function MyClass() { nameInput.text = itemToEdit.name; }
How can I make sure that the TextInput text property is bound to the specified property in the Object?
I am using the combocheck example from the following site: [URL]
It's a very useful component and works very well.
Now, I need to set the text property of this combo box upon application startup with certain values (which are defined dynamically according to some criteria). The problem is that although I have no problem setting the text property of the combo box at other times of the application run, setting the property at startup seems to have no effect unfortunately.
For example, I want to set the text property of the combobox to "Bob" (which is one of the items in the dataprovider for the combobox) and the "set text" method is called on the combo box. Performing a step-through shows that the "set text" method is receiving the correct value item but not setting the _text property.
I have tried not doing anything until "ApplicationComplete" but no joy there either.
Here is the code (a combination of the code from the URL above and some other changes to it). However, as I've stated above, the codes does work. The problem is that it doesn't work at the application startup. Whenever an event is fired and setComboText is called as a result, the text of the combo box is set correctly.
private function onComboChecked(event:ComboCheckEvent):void { var obj:Object=event.obj; var index:int=selectedItems.getItemIndex(obj);
Once the product summary label is loaded I would like to call my method setLabel to set the value of the label text. This should be really easy but cas the parameters of the method are "e: Event" I haven't been able to do "setLabel()" or "setLabel(e: Event)" and addEventListener doesn't seem to work either.
public function drawProductSummaryLabel() : void { // Create a holder that will contain the footer label. var productInfoHolder : Sprite = new Sprite(); // Add the holder to the stage. addChild(productInfoHolder); [Code] .....
I have a tree component sitting in a divided box. I want to display '...' on the node labels if the divided box is resized. I have a custom itemrenderer and have been looking at the labelFunction property as well as trying various approaches in the custom itemrenderer. Not having any joy.
I am trying to determine the height of a Spark label that becomes multiline at runtime (due to width property being set), to account for text overflow.
(For a spark label named Title) I have tried:
Title.measureText(Title.text).height - this seems to return only the height of one line. (Due to differing screen-sizes and font rendering, I don't know in advance how many lines the text would overflow to...)
Title.height - this seems to return the height of the label size (before being re-adjusted at runtime for multiline text flow)
Both properties above return an unchanging value even when different text lengths/multiple lines long are filled in .text
Is there really no way to determine the exact height of an overflow Spark label?
I am admittedly not that familiar with the Flex API but after scouring the manual for quite some time, I am still unable to place this title label with the proper spacing.
I have an empty mc called "attachmcextra".Into this empty mc is attached another mc called "mcnote" that contains a texto box named "loadnote". So it`s path would be:_root.attachextra.mcnote.loadnoteThe following code is set to the mc "attachextra":
onClipEvent (load) { //set inicial position this.posY = 20;
I've been playing around with renderers the last few days for a mobile application. I'm creating a gridlike renderer that has columns that is light weight for a mobile app. It is a bit of a poor man's datagrid. The layout is fine. The question I have is controlling the height of each row in the list.
When measure() is called, I set the measuredHeight to: measuredHeight = getElementPreferredHeight(ld) + verticalPadding; Where vertical padding is: var verticalPadding:Number = getStyle("paddingTop") + getStyle("paddingBottom");
When I debug on the desktop, the measuredHeight is set to 12 and on the device (Motorola Atrix), it is set to 12. But when layoutContents is called, the unscaledHeight is a number much larger than my measuredHeight value (44 on the device, 66 when running on the desktop), resulting in more vertical whitespace surrounding each item than I care to have. How do I control that row height? I happen to be using a Datagroup for this particular example but in some playing around I did with just a simple list, I had the same issue. Somewhere the system is overriding my measuredHeight with some other value.
I have been given the seemingly simply task of resizing a Group container by setting width and height explicitly in response to user interaction. However, changing these values have no effect on the size of the container at all. Changing scaleX and/or scaleY will change the size of the container just fine, but this is not the behavior I am after.I have tried overriding updateDisplayList() to set a specific width and height, but this has not yielded the desired results.
Let's say I have about 100+ buttons. They all have the same label. Now I want to change the label for all with a click. I could give them IDs and then run a for loop, but I'm searching for a neater solution.[code]...
Short version:Setting a TextField's 'text' property seems to be quite slow. Any way to optimize this?Long version:For a video player I'm working on, I've rewriting a bunch of code I've written in the past and optimizing where I can, and I've noticed something a bit strange.I have a time readout (the typical "00:00 / 01:00" thing) that I'm updating every frame, and it seems to be gobbling up FPS (I'm using mrdoob's great little Stats class for monitoring).The thread to make the call is a bit heavy -- involving a dispatched custom event from the FLVPlayer class (with the current netStream.time as a property) onEnterFrame, which is passed up 2 parents and then back down via a function call -- but I've isolated each step along the way and everything is totally fine (running at or close to 30fps) right up until that very last call where I set the TextField.text property, which results in about a 10fps drop.
If I comment out the setting of TextField.text it runs great, but even if I set it to something arbitrary (like currentTime.text = "0") -- bypassing the reformatting math -- it just tanks.Anyway, anyone know if there's something I can do about this? I've considered using a Timer set to 100m instead of onEnterFrame, but I actually assumed the overhead would come from the dispatching of and listening to the event as well as the reformatting of the time, but *not* the very last step of setting the .text property, which is something I can't avoid whether I use a Timer or onEnterFrame.
Flex's text-editing controls (mx:TextField, mx:TextArea) offer functions for doing "stuff" with the selected text (selectionBeginIndex, selectionEndIndex, setSelection), but the text-displaying controls (mx:Label, mx:Text) don't seem to offer anything of the sort.After some tinkering, I've tried subclassing Label then writing functions which give access to the underlying TextField instance... But even then, setting the selection didn't work![code]So, is there any better way to access/change the text which is selected in mx:Label and mx:Text controls? Are there "better" controls to use?
Once I've set either the width or percentWidth property on a flex label, is there a way to reset the width to its default (i.e., the width of the text plus padding)? I'm using the label as a renderer. In some cases, I'd like it to automatically size to the text, and in other cases, I'd like it to be a percentage width of its container. Obviously, I could use two separate labels, one for each of the above cases, but I'm curious if it's possible to reset the label to its default behavior.
Maybe I'm googling for the wrong thing but I can't find anything on this.
How can I change the line height of a Label element in Flex?
I have two labels in a VBox and there is quite a lot of white space between them which I would like to reduce. There's no line height property and setting the height property causes overlap.
i am trying to make a simple form but when i place a textInput box after a Label it comes in the next line..how do i make the text input box be placed besides the Label?
I need to make a small app accessible to screen reader.I'm managing to make buttons accessible, but I would also like to have a section of text accessible by screen readers so that users can hear what the text says.
I can't seem to work out how to do this.. I've tried various text controls and set them as focusEnabled, tabEnabled, i've set the accessibility* attributes too but it never seems to work, I cannot tab to a text label and hear the content.
I'm honestly a little new to accessiblity in Flex so apologies if i'm missing something obvious.
I am trying to add an item to a list and have text display and have a different hidden value when i access selected items. I also need to do this with a loop.
Currently i am trying to add a label and set the labels id to my value. But the list just shows the ID and not the text.
var theLabel:Label = new Label(); theLabel.id = "123"; theLabel.text = "test"; lstLayerList_array.addItem(theLabel);
How can the text in a Label control (or a similar control) be wrapped in Flex 4 beta? In Flex 3 I could use the Text control but this is no longer available in Flex 4.
If I create a mx:Label or mx:Text control in Flex and then set an opaqueBackground to it, I notice that there is some space around the text.
I would like to be able to get rid of that space to where the text is completely flush to the top and bottom of the label. Changing the gap, padding, and leading didn't seem to help. Is it possible to get the text completely flush to the sides of a label?