PDA

Просмотр полной версии : Ипорт css. Не все настройки отображаются


Tails
09.02.2011, 11:19
Не могу понять, почему настройки загруженного css действуют на линки, а на остальное нет. Почему?
На сцене одно текстовое поле, с именем myText, шрифты внедрены.

// .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");

myText.html = true;
myText.htmlText = "<b>bold text</b> bla bla bla // fff <br/> <a href='http://www.flasher.ru/forum/index.php'>ссылко</a><br/><p class='mainBody'>This is <span class='emphasis'>really exciting!</span></p>";
myText.styleSheet = my_styleSheet;

style.css
a:link
{
color: #C0A864;
text-decoration: underline;
}

a:hover
{
color: #C0A864;
text-decoration: none;
}

.mainBody {
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
}
.emphasis {
color: #666666;
font-style: italic;
text-decoration: underline;
}

трейс:
Styles loaded:
a:link
a:hover
.mainBody
.emphasis

И почему то фраза <b>bold text</b> вообще не отображаеться.
Проблема не в асинхронной загрузке.

Насчёт фразы <b>bold text</b>, в другой, абсолютно идентичной флешке, она отображаеться. Ничего не понимаю :wacko:

mooncar
09.02.2011, 11:31
Нужно внедрить шрифт - всегда нужно внедрять все нужные начертания - болд, италик, болд-италик, если они предполагаются к использованию. Ведь всё это разные шрифты с т.зр. системы. См. пример, теперь всё в порядке.

Для каждого типа начертания - техническое поле с нужными символами где-нибудь за областью видимости или в кадре, куда экспортируются класса при компиляции.

Tails
09.02.2011, 11:38
mooncar
Спасибо большое, вот оказываеться как внедрять жирный шрифт. Думал что если внедрить, то внедряються и жирные с италиками, оказываеться нет.

А что делать с <span class='emphasis'>, текст в этих тегах не становиться таким как задано в css. Уж как только не перепробовал. Главное пример из хелпа.

mooncar
09.02.2011, 12:22
Я делаю так - см. пример.
Последняя строка в тексте - это твой случай.

Tails
09.02.2011, 12:27
Можеш пересохранить для восьмёрки ? на работе нет cs3. Или на словах объяснить.

mooncar
09.02.2011, 12:31
Ок, см. отред. вложения.
А вообще вот:
var tfd:TextField = this.createTextField('my_txt', this.getNextHighestDepth(), 20, 20, 300, 400);
tfd.autoSize = true ;
tfd.selectable = false ;
tfd.wordWrap = true ;
tfd.html = true ;
tfd.multiline = true ;
tfd.embedFonts = true ;

var lv:LoadVars = new LoadVars();
lv.onData = lvOnData;

var css:TextField.StyleSheet = new TextField.StyleSheet();
css.onLoad = cssOnLoad;
css.load('styles.css');

function cssOnLoad(suc:Boolean)
{
if (suc)
{
tfd.styleSheet = css;
lv.load('content.htm');
}
}

function lvOnData(src:String)
{
if (src)
{
tfd.htmlText = src;
}
}

Tails
09.02.2011, 14:34
Вау. Точно два дня просидиш пока додумаешся до такова, то что надо, спс !
И поисковики будут видеть, совсем замечательно.

mooncar
09.02.2011, 15:11
Пожалуйста. Насчет поисковиков не углядел связи.

Tails
09.02.2011, 15:16
Поисковики будут эти штмлки индексировать. У некоторых из них веть по моему проблемы с индексацией текстов во флшешэ, особенно задаваемого скриптом. У яндекса например.

mooncar
09.02.2011, 15:19
Так в динамическом текстовом поле у флешки это уже не html-ки будут. Там же нет ни доктайпов, ничего. А только формальное оформление тегами.
Хотя...