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

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

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

Регистрация: Feb 2012
Сообщений: 5
Question TextField.htmlText() StyleSheet()

Доброго времени суток уважаемые ProФессионалы.
есть примерно вот такой HTML :
Код:
<p style="color:#123; font-size:16pt; text-align:center;">текст текст ...</p>
<p style="color:#456; font-size:12pt; text-align:justify;">текст текст ...</p>
...
как сделать не изменяя HTML код, что бы стили в тегах сработали в ActionScript 3.0 текстовом поле, если такого возможно ?
заранее Спасибо.

Старый 08.11.2012, 20:18
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 2  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Можно если парсить ваш html, вырезать значения аттрибута style каждого параграфа, и делать из них строковой css вроде
Код:
p.class_1{font-size:16pt; text-align:center;}
p.class_2{font-size:12pt; text-align:justify;}
и вместо этого задавать каждому объекту у которого есть style - по индивидуальному классу (ссответственно первому параграфу - class_1, второму - class_2), а потом запихнуть этот html и задать этот css вашему текст полю. Но, конечно таким образом у вас получится избыточный css, и сам по себе метод через одно место
Естественно лучше писать отдельно css и потом задавать его вашему текстовому полю, как тут

Старый 09.11.2012, 03:50
tima8484 вне форума Посмотреть профиль Отправить личное сообщение для tima8484 Найти все сообщения от tima8484
  № 3  
Ответить с цитированием
tima8484

Регистрация: Feb 2012
Сообщений: 5
Спасибо большое, дошло )))
хороший форум

Старый 09.11.2012, 11:43
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 4  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
Код AS3:
var markup:XML = new <TextFlow xmlns='http://ns.adobe.com/textLayout/2008' />;
markup.appendChild(
    <p style="color:#123; font-size:16pt; text-align:center;">текст текст ...</p>
    <p style="color:#456; font-size:12pt; text-align:justify;">текст текст ...</p>
);
textArea.textFlow = TextFlowUtil.importFromXML(markup);
это вариант для текст ареа

Старый 09.11.2012, 15:07
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 5  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Парсинг
InlineCSS.as
Код AS3:
package  
{
	import flash.text.StyleSheet;
	/**
	 * ...
	 * @author wolsh
	 */
	public class InlineCSS 
	{
		private static const START_BRACE:RegExp = /^['"]/;
		private static const END_BRACE:RegExp = /['"]$/;
		private static const CSS_INLINE:RegExp = /<[\s]*([^>\s]*)[\s]*(style[\s]*=[\s]*((["'])[^"']*["']))[*]*>/gi;
 
		private var _html:String;
		private var _css:StyleSheet;
 
		public function InlineCSS(html:String = null) 
		{
			if(html != null) parse(html);
		}
 
		public function parse(html:String):Boolean
		{
			if (html == "") return false;
			if (!CSS_INLINE.test(html)) 
			{
				return false;
			}
			CSS_INLINE.lastIndex = 0;
			_html = html;
			_css = new StyleSheet();
			var cssText:String = "";
			var count:uint = 0;
			var result:Object = CSS_INLINE.exec(html);
			while (result != null) 
			{
				//// Parse inline style to StyleSheet CSS class
				var cssClassName:String = "class_" + count;
				var selectorName:String = "." + cssClassName;
				cssText += "\n" + selectorName + " " + result[3].replace(START_BRACE, "{").replace(END_BRACE, "}");
				//// Replace HTML inline declaration with class declaration
				var quote:String = result[4];
				var classDec:String = "class=" + quote + cssClassName + quote;
				var pattern:RegExp = new RegExp(result[2], "ig");
				_html = _html.replace(pattern, classDec);
				count ++;
				result = CSS_INLINE.exec(html);
			}
			_css.parseCSS(cssText);
			return true;
		}
 
		/*      RESULT DATA GETTERS                                                                      */
		public function get html():String 
		{
			return _html;
		}
 
		public function get css():StyleSheet 
		{
			return _css;
		}
	}
 
}
Применение:
Код AS3:
var cssSeparator:InlineCSS = new InlineCSS();
var html:String = '<p style="color:#FF0000; font-family:Arial, Trebuchet MS; font-size:24pt; text-align:center;">текст текст ...</p><p style = "color:#00FF00; font-size:12pt; text-align:justify; text-decoration:underline">текст текст ...</p>';
cssSeparator.parse(html);
_txt.styleSheet = cssSeparator.css;
_txt.htmlText = cssSeparator.html;
__________________
Reality.getBounds(this);

Старый 10.11.2012, 00:07
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 6  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
удивительно что на форуме по флешу, нету подсветки синтаксиса для as3... ну т.е. она как-бы есть но красный шрифт на сером фоне но это просто п****ц (редактор без табуляции и блокировка ссылок на дропбокс можно охарактеризовать этим же термином)

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

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

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


 


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


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