ActionScript 3.0 :: Consistent Value From Top Margin / Padding Of TextField To Top Of Actual Text
Jan 11, 2011
How can I get a consistent value from the top margin/padding of a TextField to the top of the actual text.According to the docs (link below), the text field has a 2px gutter on all sides. But there seems to be another gutter that seems to increase / decrease with the size of the text.Using times new roman for a default font size, I can get the baseline of some random text using what we know: I know that there is a 2px gutter all the way around the text field and we can get the ascent through textfield.getLineMetrics(0).ascent. If I draw a line at that position I'll get a line about 2 px below the actual text. Works fine.Now if I want to draw another line at the TOP of the text it's a guessing game. At 36pt text it's 8px from the top of the textfield. At 72pt text it's more like 12px from the top, and at 144pt text it's more like 20px from the top.URL...
When dealing with TextFields, Flash always adds some sort of margin/padding around the outside of your TextField, so that if you set the X and Y of your TextField to 0, then your text would still sit about +4 pixels in.
If you create a TextField and set 'border=true', you will see what i mean - the border is drawn right on the edge of the TextField, but the actual text itself sits within a padding of about 4 pixels.
Is there any way at all to get the text of a TextField to sit hard-up against the border?
i created my own Button which simply extends from Sprite.Its able to show 3 different text fading in and out using a timer.In my draw function i first draw a rectangle with the Sprites graphics object representing the background of the button.I added a function to set the button width. This property is used to draw the rectangle. I know that the sprites's size is updated after the rectangle drawing. But for some reason the sprite's width is always more than what i have set via my "setButtonWidth" function.Now i have a simple sprite acting as a button having a graphics.drawRectangle part drawing a simple rect. with lets say 500px width. But when i trace the width of that button it is always about 10% more. Where are these 10% coming from?I read about calling validateNow(). But this is only for Labels, or Checkboxes. For some reason i cannot access the library for Label. This must work somehow with TextFields. But how?
// this function is part of MyButtonClass.as file function drawButton() {
I'm made an Item class which extends the Sprite class, the Item class basically has a few checkmarks & labels at the moment.
Then what I try to do is run through a for loop of items and create Item classes that I want to place one after each other on the y-axis, so I'm reading the Item.height property to find the y of the next Item in the list.
The problem is for some reason there is always an extra 75 pixels added to the Sprite height at the bottom, no matter how many checkmarks and labels are in each Item class ( varying the height of the Item class ).
Any idea why this is being added and how it can be removed?I'm having trouble figuring this out, I tried dynamicly calculating and setting the Item.height property but when I do that the Sprite is simply cropped.
I'm trying to trace the width of the actual text of a dynamic textfield (called 'label'). i know this should be
code: trace(label.textWidth);
however, all I get is an 'undefined' message in the output box. Whereas, if I trace(label.length) instead, then it counts the number of digits in the text field. I thought label.textWidth would work? I want to find the length of the text in pixels basically...
I am trying to figure out why some letters (like the norwegian Å (Å)) are cutted out in the middle of the top "o":
My code is this: var titleFormat:TextFormat = new TextFormat(); titleFormat.size = textSize; // this is embedded font, and exported for action script, declared titleFormat.font = myFontBold.fontName; titleFormat.bold = true; [Code] .....
So, I have tried different things like setting height hardcoded and bigger than text, but top us cutted again, I have tried with css but no success. Why the letter is not showed fully and why if I zoom in the swf (2-3 zoom ins) it shows up normal (and what i try to achieve) like this: I think it has to do with the topMargin, but unfortunately I didn't find something like that in as3 documentation.
I have a textinput component on my stage with an instance name of "myTxt" I would like to add some left padding to the contents of this textfield. I've tried:
myTxt.setStyle("textPadding", 5); But it adds top (and I assume bottom and right) padding in addition to the left padding. What is the best way to simply add left padding to the textfield's contents?
My first post, yay! Ok, here's what's been bugging me for a long time. When dealing with TextFields, Flash always adds some sort of margin/padding around the outside of your TextField, so that if you set the X and Y of your TextField to 0, then your text would still sit about +4 pixels in.
If you create a TextField and set 'border=true', you will see what i mean - the border is drawn right on the edge of the TextField, but the actual text itself sits within a padding of about 4 pixels.
Is there any way at all to get the text of a TextField to sit hard-up against the border?
I'm trying to apply a padding to the top of my TextField instance in my Flash application, much like you would using CSS.
I haven't found any way to do this. You'd expect it to be a part of the TextFormat or StyleSheet classes, but it's in neither. I sort of found a workaround by adding htmlText to the top of the TextField with <br /><br /> in it, but adding entire lines of white space to the top isn't desirable.
I've got some text that is crashing my text box border, and I was wondering if there was any way to set a top margin? I saw values for left/right, but nothing that seemed to indicate I could bump the text down a bit...
I am using Flash CS4 at work: newly created type sits flush (top edge) within the text box. If I take the same file home and open in my newly purchased Flash CS4, the text now shows up with 10 or so pixels between the top of the letters and the top edge of the text box (like padding in CSS objects). This is a problem because it means all my text is now positioned lower on the stage than I intended and I can't take projects to and from work and home with any consistency. This is the same font, same file, same program version, which would suggest a preferences setting, but I can't find anywhere to modify text box appearance.
I am using a TextField in Flash CS2, because I need to know the width of the actual text for positioning purposes. However from some odd reason it doesn't always work when the browser is Google Chrome.
I have a application that works by calling text from XML into flash. The only problem I seem to have now is that some of the text is in french so some of the characters don't get displayed. When I go to the embed option and select all glyphs it makes the font go bold and fuzzy.Is there anyway to display the characters though code or without effecting the actual look of the text?
how can i make a movieclip and a textfield to resize to the content of the text in the textfield? I mean, if I have a textfield with 3 letters font name XXX and then the content of the field change, how can i resize te textfield so the text dont autoadjust to the 3 letter space?
Does anyone know, why a textfield may become white when loading text + JPGs into it? Sometimes it happens to me, sometimes not. I haven't figured out why. If you have any clues... The AS I'm using:
In C++ I Can Read The MAC Address Of The NIC and Use It To Generate A Unique Identifier For Each Computer That Interacts With My Web Service. Even If The User Deletes Their Cookies, And Temporary Internet Files, Reformats Their HardDrive And Installs A Different Version Of Windows, That Computer Still Generates The Same Unique ID.How Can I Create Such A Unique Key Using Flex Or Air? The Number Has To Be Either Hardware Based Or Similarly Tamper Resistant.
I am creating a minesweeper copy, and i've bumbed into a problem, which I and a fellow programmer finds quite strange.
My code is set up like this: Initializer.as (Just a temp. initializer.(duh)). This creates a new gameGrid, and passes x and y number of blocks, as well as the size.
GameGrid.as (movieclip) This is the board. This controls the whole game, which are filled with:
Block.as (movieclip) Represents a block. Has a size parameter in its contructor, which are the exact same size as the one in GamGrids contructor. For non-mines, a textfield is added as a child. When a flag is set, the block adds a child:
Flag.as (movieclip) Same size in its contstructor.
In the library (in Flash CS5), every movieclip has the same width (60px).
Now, the problem is that the text, bombs and flags are only in the same size as the blocks when i set the size to '57'. If it's lower than 57, the bombs etc. are even lower. At ~30, they're half the size. At 130, its almost the double.
Here's the classes (with some comments): Initializer
Code: package { import flash.display.DisplayObjectContainer; public class Initializer { private var stg:DisplayObjectContainer;
This may be a weird question to ask. Below I have a simple php/mysql query which pulls some simple data.I've figured out how to display it all in Flash. f someone updates the database, adding a few new rows in the table, can Flash refresh on it's own so the new records show in the flash movie?
[Code].....
Or does flash have more than one way to reload all the data again?
I'm building a class that reads data from an xml file. The constructor takes the xml path and opens the file. It adds an event listener for the loading completion. But if constructor looks like
Code: var xmlLoader:URLLoader = new URLLoader(); var xmlData:XML = new XML(); xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); xmlLoader.load(new URLRequest("..."));
it will (probably) end-up when xml is not loaded yet. Are there any ways to stop the constructor execution until the xmlLoaded function has finished?
Im having trouble getting my flash movie to playback at a consistent/good rate in Internet Explorer. Its not terrible out of IE but it looks much better out of Firefox and Safari. Im publishing my swf at Auto Low out of Flash and setting the swf to Auto Low on my html page out of Dreamweaver, my .flv is about 8 Megs, runs 1:25 with a kbps of 700 and the audio is set to 128. Is there something glaringly wrong with my settings, something I can trim in order to get it to playback correctly in IE? Someone suggested upping my buffer time but I can't seem to locate the panel in Flash CS4, anyone know where this tab lives?
How to get my audio scrubber to work, make the volume consistent whether you stop the song and restart or move to the previous of next song. Also, I just finally figured out how to add columns to my XML playlist by using a Datagrid but I do not know how to hook the playlist up to the XML in order to call the particular song that is clicked on.
I started this project working as a tutorial, but the tutorial only gave the basic XML audio jukebox set up, since then, I've been scouring forums, google, tutorials on youtube, etc. But I find that the code is so "method" specific, meaning that everything hinges on your particular way you decide to get to the end result.
1)Volume slider works, but the volume keeps reverting back to the default volume everytime the song is stopped and re-started or a new song is advanced to with the Previous or Next button - The volume needs to stay consistent at whatever volume level that the slider is left on.
2)PlayList needs to be functional. Right now, you can advance through the play list by using the jukebox previous and next buttons, but the playlist should have the ability to highlight whatever song is playing from the list as well as play songs independently when any song in the list is clicked. (I was able to do this successfully with the tutorial version which used a list component, but the only problem with that is that List components only allow 1 column - so I had to change to a datagrid to allot for my 3 columns)
3)Scrubber - I would like the scrubber to do what a scrubber does for each song when the song is being played.
Basically what I'm trying to do is keep the enemies spawning at the same rate. I get it to work kind of but when I toggle the speed there is a gap between spawns. I figure this is because the timer resets to the new delay. I'm working on a tower defense game and I'm trying to get the fast forward button to work.
Code: import flash.display.*; import flash.events.*; import flash.utils.*; var enemyTimer:Timer; var enemySpawnRate:Number = 800; [Code] .....