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

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

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

Регистрация: Feb 2007
Сообщений: 563
По умолчанию EmbedFont&CSS

Всем, привет, знаю что тема наверняка поднималась, но второй день сижу с этой проблемой и пока не могу ее решить и поиск не помогает.

Все дело в совместном применении embedFonts и styleSheet одно без другого работает, а вместе никак.
Сделал так - тф динамичный, создал кодом, прописал ему форматирование+styleSheet, текст загружается динамически из html, css тоже, фонт зашит в swf, при своместном примененении в разных вариантах очередности
-либо шрифт не эмбедиться
-либо пропадает форматирование css
-либо текст не отображается совсем

подскажите кто что знает плиз.

Код AS1/AS2:
this.createTextField("my_txt",this.getNextHighestDepth(),-408,-225,817,451);
 
var story:XML = new XML();
story.ignoreWhite = true;
story.load("text/about.html");
 
story.onLoad = function()
{
	var my_fmt:TextFormat = new TextFormat();
	my_fmt.size = 14;
	my_fmt.font = "myFont1";
	my_fmt.color = 0xffffff;
 
	var myStyle:TextField.StyleSheet = new TextField.StyleSheet();
	myStyle.load("common/style.css");
 
	myStyle.onLoad = function()
	{
		my_txt.styleSheet = myStyle;
 
		my_txt.autoSize = "center";
		my_txt.selectable = false;
		my_txt.wordWrap = true;
		my_txt.html = true;
		my_txt.multiline = true;
		my_txt.embedFonts = true;
		my_txt.htmlText = story;
		my_txt.setTextFormat(my_fmt);
 
	};
};

Старый 07.10.2010, 01:52
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
покажите структуру xml для story

Старый 07.10.2010, 02:00
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 3  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title>О Группе</title>
</head>

<body>
<p><text>.....dfvdfvfd....</text></p>

</body>

</html>
Добавлено через 9 часов 11 минут
хм как то странно - если в css прописать шрифт, соответственно во falsh embedFonts = false то все работает так как надо, но только если шрифты в системе устновлены.

Народ, кто нть знает способ форматирования со своим шрифтом?

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Ну вопервых, зачем вам создавать программно? Создайте поле вручную и все шрифты заэмбедить уже там, а не кодом. Во вторых если ты используешь embedFonts = true; ты вкурсе вообще что нужно Добавлять Font в библиотеку и давать ему инстанс?

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

Регистрация: Feb 2007
Сообщений: 563
конечно шрифт находиться в библиотеке, а програмно для большей гибкости.
Да нет же - если одна из строчек выключена -
Код AS1/AS2:
my_txt.embedFonts = true;
...
my_txt.styleSheet = myStyle;
то все работает, не работает только вместе - ощущение что одно перекрывает другое, думаю попробовать вот это добавить -
Код AS1/AS2:
myStyle.setStyle("embedFonts", "true")
вместо -
Код AS1/AS2:
my_txt.embedFonts = true;

Старый 07.10.2010, 15:17
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Не используйте одновременно и TextFormat и CSS.
Задавайте имя шрифта, цвет и размер с помощью CSS.
И строку my_txt.styleSheet = myStyle; попробуйте перенести в конец, после того, как текст зададите.
То есть вместо my_txt.setTextFormat(my_fmt);


А embedFonts обязательно.

Добавлено через 5 минут
Я бы вообще вот так записал, исходя из событийной схемы:
Код AS1/AS2:
var myStyle:TextField.StyleSheet = new TextField.StyleSheet();
 
story.onLoad = function()
{
	my_txt.autoSize = "center";
	my_txt.selectable = false;
	my_txt.wordWrap = true;
	my_txt.html = true;
	my_txt.multiline = true;
	my_txt.embedFonts = true;
	my_txt.htmlText = story;
 
	myStyle.load("common/style.css");
};
 
myStyle.onLoad = function()
{
	my_txt.styleSheet = myStyle;
 
};
А еще правильнее загрузить таблицу стилей заранее, и все остальное делать, отталкиваясь именно от ее myStyle.onLoad.
Или, как вариант, если есть предгагрузчик, то логично все, в т.ч. и таблицу стилей загрузить в нем ( и вообще все что понадобится в дальнейшем).

PS. Надеюсь, вы внедрили все начертания - то есть отдельно нормальный, отдельно полужирный и все что надо у вас по CSS?
__________________
Идите первым!


Последний раз редактировалось mooncar; 07.10.2010 в 15:35.
Старый 07.10.2010, 17:58
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 7  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
mooncar, огромное спасибо, попробую вечером сделать))

Добавлено через 20 часов 48 минут
неа - ничего не получается, вообще ничего - любая попытка откоментить строку -
Код AS1/AS2:
my_txt.embedFonts = true;
и все - все остальное можно уже ничего не делать - текст не отображается, хоть раньше грузить css хоть позже - хоть чего переставляю не получается.

Старый 15.10.2010, 10:57
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 8  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
хм видимо это баг встраивания текста с русскими буквами((((

Старый 16.10.2010, 01:50
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 9  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Не знаю, о каком баге вы говорите, нет никаких багов.
В общем, правильно так - сперва загружаем CSS, задаем ее полю. Потом присваиваем полю текст.
Я сам давно это использовал, потому последовательность точно не упомнил.
А вот и пример.
Вложения
Тип файла: rar Внедрение шрифтов + CSS.rar (121.0 Кб, 53 просмотров)
__________________
Идите первым!


Последний раз редактировалось mooncar; 16.10.2010 в 02:18.
Старый 16.10.2010, 01:51
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вместо CSS можно использовать TextFormat.

В целом, при внедрении логика следующая:

1) "физически" внедряем шрифт в проект (см. текстовые поля в примере вверху). Все начертания, какие надо, с нужными наборами символов.
2) должны объяснить флешке, какой шрифт используем тут или там.
Это может быть сделано с помощью как CSS, так и TextFormat.
И тогда она задействует внедренный.

В примере в классе normal объявлена Tahoma. И поскольку этот шрифт есть среди внедренных (причем все начертания, которые требуются в тексте - нормальный, полужирный, наклонный), то весь текст под этим классом (То есть например <p class="normal">.....Текст....</p>) нормально выводится .

Использовать CSS гибче, чем TextFormat, потому как можем прямо тегами писать где какой класс использовать, а при TextFormat сложнее будет, если например, шрифт разный, то есть индексами назначать придется.
__________________
Идите первым!


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

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

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


 


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


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