PDA

Просмотр полной версии : XML, CSS и переформатирование на onRollOver


Что такое хорошо?
20.07.2010, 01:51
Как, используя CSS-форматирование, переформатировать текст на onRollOver?
С однотонным текстом всё получается, а как быть в случае, когда строки должны быть разного цвета?

Сейчас ХМЛ-нода выглядит так:
<title><![CDATA[<p class='txt_blk'>ВИДЕОРОЛИК С НАЗВАНИЕМ<br>и еще немного информации</p>]]></title>

А необходимый результат на onRollOver мог бы выглядеть так:
<title><![CDATA[<p class='txt_ylw'>ВИДЕОРОЛИК С НАЗВАНИЕМ<br><p class='txt_wh'>и еще немного информации</p>]]></title>

http://s001.***********/i196/1007/7b/9eafc5623f18.png
(на рисунке нижний item в состоянии onRollOver)

rainbowrussia
20.07.2010, 03:52
<font color="#FFFF00">Text</font><br><font color="#00FF00">Text</font>
?

Что такое хорошо?
20.07.2010, 10:32
у меня, по сути, так и сделано (см. выше)
не получается придумать как записать 2 форматирования для одного и того же текста и менять их на роллОвер

В случае, когда текст на роллОвер нужен однотонный, я делаю так:
- обычное состояние текста форматируется из ЦСС (как в примере выше)
- онРоллОвер форматирую в мувике

mc.onRollOver = function() {
this.txtpole.htmlText = "<p class='ylw'>"+String(_t._parent.id)+"</p>";
};

А как в этом случае?
Нужна подсказка.

rainbowrussia
20.07.2010, 13:57
у меня, по сути, так и сделано (см. выше)
Попробуйте именно так, с <font>, у меня другие варианты всегда вызывали непонятки и проблемы.

Что такое хорошо?
20.07.2010, 14:04
как это записать? В том смысле, что 1 текст и 2 разных состояния для него.

bbexp
20.07.2010, 14:14
знаешь ка чего ты сделай...

Ты в XML в CDATA отдавай только сам текст,
а два разных правила форматирования вынеси в отдельные ноды или аттрибуты.
Вероятно форматирование не работает, потому что ты флеш путаешь пачкой стилей, и он решает пользоваться внутренним стилем.


<title color="#000000" overcolor="#FFFFFF" >Kavabalga</title>

rainbowrussia
21.07.2010, 00:18
как это записать? В том смысле, что 1 текст и 2 разных состояния для него.

Примерно так:


var text1 = "text1";
var text2 = "text2";

txt.html = true;

mc._alpha = 0;

mc.onRollOver = function () {
txt.htmlText = '<font color="#FF0000">' + text1 + '</font><br><font color="#FFFF00">' + text2 + '</font>';
}

mc.onRollOut = function () {
txt.htmlText = '<font color="#0000FF">' + text1 + '<br>' + text2 + '</font>';
}

mc.onRollOut();


где txt - динамик текст поле, mc - прямоугольник _над_ текстом для ловли ролловера, ну или иначе ловите, как у вас сейчас.

in4core
21.07.2010, 13:36
В xml давать CDATA ? А нафига! Есть все для людей. А именно сторонние CSS файлы.
из хелпа :

import TextField.StyleSheet;
var my_styleSheet:StyleSheet = new StyleSheet();
my_styleSheet.onLoad = function(success:Boolean) {
if (success) {
trace("Styles loaded:");
var styles_array:Array = my_styleSheet.getStyleNames();
trace(styles_array.join(newline));
} else {
trace("Error loading CSS");
}
};
my_styleSheet.load("styles.css");


Ну а дальше че нить в виде
TextField.prototype.setFormat = function(tf) { tf.embedfonts = true; ..... }

Что такое хорошо?
21.07.2010, 16:01
я с CSS и делаю + По теме разобрался.
Спасибо всем БОЛЬШОЕ

xml
<title color="black" activecolor="ylw">ВИДЕОРОЛИК С НАЗВАНИЕМ</title>
<brief color="black" activecolor="white">Государственный Эрмитаж</brief>

as
textpole.htmlText = "<p class='"+xf.childNodes[this.id].childNodes[0].attributes.activecolor+"'>"+xf.childNodes[this.id].childNodes[0].firstChild.nodeValue+"<br><p class='"+xf.childNodes[this.id].childNodes[1].attributes.activecolor+"'>"+xf.childNodes[this.id].childNodes[1].firstChild.nodeValue+"</p>";

in4core
21.07.2010, 16:07
Вы не понимаете видимо , что у нас совершенно разные скрипты и работают они подругому и отличие их так же.... делайте ламерски, вопросв нет

Что такое хорошо?
21.07.2010, 16:09
Вы не понимаете видимо , что у нас совершенно разные скрипты и работают они подругому и отличие их так же.... делайте ламерски, вопросв нет

:eek: Вроде делаю так же как Вы. Ну, может просто не скопировал код загрузчика CSS из хелпа. Готов учиться.
Что не так?

in4core
21.07.2010, 16:17
Ну вопервых XML нужен тока для вывода текста, формат делается уже во флеше. Ты загружаешь сторонний файл с классами CSS . Подключаешь этот CSS для всех файлодв во флеше ( не бойся меняться будет тока те поля которым добавили сет-стайл). И дальше через цикл выводим xml вида :

<node a="text_yellow" b="text_red" and so on />
<node a="text_yellow" x="text_green" and so on />
<node a="text_yellow" o="text_orange" and so on />
for example

потос для текст полей подключаем сет стайл типа :

if (xml.(...path...).attributes.a[i] != undefined) { setFormat(_root["some_filed"+i],style[i])}

Добавлено через 1 минуту
Там конечно кое какое несоответсвие того, что я написал. Но это не важно, если будете разбираться с этим то поймете о чем я

Что такое хорошо?
21.07.2010, 16:26
всё так и делаю (см. выше XML без СДАТА)
а setFormat-ом напрямую не пользуюсь, так как использую библиотеку шрифтов.
var _thext:TextField;
_thext.html = _thext.embedFonts = true;
_thext.styleSheet = styleObj;
_thext.htmlText = "<p class='"+wh+"'>................

in4core
21.07.2010, 17:00
аааааааааа ........вы издеваетесь )))

_thext.html = _thext.embedFonts = true; это че ?))) какой еще html ?)))


ну а по теме :

_thext.htmlText = "<p class='"+wh+"'>

Мой метод был :

_thext[i].htmlText = someStyle;

А вы прописываете все вручную. вот в чем разница

Что такое хорошо?
21.07.2010, 17:17
...это че ?))) какой еще html ?)))
)) осталось из версии с СДАТА (тупо копи-пэйст)

_thext[i].htmlText = someStyle;
так у меня _thext уже укатанна циклом. И wh тоже.
А вот над someStyle надо думать ))

bbexp
21.07.2010, 17:52
Мужчины, остановитесь!
Вы говорите об одном и том же.

in4core, _thext.html = _thext.embedFonts = true; говорит всего лишь о том, что текстовые поля динамические, им в этой строчке предписывается рендериться как хтмл и использовать внедренные шрифты. Ничего страшного.

Автор топика и так грузит внешний цсс, суть его пассов руками в том, что он в XML просто присывает в аттрибутах какой именно класс из этого стайлшита использовать для простого текста, а какой для возбужденного ))


Дружно Выпейте Мохито и наполнитесь позитивной силой ))