Hi Gordon,
Thanks for the suggestion, even though I couldn't get it to work, I
really appreciate your taking the time to explain how things work. It's
good to know that stuff.
Here's what I tried that didn't work:
public function writeln(msg:String):void{
traceArea.text += msg + "\n";
traceArea.vPosition = traceArea.maxVPosition;
traceArea.validateNow();
}
Earlier Jesse suggested the line below but I have no idea (being new to
Flex) how to incorporate that into a function:
<mx:TextArea id="my_ta" change="my_ta.vPosition = my_ta.maxVPosition" />
Any ideas how I could get reliable scrolling to the bottom of a text area with
the least amount of code/complexity?
Yours truly,
-Brian
Gordon Smith wrote:
>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
<*> 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/