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

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

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

Регистрация: Nov 2010
Адрес: Ярославль
Сообщений: 249
Thumbs down Проблемы при инициализации классов во Flash CS5

Недавно перешёл на Flash CS5 и у меня появились проблемы. В конструкторе класса не желают видиться объекты на сцене. Например, у меня на сцене есть 2 объекта RadioButton. В конструкторе основного класса мне нужно добавить эти две RadioButton в объект RadioButtonGroup. Я добавляю... Потом, позднее мне надо обратиться к одной из RadioButton, входящих в группу (например через bGroup.selection). И вдруг оказывается, что я пытаюсь обратиться к объекту null. Насколько я помню, в CS4 таких проблем не возникало. Получается, теперь в инициализации класса нельзя обращаться к объектам на сцене?

Старый 03.04.2011, 16:31
dodoaav вне форума Посмотреть профиль Отправить личное сообщение для dodoaav Найти все сообщения от dodoaav
  № 2  
Ответить с цитированием
dodoaav

Регистрация: Mar 2011
Сообщений: 21
Проверь стоит ли галочка в Publish Settings -> AS3 -> Automaticly declare stage instances
__________________
Пытаюсь делать игры для детей

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

Регистрация: Nov 2010
Адрес: Ярославль
Сообщений: 249
Стоит.

Если я обращаюсь к ним после инициализации, то всё работает нормально. Похоже проблема в другом, т.к., если я просто трасирую объект RadioButton на сцене, то он выводит [object RadioButton], как и должен. Может я что-то не так делаю?
Код AS1/AS2:
private var protectGroup:RadioButtonGroup = new RadioButtonGroup("protectGroup");
private var multiGroup:RadioButtonGroup = new RadioButtonGroup("multiGroup");
public function Editor() 
{
	protectGroup.addRadioButton(protectYes_mc);
	protectGroup.addRadioButton(protectNo_mc);
	multiGroup.addRadioButton(multiYes_mc);
	multiGroup.addRadioButton(multiNo_mc);
        trace(protectGroup.selection);//null, хотя в инспекторе компонентов поставил одну кнопку выбранной
}
Похоже всё те значения, которые я выставляю в ComponentInspector в коде не учитываются. Или во всяком случае подгружаются только после инициализации. И это очень раздражает...

p.s.
Попробуйте, у кого CS5 стоит проделать эти действия. Я просто реально не могу понять в чём может быть проблема...

Всё получилось. Оказывается Flash сначала инициализирует код, а потом уже сцену.
Исправил, добавив событие Event.ADDED_TO_STAGE.


Последний раз редактировалось Parez; 03.04.2011 в 20:25.
Старый 03.04.2011, 20:31
kseniya вне форума Посмотреть профиль Отправить личное сообщение для kseniya Найти все сообщения от kseniya
  № 4  
Ответить с цитированием
kseniya
 
Аватар для kseniya

Регистрация: Oct 2010
Адрес: Новосиб
Сообщений: 122
Добавляйте в группу после события ADDED
Код AS3:
		private var protectGroup:RadioButtonGroup = new RadioButtonGroup("protectGroup");
		private var multiGroup:RadioButtonGroup = new RadioButtonGroup("multiGroup");
		public function Editor() {
			protectNo_mc.addEventListener(Event.ADDED, addRadio);
			protectYes_mc.addEventListener(Event.ADDED, addRadio);
		}
		private function addRadio(e:Event):void{
			protectNo_mc.removeEventListener(Event.ADDED, addRadio);
			protectGroup.addRadioButton(e.currentTarget as RadioButton);
			trace(protectGroup.selection);
		}

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

Теги
flash cs5

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

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


 


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


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