Flex :: Spark - How To Determine Size For UI Elements
Feb 13, 2012
In general, I haven't yet found a definitive way to get Flex and Spark containers to size themselves relative to their children. I have searched for good documentation for this concept many times but have yet to find anything that sufficiently explains the concepts. A simple example of something I often want to do is to draw a border uniformly around a set of controls. The goal here would be to have all UI elements to size themselves automatically.
I would want the Labels to size themselves based on the text property, and the HGroup should be as big as needed to contain labels and BorderContainer should only just contain that HGroup. Now the more complicated example that I am working on now. I have a class that extends the BorderContainer. Within the class I create an HGroup with 5 Labels as children of the HGroup. Then the HGroup is added as a child of the ExtendedBorderContainer (using addElement() method).
Then the new class is used in the application as:
<mx:ViewStack>
<s:NavigatorContent>
<my:ExtendedBorderContainer />
</s:NavigatorContent>
<!-- more NavigatorContents here -->
</mx:ViewStack>
I have tried various [max|min]height/width combinations and I can not get the desired layout, which is very tight borders around elements without extraneous space starting from the deepest Label children all the way up to the NavigatorContent.
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.
Is there a way to take a compiled SWF file and figure out how much of it's size is used by code and how much is assets (images, etc)? I'd like to see if I can get my Flex SWF smaller but I'm unsure what's taking up the most space.
Each system - whether it is win, mac, or linux - displays (desktop) icons at a user selected size (e.g., 16x16, 32x32, 48x48, etc.)How can I find which size is being used by the local system from within Flex or ActionScript3?
Suppose I have a (Spark) label. What is the best way to find the length of the text in it? I looked at the myLable.measureText("bla bla") method but it says: To measure text in Spark components, get the measurements of a spark.components.Label or spark.components.RichTextfter looking around I cannot find what this is refering to. I tried myLabel.measureWidth() but this does not return anything usefull (it frequently returns zero). Note: I am explicitly setting the width like this:<s:Lable width="{globalWidthVariable"} .../>If the text overflows I would like to increse the globalWidthVariable to the size of the text.
I have a list of fonts obtained via Font.enumerateFonts() and I want to display them all as 12 pixels tall. The problem is that I cannot simply set the point size because this can vary in actual pixel size for each font. So basically I want to determine what the correct point size is for a font in order to make it exactly 12 pixels tall. Because I'm doing this with a potentially large list I'm looking for an efficient method to do this.
I discovered this while doing some programmatic panel resizing:Components in a spark Panel will still be visible when their location is outside the physical Panel boundaries. This does not happen with the mx Panel.unning Flex 4.1 on Windows 7I tried putting mx and spark controls in the spark Panel, and they both appear outside of the boundaries. Note this doesn't happen with the mx Panel. What am I missing to make the spark behave like the mxSample Code:
I'm looking to add a couple of buttons to the title bar of a Spark Panel or Spark TitleWindow. Is this possible to do without making the panel from scratch?
But I would like it play back at a particular size like 800 x 600 so the rest of the screen is just a border of the documents colour. Can this AS be adapted to do what I need?
I've skinned an hSlider's thumb with an image. But the image is pixelated, as though it's been forced to resize.It's just a pretty circle with a radius of 30 px.The other thing that happens is that instead of the new button being cleanly bisected by the track, it is just below the track, tangential to it. So now I have to reposition it by modifying its y value in SliderThumbSkin.mxml? And (presumably because its registration point is at upper left) when I slide it all the way to the right, it goes right off the end of the track until its left edge is at the track's right edge. This might also mess up calculations for the hSlider.value property.
You'd think you could just apply the skin and it would replace the button, but seems that both its position and size are being wrongly manipulated.Is the thumb's size automatically reset or resized somewhere? Is there a way to do this correctly and cleanly?
I am trying to create a fullscreen chat program using Flash AS3, and so far, everything is going well, except for when the window is resized, the whole thing is proportionally resized.I would like it to ONLY resize the chat text area, when the resize is done vertically, keeping the controls the same height consistently, also I would like the buttons for sending the chat to maintain their size, with the input box increasing in width when the size is increased horizontally.Obviously the SWF resizing will be done by JavaScript/jQuery .onResize() and thus I will be able to set a mimimum width and height for the swf, maintaining usability.
I'm tring to make the swf full screen. I published it with scale of 100%.I wish to have some movie clips like text or buttons in fixed size.first, I don't get Event.RESIZE when the stage changed its size second, I try to set their size , but their size is changed according to the stage size and do not stay in the height width values
I have Flash 8. I created a Flash movie a number of years ago, probably in an early version of Flash. I use it on my website. I want to redesign my site and make the movie smaller from the standpoint of making the canvas/stage size smaller. I don't mean just compressing the flash movie to a smaller swf. Is there some quick way to do this without having to recreate the movie and put in smaller elements?
I have a problem positioning a Flash element inside a div tag. The problem is, that the flash element is changing it's size based on the user input. I need a way how I can dynamically get the actual size of the flash element, and to change the behavior of the div element the flash is integrated in. actually I want to place it in the middle of the div. right now I gave the flash element width and height of 100% but that way I can not center the element inside the div...
Is there anyway (with action scripting) when having a Flash Video set to Expand to 100% Width and Height to have certain elements within that video maintain their inherent size and not scale ?URL...Notice how the BG Scales, but the video in the center does not nor does the footer. Is this performed with CSS and using multiple DIVs with varying Z Indices.
I'm making a mockup for a client and I need to Load the .swf with the exact stage size so the graphic elements do not float outside the loaded movies stage area. [URL]Basic load code I'm using...
I want to create a panel (or any other component) inside a component that has a 5 pixel border on all sides, but scales fully when the window is resized. I know I can set width to "100%" to make it resize, but that gives me no borders. If I put it to "95%",I have borders, but they scale annoyingly. Also, that only works for borders on the right or lower bounds, and not to the left or upper sides.Is there a convenient way to do this without having to write tons of resize-code (in which case I will not bother and just accept bad rescale behaviour, as it is for a private pet project).
EDIT: I know that I can just overwrite the display handling and set the positions manually every frame. I wondered if there is a cheap way to do it in the mxml-structure, along these lines:
<mx:Panel> width="100%" height="100%" </mx:Panel>
Coming from C++ and Java, I am intrigued by the option of setting something to "95%" and let the library work out the details, instead of having to write many lines of code, just so my text-area always keeps a 5 pixel distance from the border, but scales with window width.If there is no easier way to do it than figuring out pixel sizes by hand and setting the coordinates.
I have three images and I want change the images size based on the scene size (default size is 1024x768). After each image has completely loaded I call bindableUtils.setter to set width/height when scene size changes but I don't know how to make a pointer or something like that. I'm using a public var img, but it only works with the last complete image.
Here is my code: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
Could you explain why a Flash Builder source folder - no larger than 2 MB - compiles into a SWF exceeding 15 MB with debugging turned off (exported release build)?
There is only 1 embedded image at about 93k - no other images. The application is not that complicated, basically calls are made to a MySQL db to display information, as well as store information. I have used drop shadows and borders, but all standard to Flash Builder. Some custom classes and one custom skin.
So when you hold your finger over a row in the items Scroller for more than a 30 seconds, the touchView becomes visible so does the dummyRow. The dummyRow gets populated to look like the row which you held your finger over.
So the touchView has the event handlers for moving your fingers and places the dummyRow where your finger is. The problem I am having is even though the touchView is reacting to my move events, the scroller still keeps reacting to my move events as well even though it's a sub layer. Because I started on the scroller it still keeps track!
How can I remove focus / tracking from the scroller?
I have a spark skinnable component which contains a datagroup with images. The datagroup is scrolled by hovering the mouse over it. Everything works fine except one thing: after I change the datagroup provider, I need to scroll down automatically. The problem is the images are not loaded immediately after I set the provider so (contentHeight - height) does not yet represent the actual maximum scrolling position. Is there an easy way of telling the datagroup to scroll down as its content loads? Because the workaround seems to be not so straightforward. This is the code for scrolling(thumbnailStrip is my datagroup):
I have created a style in which i am defining a font family.When i apply this style to label it reflects the font were as there is no change when it is applied to a spark button.I Tried various way to Apply font style but it doesn't work.Other properties work fine except font family. Even i tried creating skin class and set the font family style of label in it. While previewing the skin i can see the changes but when i apply it to buttonApproach 1