Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.08.2009, 10:41
  № 1  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
По умолчанию Полное заполнение строки до переноса текста

Задача в том, чтобы переносить слова, которые не умещаются в строке не целиком, а только по кусочкам, которые не помещаются по ширине текстового поля. Например, если в слове «бесконечность» не помещается только последняя буква, то в первой строке должно остаться «бесконечност» а во вторую перенестись только «ь».

Старый 06.08.2009, 12:26
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS1/AS2:
var txt:TextField = createTextField("txt", getNextHighestDepth(), 10, 10, 40, 60);
txt.border = true;
txt.wordWrap = true;
txt.text = "Бесконечность";

Старый 06.08.2009, 14:03
  № 3  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Возможно я не точно сформулировал проблему.
Вариант с "wordWrap" работает только если слово одно, и просто некуда деваться, если будет например
Код AS1/AS2:
var txt:TextField = createTextField("txt", getNextHighestDepth(), 10, 10, 120, 60);
txt.border = true;
txt.wordWrap = true;
txt.text = "трали вали Бесконечность";
то будет простой перенос по словам, а не по ширине поля (((

Старый 06.08.2009, 20:10
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 4  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
Это извращение, но цель достигнута:
Код AS1/AS2:
var txt:TextField = createTextField("txt", getNextHighestDepth(), 10, 10, 120, 60);
var str:String = "трали вали Бесконечность";
var n:Number = 15;
txt.border = true;
txt.wordWrap = true;
for (var i = 0; i<str.length; i++) {
	txt.text += str.substr(i, 1);
	if (txt.textHeight>n) {
		txt.text = str.substr(0, i);
		txt.text += "\n";
		txt.text += str.substr(i, 1);
		n += n;
	}
}

Старый 06.08.2009, 21:09
  № 5  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Цитата:
Сообщение от Жень Шень Посмотреть сообщение
Привет! Это извращение, но цель достигнута:
Здоров.
Спасибо, идея ясна. Жаль если нелья решить по другому (а то текста много). Кстати, исправил несколько помарок:
Код AS1/AS2:
var txt:TextField = createTextField("txt", getNextHighestDepth(), 10, 10, 70, 95);
var str:String = "трали вали Бесконечность трали вали Бесконечность трали вали";
var n:Number = 15;
var d:Number = 0;	//d учитывает новые символы \n 
txt.border = true;
txt.wordWrap = true;
for (var i = 0; i<str.length; i++) {
	txt.text += str.substr(i, 1);
	if (txt.textHeight>n) {
		txt.text = txt.text.substr(0, i+d++);//а не из str
		txt.text += "\n";
		txt.text += str.substr(i, 1);
		n = txt.textHeight;
	}
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:57.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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