Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Многоточие в текстовом поле (http://www.flasher.ru/forum/showthread.php?t=157731)

XBEEN 10.06.2011 00:11

Пробывал заюзать метод getCharIndexAtPoint(x:Number, y:Number):int, но как-то не очень получается. Если б как-то вычислить реальную точку на срезе.

Wolsh 10.06.2011 00:17

Есть же getCharIndexAtPoint ()
опоздал)))

Добавлено через 5 минут
Код AS3:

function ellipsis():void
{
    _txt.text = _text;
    if (_txt.textWidth > (_txt.width - 4))
    {
        var lastVisual:int = _txt.getCharIndexAtPoint(_txt.width-4, 5);
        _txt.text = _text.substr(0, lastVisual - 3) + "...";
    }
}


XBEEN 10.06.2011 00:30

Цитата:

Сообщение от Wolsh (Сообщение 1002547)
Есть же getCharIndexAtPoint ()
опоздал)))

Добавлено через 5 минут
Код AS3:

function ellipsis():void
{
    _txt.text = _text;
    if (_txt.textWidth > (_txt.width - 4))
    {
        var lastVisual:int = _txt.getCharIndexAtPoint(_txt.width-4, 5);
        _txt.text = _text.substr(0, lastVisual - 3) + "...";
    }
}


Надо попробывать, но с первого раза не получилось getCharIndexAtPoint возвращал -1. Интересно аргументы x и y относительно родителя нужно указывать, т.е. с учетом текущих координат текстового поля?

Wolsh 10.06.2011 00:33

Код AS3:

var lastVisual:int = _txt.getCharIndexAtPoint(_txt.x + _txt.width-4, _txt.y + 5);


rs7 10.06.2011 23:23

Цитата:

Сообщение от udaaff (Сообщение 1002544)
Если логически рассудить, то длину на немоноширном шрифте никак не рассчитать. Поэтому других вариантов не вижу.

Как это не рассчитать?)

Класс TextField, метод getCharBoundaries
Код AS3:

getCharBoundaries(charIndex:int):Rectangle
//Возвращает прямоугольник, который является ограничительным блоком символа.



Часовой пояс GMT +4, время: 02:48.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.