Try calling traceArea.validateNow() after setting the text.
Here is some background about this...
Flex relies heavily on "invalidation": you set a property but it doesn't
take effect until later. That allows you, for example, to set a bunch of
properties and have a component only redraw once, instead of redrawing
after each property is changed.
There are three invalidation APIs on a UIComponent
invalidateProperties();
invalidateSize();
invalidateDisplayList();
and most property setters call one or more of these. For example, the
setter for the 'text' property of a TextArea calls
invalidateProperties() and invalidateDisplayList().
These APIs push the component onto various queues that the LayoutManager
maintains.
When the Flash Player is about to render the tree of DisplayObjects onto
the screen, we "validate" the components in these queues by calling
three "validation" APIs, which bring the component up-to-date:
validateProperties() -> commitProperties()
validateSize() -> measure()
validateDisplayList() -> updateDisplayList()
The call to commitProperties() pushes the text into the underlying Flash
TextField.
You can cause these three methods to be called prematurely (i.e., before
the player is about to render) by calling validateNow() on the
component.
- Gordon
-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Brian Lesser
Sent: Wednesday, February 01, 2006 9:24 PM
To: [email protected]
Subject: Re: [flexcoders] Re: Scrolling a TextArea to the bottom?
Thanks Mac,
You know, I just assumed it would work in Flex. In Flash I used to be
able to call redraw() right after setting the vPosition property and it
would work ok. I don't suppose there is a simple one liner that does the
job in Flex??
Yours truly,
-Brian
vardpenguin wrote:
>You're doing it correctly, the problem is that when you set the
>vPosition, the 'msg' string has not been fully loaded into the
>textArea yet.
>
>You need to do some sort of check to make sure the textArea content
>change has been completed, or wait a few moments before you set
vPosition.
>
>-Mac
>
>
>--- In [email protected], Brian Lesser <[EMAIL PROTECTED]> wrote:
>
>
>>Possibly really dumb question but shouldn't this scroll a TextArea to
>>the bottom:
>>
>>public function writeln(msg:String):void{
>> traceArea.text += msg + "\n";
>> traceArea.vPosition = traceArea.maxVPosition;
>>}
>>
>>Where traceArea is a TextArea.
>>
>>It doesn't seem to work for me in Flex Beta 1.
>>
>>Yours truly,
>>-Brian
>>
>>
>>
>
>
>
>
>
>
>--
>Flexcoders Mailing List
>FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
>Search Archives:
http://www.mail-archive.com/flexcoders%40yahoogroups.com
>Yahoo! Groups Links
>
>
>
>
>
>
>
>
>
--
______________________________________________________________________
Brian Lesser
Assistant Director, Teaching and Technology Support
Computing and Communications Services
Ryerson University
350 Victoria St.
Toronto, Ontario Phone: (416) 979-5000 ext. 6835
M5B 2K3 Fax: (416) 979-5220
Office: AB48D E-mail: [EMAIL PROTECTED]
(Enter through LB66) Web: http://www.ryerson.ca/~blesser
______________________________________________________________________
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives:
http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/flexcoders/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/