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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.04.2007, 00:36
romulko вне форума Посмотреть профиль Отправить личное сообщение для romulko Найти все сообщения от romulko
  № 1  
Ответить с цитированием
romulko
[+3 31.07.08]
 
Аватар для romulko

Регистрация: Jan 2006
Сообщений: 150
По умолчанию область видимости в функции onLoad

Добрый вечер, друзья.
Пожалуйста, помогите советом, что не так.
Суть - создаю календарь событий. Там будут 31 мувик (в зависимости от месяца – это будут мувики с текстом в середине, который обозначает номер дня) и 4 текстовых поля. Выгрузка текста из xml-дерева в текстовые поля при нажатии кнопки, обозначающая день месяца уже сделал.

Теперь надо сделать так, чтобы кнопка изменяла цвет номера дня в текстовом поле, если в атрибуте дескриптора xml будет соответственное значение – none, medium, hight.

То есть, логика такая – например, если 21 числа намечается важное событие, пользователем заносится в атрибут значение hight, и, во флешке автоматически на копке, обозначающая 21 число текст меняет цвет на красный. Если событие средней важности, заносится значение medium, и кнопка принимает тускло-красный цвет. Если ничего нема, то просто ставится none, и текст имеет стандартную окраску.

Проблема вот в чем – на мувике кнопки пишу инструкцию switch

Код:
onClipEvent (load) {
	switch (_parent.rootNodes[1].attributes.importance) {
	case "none" :
		trace("lol");
	case "medium" :
		trace("lol");
	case "hight" :
		trace("lol");
	}
}

Не работает потому, что не видит переменной rootNodes, которая, в свою очередь объявляется при загрузке xml –

Код:
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function() {
	rootNodes = this.firstChild.childNodes;
};
xml.load("calendar.xml");

Пожалуйста, скажите, в чем ошибка?
Спасибо, что дочитали до конца….
Никак не получается написать краткое изложение проблемы…

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
а слабо на xml.onLoad switch поставить?

Старый 30.04.2007, 00:49
romulko вне форума Посмотреть профиль Отправить личное сообщение для romulko Найти все сообщения от romulko
  № 3  
Ответить с цитированием
romulko
[+3 31.07.08]
 
Аватар для romulko

Регистрация: Jan 2006
Сообщений: 150
Не понимаю логику реализации этой инструкции к каждой из 31 кнопок...

Kikasso, пожалуйста, напишите пару строк кода, чтобы я понял, что вы имеете в виду.

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
кто у вас раньше появляется - копки или xml? Я, похоже, недопонял.
Похоже что rootNodes объявляется внутри xml.
Если _parent это то что нужно, попробуйте так:
Код:
var rootNodes:Array;
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function() {
	rootNodes = this.firstChild.childNodes;
};
xml.load("calendar.xml");
И не сажайте код на мувик кнопки, это тоже источник глюка.


Последний раз редактировалось Kikasso; 30.04.2007 в 01:02.
Старый 30.04.2007, 01:01
romulko вне форума Посмотреть профиль Отправить личное сообщение для romulko Найти все сообщения от romulko
  № 5  
Ответить с цитированием
romulko
[+3 31.07.08]
 
Аватар для romulko

Регистрация: Jan 2006
Сообщений: 150
Что значит свежий взгляд понимающего человека!

Спасибо, Kikasso, все заработало.
Модернизировал код и все летает -

Код:
xml.onLoad = function(succes:Boolean) {
	if (succes) {
		_root.rootNodes = this.firstChild.childNodes;
		gotoAndStop(2);
	} else {
		trace("fuck load xml");
	}
};

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
только лучше
Код:
if ( succes && this.status == 0 ) { ... }
Проверка на валидность не помешает. И success, а то засмеют ))

Старый 30.04.2007, 01:13
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Только не «succes», а «success». Учите английский.

Старый 30.04.2007, 01:22
this.create вне форума Посмотреть профиль Отправить личное сообщение для this.create Найти все сообщения от this.create
  № 8  
Ответить с цитированием
this.create

Регистрация: Feb 2007
Сообщений: 264
Цитата:
Сообщение от Kikasso
только лучше
Код:
if ( succes && this.status == 0 ) { ... }
Проверка на валидность не помешает. И success, а то засмеют ))
Код:
if (success && !this.status) {...}
Преобразование в булев тип:
number - false если 0 или NaN, true во всех остальных случаях. Status только при корректном разборе 0, в остальных случаях не ноль( все ошибки отрицательные числа).


Последний раз редактировалось this.create; 30.04.2007 в 01:24.
Старый 30.04.2007, 01:39
romulko вне форума Посмотреть профиль Отправить личное сообщение для romulko Найти все сообщения от romulko
  № 9  
Ответить с цитированием
romulko
[+3 31.07.08]
 
Аватар для romulko

Регистрация: Jan 2006
Сообщений: 150
Цитата:
Проверка на валидность не помешает. И success, а то засмеют ))
Уже засмеяли....

Цитата:
Только не «succes», а «success». Учите английский.
Слушаю и повинуюсь, мой учитель .

У меня сейчас 2 часа ночи. Мне только надо было, чтобы код работал.
Хотел вообще вставить имя переменной, похожую на текст в инструкции else....

Всем спокойной ночи


Старый 30.04.2007, 03:18
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 10  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от this.create
Преобразование в булев тип
Это не преобразование. Преобразование - вот:
Код:
if ( (Boolean( this.status ).toString().length == 5 ) ? true : false  ) trace ( "status ok" );
Проверять стоит, потому что некоторые серваки выдают кастомный error404 - success покажет true.

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

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

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


 


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


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