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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.07.2008, 07:19
DJ StrikeR вне форума Посмотреть профиль Отправить личное сообщение для DJ StrikeR Посетить домашнюю страницу DJ StrikeR Найти все сообщения от DJ StrikeR
  № 1  
Ответить с цитированием
DJ StrikeR

Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
По умолчанию Определение css стиля выбранного текста.

Собсна, есть css, примерно с такой штукой (например):
h1 {
color:#ff0000;
font-size:24;
}

подключаем его к текстовому полю, в котором есть хтмлный текст такого рода:
<h1>Title</h1> another text <b>blah blah</b>

При выделении слова "Title" или части его, нужно что бы вывелся стиль, в котором это слово заключено (в нашем случае, это h1).

Спасибо.
__________________
HighLight Studio

Старый 20.07.2008, 13:42
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Простого способа нет. А сама задача совсем не простая.
К примеру усложняем задачу, есть текст "<h1><big>Title</big></h1>" и соответсвенно есть два стиля h1, big. И теперь при выборе того же слова, должно выбраться уже два стиля. А что если будет такой тест "<h1>Ti<big>tle</big></h1>"?

Опознать сами теги легко, достаточно использовать это текст для создания xml, и сам флеш создаст древовидную структуру. Остается только найти необходимое слово (задача тоже не из простых, взять хотя бы мой второй пример текст, где слово разбито над две части) и поднимаясь по дереву вверх, собрать все теги в которые слово вложено.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 21.07.2008 в 01:57.
Старый 21.07.2008, 01:47
DJ StrikeR вне форума Посмотреть профиль Отправить личное сообщение для DJ StrikeR Посетить домашнюю страницу DJ StrikeR Найти все сообщения от DJ StrikeR
  № 3  
Ответить с цитированием
DJ StrikeR

Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
как всё сложно, особенно после приведённого тобою примера. А что если слово находится не просто в теге, а именно в <span>?
<span class="heading">Title</span>

облегчает ли это задачу?
__________________
HighLight Studio

Старый 21.07.2008, 02:20
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Простой пример, для одноуровневых тегов
Код:
var fmt:TextFormat = new TextFormat ();
fmt.size = 20;
var str:String = "<span class='a1'>Title</span> <span class='a2'>Title2</span> <span class='a3'>Title</span>";
var txt:TextField = this.createTextField ("txt", 0, 100, 100, 0, 0);
txt.html = true;
txt.border = true;
txt.autoSize = true;
txt.type = "input";
txt.setNewTextFormat (fmt);
txt.htmlText = str;
txt.onMouseUp = function () {
	var p:Number = Selection.getCaretIndex ();
	if (p > 0) {
		getClass (str, this.text, p);
	}
};
function getClass (html:String, text:String, p:Number) {
	var xml:XML = new XML (html);
	xml.ignoreWhite = true;
	var node:XMLNode = xml;
	//trace (node)
	var str:String = '';
	for (var i:Number = 0; i < node.childNodes.length; i++) {
		var nodeA:XMLNode = node.childNodes[i];
		if (nodeA.nodeType == 1) {
			str += nodeA.firstChild.nodeValue;
		} else {
			str += nodeA.nodeValue;
		}
		if (str.length >= p) {
			trace ("Tag : " + nodeA.attributes["class"]);
			break;
		}
	}
}
Mouse.addListener (txt);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 22.07.2008, 03:10
DJ StrikeR вне форума Посмотреть профиль Отправить личное сообщение для DJ StrikeR Посетить домашнюю страницу DJ StrikeR Найти все сообщения от DJ StrikeR
  № 5  
Ответить с цитированием
DJ StrikeR

Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
большое спасибо. Теперь буду изучать твой пример.
__________________
HighLight Studio

Старый 01.08.2008, 22:59
DJ StrikeR вне форума Посмотреть профиль Отправить личное сообщение для DJ StrikeR Посетить домашнюю страницу DJ StrikeR Найти все сообщения от DJ StrikeR
  № 6  
Ответить с цитированием
DJ StrikeR

Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
разобравшись в примере, за который ещё раз спасибо, напросился следующий вопрос. Как применить стиль к выброннуму тексту?
__________________
HighLight Studio

Старый 02.08.2008, 14:41
flash33 вне форума Посмотреть профиль Отправить личное сообщение для flash33 Найти все сообщения от flash33
  № 7  
Ответить с цитированием
flash33
 
Аватар для flash33

Регистрация: Nov 2005
Сообщений: 1,155
setTextFormat()
А вообще то F1

Старый 02.08.2008, 18:09
DJ StrikeR вне форума Посмотреть профиль Отправить личное сообщение для DJ StrikeR Посетить домашнюю страницу DJ StrikeR Найти все сообщения от DJ StrikeR
  № 8  
Ответить с цитированием
DJ StrikeR

Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
setTextFormat() - эт не совсем то. Если брать в расчёт пример iNils'а, то:
к слову Title применён стиль a1, каким бы образом изменить его на a2, например? Или же наоброт, добавить какой-нить текст, со стилем a1.
_txt.htmlText += "<span class='a1'>Mega text</span>" не спасает, т.е. само слово Mega text появляется, но стиль к нему не присоеденён.
__________________
HighLight Studio

Старый 02.08.2008, 19:01
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
import TextField.StyleSheet;
var tf:TextField = this.createTextField("tf", 0, 0, 0, 300, 300);
var css:StyleSheet = new StyleSheet();
css.parseCSS(".a1{color:#ffff00}.a2{color:#00ffff}");
tf.styleSheet = css;
tf.html = true;
tf.htmlText = "<span class=\"a1\">This is class a1</span>";
tf.htmlText += "<span class=\"a2\">This is class a2</span>";
У меня работает...
__________________
Hell is the possibility of sanity

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

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

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


 


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


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