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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.05.2010, 13:43
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 1  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
По умолчанию разделить htmlText на несколько текстфилдов

У меня такая проблема: есть хтмл которым надо заполнить несколько текстовых полей. Текст разбивается на масив и по одному элементу вставляется. Как только одно поле заполняется, текст начинает заполнять следующее. Всё конечно же ок, одна проблема - текст html.... попробовал создать поле которому присвоил значение htmlText, текста который нужен, но тут возникли проблемы:

1 - переносы (br) нафиг игнорятся.
2 - если в начале поля текст был розовый, то он будет розовым до его конца.

Вот фрагмент кода:

Код AS3:
		private function _createCollumns():void {
 
			var appField:TextField = new TextField();
 
			_initCollumn(appField);
 
			appField.htmlText = _data;
 
			//addChild(appField);
 
			var arr:Array = appField.text.split(" ");
			var col:TextField = new TextField();
			col.x = _padding/2;
			_collumns.push(col);
			_initCollumn(col);
			addChild(col);
 
			_colWidth = maxWidth / 3;
 
			var nLines:uint;
 
			var appI:uint=0;
 
			for each(var word:String in arr) {
				var sI:uint = col.text.length;
 
				col.appendText(word + " ");
 
				var fI:uint = col.text.length;
 
				var f = appField.getTextFormat(Math.min(appI, appField.text.length), Math.min(appI += word.length + 1, appField.text.length));
 
				col.setTextFormat(f, sI, fI);
 
				//trace(sI, fI);
 
				var condition:Boolean = false;
 
				if (!nLines) {
					condition = col.textHeight > maxHeight;
				}else {
					condition = nLines < col.numLines;
				}
 
 
				if (condition) {
					if (!nLines) {
						nLines = col.numLines;
					}
 
					col.text = col.text.substring(0, col.text.length - word.length - 2);
					col = new TextField();
					_initCollumn(col);
					col.x = _colWidth * _collumns.length + _padding / 2;
					col.appendText(word + " ");
					col.setTextFormat(f);
					addChild(col);
					_collumns.push(col);
				}
 
 
			}
		}
 
		private function _initCollumn(col:TextField):void {
			var f:TextFormat= Global.TEXT_FORMAT;
 
			f.size = 14;
			f.align = TextFormatAlign.JUSTIFY;
			col.defaultTextFormat = f;
 
			col.antiAliasType = AntiAliasType.ADVANCED;
 
			col.embedFonts = true;
 
			col.textColor = 0xffffff;
 
			col.autoSize = "left";
 
			col.sharpness = 0;
			col.thickness = -200;
 
			col.width = maxWidth / 3 - _padding;
 
			col.cacheAsBitmap = true;
			SelectionColor.setFieldSelectionColor(col, 0xFFFFFF);
			col.multiline = true;
			col.wordWrap = true;
		}

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

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

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


 


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


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