Форум 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=214709)

Godwarlock 10.11.2017 21:03

Начало текста с установленной позиции
 
Привет всем. Не нашел в доках метода, который позволяет устанавливать начальный индекс, с которого начинается рисовка текста. Пример.
Есть 2 TextField, которые имеют разную ширину(постоянно разная, тут размеры по ширине не является константой), позиционируются во вью они последовательно. То есть
text1.x = 0;
text2.x = text1.width;
text1 и text2 по размеру, не могут выходит на вторую строку, то есть по вертикали у них всегда одно состояние. Суть в том, что мне надо добавить text3, таким образом, чтобы он шел после text1 и text2, то есть получается такая конструкция.
text1.x = 0;
text2.x = text1.width;
text3.x = text2.width;
Все бы да ничего, но проблема в том, что text3 многострочный по вертикали. Поэтому следующая строка, также будет начинаться с text2.width. Но по факту, новая строка должна быть в 0 координатах, как text1.x. Единственный способ, который мне пришел в голову, это позиционировать text3.x = 0; Но в таком случае, он будет лежать поверх text1,text2. Собственно вопрос в том, как стартовать текст с позиции, которая начинается после text2.width? Если это сделать, тогда следующий перенос строки правильно будет отображаться с 0 координат. Какие есть варианты решения?

undefined 10.11.2017 22:13

измерять ширину пробела и добавлять нужное их число перед текстом в text3

Godwarlock 10.11.2017 22:23

undefined Этот вариант в первую очередь реализовал, но мне он показался не очень красивым, думал может есть какие-то иные способы

ZackMercury 10.11.2017 22:57

А можно обрисовать ситуацию, в которой такое может понадобиться? Почему нельзя соединить все три текстовых поля в одно многострочное?

Wolsh 11.11.2017 00:02

Цитата:

Не нашел в доках метода, который позволяет устанавливать начальный индекс, с которого начинается рисовка текста.
TextFormat#indent

Код AS3:

var format:TextFormat = new TextFormat("Arial", 14);
format.indent = text2.x + text2.width;
text3.defaultTextFormat = format;


dark256 11.11.2017 00:55

Гениально!!! Уважуха и респекты :))))))))

Godwarlock 11.11.2017 02:53

Wolsh Как всегда, спасибо большое)


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

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