Posts tagged with “flash ide”
August 02, 09
Machines are looking for Michael Jackson
Today passes [my 5th year of living and working in the UK](http://www.flickr.com/photos/og2t/sets/72157621798561063/detail/)... feeling in sort of a nostalgic/festive mood, did some cool VJing last nite and decided to spend semi-hangovery afternoon doing some (softcore) flashcoding. I got some good feedback and suggestions (thanks you know who) to my recent [Terminator Salvation "machine vision" experiment](http://play.blog2t.net/terminator-salvation-realtime-machine-vision-as3/) and decided to explore that area a bit further. This time I've managed to add "the real face tracking" ported from OpenCV by Masakazu "Mash" Ohtsuka (with some great optimizations by Quasimondo) to my video processing framework (codename **HiSlope**) which should be hopefully released within a couple of weeks (still need to do some important/major refactoring). Follow me on [twitter.com/blog2t](http://twitter.com/blog2t) for updates. So I was looking for some perfect video to use for testing... couldn't think of anything really. Then suddenly the spirit of Michael Jackson (RIP) came to me and whispered into my ear: __"Black or white?"__ – and it was all clear then :) Enough words, **click the image to sing along**.
June 03, 09
Assassinating jumpy htmlText hyperlinks
**UPDATE:** Read this [great tutorial on styling the HTML text field](http://active.tutsplus.com/tutorials/design/master-html-formatted-text-in-flash/) I read quite recently that people are still [swearing Flash jumpy hyperlinks in htmlText with Anti-aliased for readability option turned on](http://blog.ickydime.com/2009/05/flash-htmltext-jumps-on-rollover-css.html). What are they talking about? – here's the example.TextField
wrapper class that automatically deals with the issue, additionally it also fixes another annoying bug – selectable code>TextField scrolls one line on text select – when you click and drag down the mouse while selecting the text, the content scrolls vertically! (and it shouldn't as the text height is the same as the box height, so there's nothing to scroll)
**The fixed TextField is presented in the right column – again, try rollover the links**.
__How does the fix work then?__
Basically, after setting the htmlText
property, store the height
of the TextField
, then set autoSize
to NONE
. That will lock it, so no no more jumping is happening. It is all done at one go by overriding htmlText
setter method.
override public function set htmlText(value:String):void
{
autoSize = TextFieldAutoSize.LEFT;
super.htmlText = value;
recordedHeight = height;
autoSize = TextFieldAutoSize.NONE;
// adding extra height will prevent "vertical scroll on text select" bug
// the extra height value should be just bigger than the default leading
height = recordedHeight + getTextFormat().leading + 1;
}
Additionally, we're adding TextField
default leading value plus 1 to the height there ([discovered by Luke Sturgeon](http://www.lukesturgeon.co.uk/lab/2009/06/fixed-vertical-scrolling-text-bug/)), it will prevent "vertical scroll on text select" bug described above.
__How should I apply this fix to my broken TextField?__
By creating a FixedTextField
instance instead, exactly the same way as you would instantiate an ordinary TextField
:
var textTF:FixedTextField = new FixedTextField();
Alternatively, you could **clone** an existing TextField
by referencing to it:
var textFieldFixed:FixedTextField = new FixedTextField(someOtherTextFieldToClonePropertiesFrom);
In fact, you can even **attach** the TextField
stored in the Flash IDE library (obviously wrapped up in a MovieClip
symbol) – I wrote a [separate blog post](/as3-textfield-cloning) on that matter.
Download zipped demo including the FixedTextField class.
01:30 PM
|
posts
|
22
Comments
|
Tags: as3, source, tips, bug, textfield, flash ide
A TextField called Dolly
I love Flash IDE. Especially the way you can stylise theTextField
– decide what glyphs to embed and what fonts to include, set line height (leading), kerning (letterSpacing), colours, etc. I really hate creating new TextFields from scratch, entirely in code.
__Using Library to store a TextField__
Unfortunately, we can't store a TextField
directly as a Flash IDE library symbol, so we have to wrap it up in a MovieClip
and reference to it as follows:
var textFieldNormal:TextField = new TextMC().textTF;
where TextMC
is the library MovieClip symbol containing a TextField
named textTF
.
__How to duplicate (clone) a TextField?__
You can't do it natively in AS3. But you can do some magic instead – clone all (excluding read-only) properties of another TextField.
var description:XML = describeType(referenceTextField);
for each (var item:XML in description.accessor)
{
// clone passed textfield properties that are not read only
if (item.@access != "readonly") targetTextField[item.@name] = referenceTextField[item.@name];
}
targetTextField.defaultTextFormat = referenceTextField.getTextFormat();
TextFormat
of the referenceTextField
won't be cloned with the loop above as it's not accessible via getter/setter/public methods. You have to clone it manually and this is what the last line does. __It's very handy when you want to change the default kerning (letterSpacing
) in Flash IDE and you want it to be preserved in your cloned text field.__
I wrote a FixedTextField class that does that ([plus fixes a couple of other TextField problems](/fixing-jumpy-htmltext-links/)) – download zipped demo including the class.
01:00 PM
|
posts
|
0
Comments
|
Tags: textfield, flash ide, as3, tips, source, debugging
March 12, 09