![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
|
Собсна, есть css, примерно с такой штукой (например):
h1 { color:#ff0000; font-size:24; } подключаем его к текстовому полю, в котором есть хтмлный текст такого рода: <h1>Title</h1> another text <b>blah blah</b> При выделении слова "Title" или части его, нужно что бы вывелся стиль, в котором это слово заключено (в нашем случае, это h1). Спасибо.
__________________
HighLight Studio |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Простого способа нет. А сама задача совсем не простая.
К примеру усложняем задачу, есть текст "<h1><big>Title</big></h1>" и соответсвенно есть два стиля h1, big. И теперь при выборе того же слова, должно выбраться уже два стиля. А что если будет такой тест "<h1>Ti<big>tle</big></h1>"? Опознать сами теги легко, достаточно использовать это текст для создания xml, и сам флеш создаст древовидную структуру. Остается только найти необходимое слово (задача тоже не из простых, взять хотя бы мой второй пример текст, где слово разбито над две части) и поднимаясь по дереву вверх, собрать все теги в которые слово вложено. Последний раз редактировалось iNils; 21.07.2008 в 01:57. |
|
|||||
|
Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
|
как всё сложно, особенно после приведённого тобою примера. А что если слово находится не просто в теге, а именно в <span>?
<span class="heading">Title</span> облегчает ли это задачу?
__________________
HighLight Studio |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 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);
|
|
|||||
|
Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
|
большое спасибо. Теперь буду изучать твой пример.
__________________
HighLight Studio |
|
|||||
|
Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
|
разобравшись в примере, за который ещё раз спасибо, напросился следующий вопрос. Как применить стиль к выброннуму тексту?
__________________
HighLight Studio |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,155
|
setTextFormat()
А вообще то F1 |
|
|||||
|
Регистрация: Jan 2004
Адрес: @ Drum Arena
Сообщений: 146
|
setTextFormat() - эт не совсем то. Если брать в расчёт пример iNils'а, то:
к слову Title применён стиль a1, каким бы образом изменить его на a2, например? Или же наоброт, добавить какой-нить текст, со стилем a1. _txt.htmlText += "<span class='a1'>Mega text</span>" не спасает, т.е. само слово Mega text появляется, но стиль к нему не присоеденён.
__________________
HighLight Studio |
|
|||||
|
Modus ponens
|
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, время: 00:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|