You have to do something like caret-1, and do some logic to detect if the
current line contains at least one character, and if it doesn't do a line++,
something along those lines.

My suspicion (which I just confirmed) was that the caret isn't actually
counted as a character in the textField, therefore when you do
getLineIndexOfChar(caret) caret is always 1 number higher than the array
getLineIndexOfChar is referencing to do the lookup.

Taka

On Fri, Apr 9, 2010 at 3:36 PM, Steven Sacks <[email protected]>wrote:

> I'm trying to get the line index at the caret index in a multiline input
> TextField, but it doesn't work.  Any ideas why?
>
>
> var tf:TextField; // this is my TextField
> tf.addEventListener(Event.CHANGE, onChange);
> function onChange(event:Event):void
> {
>    var caret:int = tf.caretIndex;
>    var line:int = tf.getLineIndexOfChar(caret);
>    // line is always traces -1
>    trace("caret=" + caret + ", line=" + line);
> }
>
> I typed this:
>
> abcd
> efgh
> cekjk
> wejk
> rhwejk
> rwehkj
> werhkj
> rehwk
> rewkj
> rehkj
> rehkj
> rewhkj
> rewhkjgiorehj
> fdkjs
> cdshkjfhkj
>
> Output is this:
>
> caret=0, line=-1
> caret=1, line=-1
> caret=2, line=-1
> caret=3, line=-1
> caret=4, line=-1
> caret=5, line=-1
> caret=6, line=-1
> caret=7, line=-1
> caret=8, line=-1
> caret=9, line=-1
> caret=10, line=-1
> caret=11, line=-1
> caret=12, line=-1
> caret=13, line=-1
> caret=14, line=-1
> caret=15, line=-1
> caret=16, line=-1
> caret=17, line=-1
> caret=18, line=-1
> caret=19, line=-1
> caret=20, line=-1
> caret=21, line=-1
> caret=22, line=-1
> caret=23, line=-1
> caret=24, line=-1
> caret=25, line=-1
> caret=26, line=-1
> caret=27, line=-1
> caret=28, line=-1
> caret=29, line=-1
> caret=30, line=-1
> caret=31, line=-1
> caret=32, line=-1
> caret=33, line=-1
> caret=34, line=-1
> caret=35, line=-1
> caret=36, line=-1
> caret=37, line=-1
> caret=38, line=-1
> caret=39, line=-1
> caret=40, line=-1
> caret=41, line=-1
> caret=42, line=-1
> caret=43, line=-1
> caret=44, line=-1
> caret=45, line=-1
> caret=46, line=-1
> caret=47, line=-1
> caret=48, line=-1
> caret=49, line=-1
> caret=50, line=-1
> caret=51, line=-1
> caret=52, line=-1
> caret=53, line=-1
> caret=54, line=-1
> caret=55, line=-1
> caret=56, line=-1
> caret=57, line=-1
> caret=58, line=-1
> caret=59, line=-1
> caret=60, line=-1
> caret=61, line=-1
> caret=62, line=-1
> caret=63, line=-1
> caret=64, line=-1
> caret=65, line=-1
> caret=66, line=-1
> caret=67, line=-1
> caret=68, line=-1
> caret=69, line=-1
> caret=70, line=-1
> caret=71, line=-1
> caret=72, line=-1
> caret=73, line=-1
> caret=74, line=-1
> caret=75, line=-1
> caret=76, line=-1
> caret=77, line=-1
> caret=78, line=-1
> caret=79, line=-1
> caret=80, line=-1
> caret=81, line=-1
> caret=82, line=-1
> caret=83, line=-1
> caret=84, line=-1
> caret=85, line=-1
> caret=86, line=-1
> caret=87, line=-1
> caret=88, line=-1
> caret=89, line=-1
> caret=90, line=-1
> caret=91, line=-1
> caret=92, line=-1
> caret=93, line=-1
> caret=94, line=-1
> caret=95, line=-1
> caret=96, line=-1
> caret=97, line=-1
> caret=98, line=-1
> caret=99, line=-1
> caret=100, line=-1
> caret=101, line=-1
> caret=102, line=-1
> caret=103, line=-1
> caret=104, line=-1
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to