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

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

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

Регистрация: Feb 2000
Сообщений: 6
Отправить сообщение для aciddream с помощью ICQ
Question Модули, ModuleBase и "передача компонента" приложению

Здравствуйте!

Подскажите пожалуйста новичку!

Есть основное приложение, подгружающее различные модули.
Модули реализуют интерфейс (вот кусок его):

Код:
public interface IAlbum extends IEventDispatcher {
   function get loginBox():UIComponent;
}
Для одного из модулей создан mxml компонент на основе Panel
Вот кусок кода модуля:

Код:
public class SampleAlbum extends ModuleBase implements IAlbum,IFlexModuleFactory {

private var _box:LBox; //Объект mxml компонента

public function SampleAlbum() {
   _box = new LBox();
}

public function get loginBox():UIComponent {
  return _box;
}

}
В основном приложении, после загрузки, создания объекта, получения интерфейса и пр. делается:

Код:
addChild(mInstance.loginBox);
Во время выполнения выкидывается исключение попытки обращения к null внутри Panel.as, где-то в районе формирования заголовка.

Если сделать:
Код:
addChild(mInstance.loginBox as. mx.containers.Panel);
то все работает нормально и форма появляется.

То есть "полиморфизм" где-то сломался :О)

Подскажите пожалуйста, что я делаю не так?

Спасибо!

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

Регистрация: Jul 2008
Сообщений: 43
Просто в начале основного приложения подключи import mx.containers.Panel

Старый 04.08.2008, 11:45
aciddream вне форума Посмотреть профиль Отправить личное сообщение для aciddream Найти все сообщения от aciddream
  № 3  
Ответить с цитированием
aciddream

Регистрация: Feb 2000
Сообщений: 6
Отправить сообщение для aciddream с помощью ICQ
Не - не прокатило.
Но, это не круто, все равно.
Потому как основное приложение не должно знать, на основании какого контрола сделан интерфейс в модуле. В данном - панель, а, если в другом VBox будет? Перекомпилять с включением еще одного модуля...

Возможно, дело в том, что модуль на основе ModuleBase - то есть он ActionScript. С другой стороны, в него включается компонент - то есть фреймворк, по-идее, должен бы загрузиться.

С другой стороны, дело и не во фреймворке, скорее всего, так как включение панели по твоей схеме не прокатило. Скорее всего - там какой-нибудь parent некорректно определяется при создании контрола в actionscript модуле, который не имеет визуального представления.

Чичас в исходник полезу, короче говоря :О)

Старый 05.08.2008, 16:02
aciddream вне форума Посмотреть профиль Отправить личное сообщение для aciddream Найти все сообщения от aciddream
  № 4  
Ответить с цитированием
aciddream

Регистрация: Feb 2000
Сообщений: 6
Отправить сообщение для aciddream с помощью ICQ
Забил, и сделал на основе Module...

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

Теги
modulebase , интерфейс , модули

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

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


 


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


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