Instead of using defaultTextFormat, try setting the text and then calling myText.setTextFormat(myFormat). Also calling addchild and then setting the formatting may make a difference but it's been a while since i looked at this stuff so it might not. If neither of these things help and i have some time later today I'll try to get into it.
- Daniel Freiman On Sun, Apr 6, 2008 at 10:25 PM, brianrusseldavis <[EMAIL PROTECTED]> wrote: > > This thread seems to be the only help out there for UITextField and > Formatting it via UITextFormat. The Adobe documentation fails to provide a > working example. So I guess I will pose the question here with a very very > simple example. Why is the following code wrong? The text displays but the > font size is not changing. > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > layout="absolute" > creationComplete="init()"> > <mx:Script> > <![CDATA[ > import mx.core.UITextFormat; > import mx.core.UITextField; > > private function init():void { > > var myText:UITextField = new UITextField; > var myFormat:UITextFormat = new > UITextFormat(this.systemManager); > myFormat.size = 30 > myText.defaultTextFormat = myFormat > myText.validateNow(); > myText.text = "Hello Hello Hello!" > addChild(myText); > } > > ]]> > </mx:Script> > </mx:Application> > > Brian Russel Davis > http://www.brickabracka.com/learning > b[at]brickabracka[dot]com > > ndkamp wrote: > > > >> Styles can override text formating when the parent of a UITextField is > >> invalidated, but only having some formatting overridden is a little > > weird. > > > > no, all of the formatting is overridden. > > > >> Functionality for setting format based on style is in the > > UITextField class, > >> I think the function is validateNow() > > > > thanks dan, that pointed me to the right direction. I traced > > validateNow() in UITextField where the format is set using styles - > > overriding all of the formatting that might have been applied using > > UITextFormat. I did toggle styleChangedFlag to false and voilĂ - all > > the formatting using UITextFormat were applied. Now I have the choice > > to extend UITextFormat and to override validateNow() or just use > > Styles for all the formatting and forget about UITextFormat, which is > > probably the recommended way - just getting started with flex you see. > > > > thanks again, solved. > > > > --- In flexcoders@yahoogroups.com <flexcoders%40yahoogroups.com>, > "Daniel Freiman" <[EMAIL PROTECTED]> wrote: > >> > >> Styles can override text formating when the parent of a UITextField is > >> invalidated, but only having some formatting overridden is a little > > weird. > >> Functionality for setting format based on style is in the > > UITextField class, > >> I think the function is validateNow(), but I not 100% certain about > > that. > >> For future reference, I asked about font type because embeding fonts > >> incorrectly could account for the described behavior (as I originally > >> understood it), and the rendering engine for device fonts (in very > > few and > >> specific cases) also has its own quirks. > >> > >> - Dan Freiman > >> > >> On Feb 4, 2008 10:53 AM, ndkamp <[EMAIL PROTECTED]> wrote: > >> > >> > ok, I found that if i wrap the textField in a sprite and add this in > >> > createChildren, then formatting will be applied correctly: > >> > > >> > var wrapper:Sprite = new Sprite(); > >> > wrapper.addChild(txt); > >> > this.addChild(wrapper); > >> > > >> > Well, i'm not really comfortable with this but I think I need to look > >> > closer at styles, since formats seem to get overriden when a > TextField > >> > is add directly to the component...? > >> > > >> > > >> > --- In flexcoders@yahoogroups.com > >> > <flexcoders%40yahoogroups.com><flexcoders% > 40yahoogroups.com>, > > "ndkamp" > >> > <ndkamp@> wrote: > >> > > > >> > > dan, thanks for your answer. I'm using device and/or embedded > fonts, > >> > > but right here I don't really care about the fonts. I'm just > puzzled > >> > > why the formatting doesn't seem to work for me. I'm using > > UITextFormat, > >> > > because of the options it gives me with anti-aliasing and > > measuring. A > >> > > I tried using TextFormat but that wont help. I did not look at > > styling > >> > > and skinning, so I'm not sure if the formats get overriden by > styles > >> > > in a later stage by the framework. > >> > > > >> > > > >> > > --- In flexcoders@yahoogroups.com > >> > > <flexcoders%40yahoogroups.com><flexcoders% > 40yahoogroups.com>, > >> > "Daniel Freiman" <FreimanCQ@> wrote: > >> > > > > >> > > > Are you using embeded or device fonts? Also, is there a reason > >> > you are > >> > > > using UITextFormat instead of TextFormat? Even when using with a > >> > > > UITextField, 99% of the time using UITextFormat instead of > >> > TextFormat is > >> > > > unnecessary and makes thing more complicated. > >> > > > > >> > > > - Dan Freiman > >> > > > > >> > > > On Feb 4, 2008 9:22 AM, ndkamp <ndkamp@> wrote: > >> > > > > >> > > > > Thanks for your answer. I know the text and orange background > >> > > are ok, > >> > > > > but the formats won't show. Are you really getting bold > > text, what > >> > > > > about the size and color? what if you add: > >> > > > > > >> > > > > format.italic = true, > >> > > > > format.underline = true; > >> > > > > format.font = "Georgia"; > >> > > > > > >> > > > > Do they show? can't get the formats to work. Im using flex beat > >> > 3 btw. > >> > > > > thanks. > >> > > > > > >> > > > > --- In flexcoders@yahoogroups.com<flexcoders%40yahoogroups.com> > > <flexcoders%40yahoogroups.com><flexcoders%40yahoogroups.com>, " > >> > > > > shrikant.patil" <gt_shrikant@> > >> > > > > > >> > > > > wrote: > >> > > > > > > >> > > > > > > >> > > > > > hi, > >> > > > > > > >> > > > > > i have tested u r file.... i got a orange backgrounded, > > vardana, > >> > > > > bold text > >> > > > > > saying that : The quick brown Fox... > >> > > > > > > >> > > > > > i hope it is working fine... > >> > > > > > > >> > > > > > > >> > > > > > ndkamp wrote: > >> > > > > > > > >> > > > > > > I try to apply UITextFormat to an UITextField in a custom > >> > > component > >> > > > > > > but the new format won't show. what am i doing wrong? > >> > > > > > > > >> > > > > > > package tests.components > >> > > > > > > { > >> > > > > > > import flash.text.TextLineMetrics; > >> > > > > > > import mx.core.UIComponent; > >> > > > > > > import mx.core.UITextField; > >> > > > > > > import mx.core.UITextFormat; > >> > > > > > > > >> > > > > > > public class TestCustomComponent extends UIComponent > >> > > > > > > { > >> > > > > > > private var txt:UITextField; > >> > > > > > > > >> > > > > > > public function TestCustomComponent() > >> > > > > > > { > >> > > > > > > super(); > >> > > > > > > } > >> > > > > > > > >> > > > > > > /* > >> > > > > > > * Create the TextField add some TextFormat and add it to > >> > > > > > > * the displayList. > >> > > > > > > */ > >> > > > > > > override protected function createChildren():void { > >> > > > > > > super.createChildren(); > >> > > > > > > > >> > > > > > > //Use TextFormat and apply some formats > >> > > > > > > var format:UITextFormat = new > > UITextFormat(this.systemManager); > >> > > > > > > format.font = "Verdana"; > >> > > > > > > format.bold = true; > >> > > > > > > format.color = 0x804020; > >> > > > > > > format.size = 20; > >> > > > > > > > >> > > > > > > //The TextField that should be formated > >> > > > > > > txt = new UITextField(); > >> > > > > > > > >> > > > > > > //The documentation says TextFormat won't be applied > >> > > > > > > //when a styleSheet is in use, naive approach to so set > > this to > >> > > > > null > >> > > > > > > //is this enough? > >> > > > > > > txt.styleSheet = null; > >> > > > > > > txt.styleName = null; > >> > > > > > > > >> > > > > > > //Apply the TextFormat for defaults and all current Text > >> > > > > > > txt.defaultTextFormat = format; > >> > > > > > > txt.text = "The quick brown Fox..."; > >> > > > > > > this.addChild(txt); > >> > > > > > > > >> > > > > > > } > >> > > > > > > > >> > > > > > > /* > >> > > > > > > * Sets the measures to the width of the text plus some > > offset > >> > > > > > > */ > >> > > > > > > override protected function measure():void { > >> > > > > > > super.measure(); > >> > > > > > > var metrics:TextLineMetrics = txt.getLineMetrics(0); > >> > > > > > > this.measuredWidth = this.measuredMinWidth = > > metrics.width + 20; > >> > > > > > > this.measuredHeight = this.measuredMinHeight = > >> > metrics.height + 2; > >> > > > > > > } > >> > > > > > > > >> > > > > > > /* > >> > > > > > > * Add a rounded Rectangle at the back of the TextField > >> > > > > > > */ > >> > > > > > > override protected function > >> > > updateDisplayList(unscaledWidth:Number, > >> > > > > > > unscaledHeight:Number):void { > >> > > > > > > super.updateDisplayList(unscaledWidth, unscaledHeight); > >> > > > > > > this.graphics.beginFill(0xff8800, 1); > >> > > > > > > this.graphics.drawRoundRect(0, 0, unscaledWidth, > >> > > > > unscaledHeight, 10); > >> > > > > > > this.graphics.endFill(); > >> > > > > > > txt.setActualSize(unscaledWidth, unscaledHeight); > >> > > > > > > } > >> > > > > > > } > >> > > > > > > } > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > -- > >> > > > > > View this message in context: > >> > > > > > >> > > > > > >> > > > >> > > >> > > > > http://www.nabble.com/Fail-to-apply-UITextFormat-to-UITextField-in-custom-Component-tp15266357p15267393.html > >> > > > > > Sent from the FlexCoders mailing list archive at Nabble.com. > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > > >> > > >> > > > > > > > > > > -- > View this message in context: > http://www.nabble.com/Fail-to-apply-UITextFormat-to-UITextField-in-custom-Component-tp15266357p16532604.html > Sent from the FlexCoders mailing list archive at Nabble.com. > > >