Показать сообщение отдельно
Старый 01.12.2009, 16:55
erectus вне форума Посмотреть профиль Отправить личное сообщение для erectus Найти все сообщения от erectus
  № 1  
Ответить с цитированием
erectus

Регистрация: Dec 2009
Сообщений: 25
Question старнный эксепшен при использовании CustomItemRenderer

Подскажите где искать проблему, уже всё перерыл....
Структура приложения следующая. Есть основная swf-ка, содержашая основные классы и минимум ресурсов (чтобы грузилась быстрей). В нее динамически через несколько SWFLoader-ов подгружаются отдельные модули. Один из таких модулей - магазин. Основная его часть - это два флексовских контрола: List - список товаров, и TileList - инвентарь пользователя. Для обоих списков созданы свои ItemRenderer-ы: для товара он содержит картинку, описание товара и цену, плюс кнопку "купить", при нажатии на которую на сервер отправляется соотвсетствующая команда. В ответ сервер присылает список элементов инвентаря с учетом купленной вещи. Этот ответ принимается главной swf-кой, которая генерит евент. Модуль "магазин" ловит этот эвент и обновляет инвентарь (создается новый ArrayCollection, заполняется данными и заменяется dataProvider).
похоже, что примерно в этот момент вываливается следующее исключение:
Код:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at mx.utils::LoaderUtil$/normalizeURL()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\utils\LoaderUtil.as:93]
	at mx.controls::SWFLoader/loadContent()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\controls\SWFLoader.as:1626]
	at mx.controls::SWFLoader/load()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\controls\SWFLoader.as:1447]
	at mx.controls::SWFLoader/commitProperties()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\controls\SWFLoader.as:1229]
	at mx.core::UIComponent/validateProperties()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\core\UIComponent.as:5807]
	at mx.managers::LayoutManager/validateClient()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:811]
	at mx.controls.listClasses::TileBase/getPreparedItemRenderer()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\controls\listClasses\TileBase.as:585]
	at mx.controls.listClasses::TileBase/makeRowsAndColumns()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\controls\listClasses\TileBase.as:409]
	at mx.controls.listClasses::ListBase/makeRowsAndColumnsWithExtraRows()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:1380]
	at mx.controls.listClasses::ListBase/updateDisplayList()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:3726]
	at mx.controls.listClasses::TileBase/updateDisplayList()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\controls\listClasses\TileBase.as:2357]
	at mx.controls.listClasses::ListBase/validateDisplayList()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:3348]
	at mx.managers::LayoutManager/validateDisplayList()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:622]
	at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:695]
	at Function/http://adobe.com/AS3/2006/builtin::apply()
	at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8733]
	at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8673]
Все, что нашел в гугле, это совет инициализировать переменные:
Цитата:
when defining my private variables, instead of writing:
private var textfield:TextField;

I had to write
private var textfield:TextField = new TextField();
но где искать, если эксепшен вываливается в mx.utils::LoaderUtil.normalizeURL()?