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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.06.2008, 15:18
Toros Kae вне форума Посмотреть профиль Отправить личное сообщение для Toros Kae Найти все сообщения от Toros Kae
  № 1  
Ответить с цитированием
Toros Kae
 
Аватар для Toros Kae

Регистрация: Apr 2007
Сообщений: 7
The bomb! bold и italic самопроизвольно задаются в true

У меня программа организорванна следующим образом.
Информация о формате текста находиться в xml узле (там все сделанно по главам, для каждой главы может быть свое форматирование)
Код:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><doc><chapters><chapter name="Глава 1" id="1"><text profile="" leading="2" color2="16513770" color="15686748" italic="false" bold="false" size="20" font="Corbel"> ляляля</text></chapter></doc></chapters>
Далее идет специальная процедура при загрузке этих глав ,считывается инфа по форматированию и применяется к текстовому окну.
Код:
function profile_check():Void {
//задание формата
function make_format(format_source:XMLNode) {
my_fmt = chapter_text.getTextFormat();
my_fmt.font = format_source.attributes["font"];
my_fmt.size = format_source.attributes["size"];
my_fmt.bold = format_source.attributes["bold"];
my_fmt.italic = format_source.attributes["italic"];
my_fmt.color = format_source.attributes["color"];
my_fmt.leading = format_source.attributes["leading"];
chapter_text.setNewTextFormat(my_fmt);
chapter_text.setTextFormat(my_fmt);
chapter_text.backgroundColor=format_source.attributes["color2"];
}
//если текст не использует профиль
if(xml_book.firstChild.firstChild.childNodes[_global.chapter_num].firstChild.attributes["profile"] ==""){
var ch_node:XMLNode=xml_book.firstChild.firstChild.childNodes[_global.chapter_num].firstChild;
make_format(ch_node);
//тект использует профиль
} else iа (xml_book.firstChild.firstChild.childNodes[_global.chapter_num].firstChild.attributes["profile"] != "") {
profile_name = xml_book.firstChild.firstChild.childNodes[_global.chapter_num].firstChild.attributes["profile"];
//По имени профиля собираются его параметры из списка
var ch_nodes:Array = xml_book.firstChild.childNodes[1].childNodes;
for (var current_id:Number = 0; current_id<ch_nodes.length; current_id++) {
if (profile_name == ch_nodes[current_id].attributes["name"]) {
make_format(ch_nodes[current_id]);
break;
}
}
}
}
Проверяю. Bold и Italic неизменно становяться в true и не важно, что указанно в узле. переменная в узле точно false, делал и через перемнные boolean. жирный и италик становяться false только если прямо указать. и никак иначе.
Причем если сделать так
Код:
var var_bold =! format_source.attributes["bold"];
становится false.
пробовал через условия
Код:
var var_bold = format_source.attributes["bold"];
if (var_bold == false) {
my_fmt.bold = false;
} else if (var_bold == true) {
my_fmt.bold = true;
}
В этом случае, не проходит условие почему-то.
Я ничего не понимаю.Бьюсь который день, и не понимаю логику. остальной код проверял многократно, нигде не указано, что bold=true и все в этом роде.

Старый 05.06.2008, 15:32
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
в атрибуте приходит строка и сравнивать надо не с false, а с "false"

Старый 05.06.2008, 16:05
Toros Kae вне форума Посмотреть профиль Отправить личное сообщение для Toros Kae Найти все сообщения от Toros Kae
  № 3  
Ответить с цитированием
Toros Kae
 
Аватар для Toros Kae

Регистрация: Apr 2007
Сообщений: 7
Да-да. Точно. Как раз проверил ,работает. Но вообще ситуация странная..с условиями только и получается. А почему не хочет принимать значение узла.непонятно.
А есть какая нить функция преобразования в boolean строки?

Старый 05.06.2008, 16:22
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
родной нет, я такую в этих случаях пользую
Код:
function strToBool(str:String):Boolean
{
	return str.toLowerCase() == "true";
}
т.е. true будет только если атрибут задан как "true" или "TRUE"
во все остальных случаях, в том числе и если атрибута нет, будет false - для bold и т.п. в самый раз

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

Теги
bold , italic , textformat , формат текста
Опции темы
Опции просмотра

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

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


 


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


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