Исключение нулевого указателя в пользовательском компоненте getStyle - PullRequest
0 голосов
/ 07 января 2012

при запуске моего приложения я получаю странную ошибку:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.core::UIComponent/getStyle()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:11104]
at mx.core::UIComponent/getConstraintValue()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:9073]
at mx.core::UIComponent/get horizontalCenter()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:9242]
at spark.layouts::BasicLayout/measure()[E:\dev\hero_private\frameworks\projects\spark\src\spark\layouts\BasicLayout.as:253]
at spark.components.supportClasses::GroupBase/measure()[E:\dev\hero_private\frameworks\projects\spark\src\spark\components\supportClasses\GroupBase.as:1148]
at mx.core::UIComponent/measureSizes()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:8496]
at mx.core::UIComponent/validateSize()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:8420]
at spark.components::Group/validateSize()[E:\dev\hero_private\frameworks\projects\spark\src\spark\components\Group.as:1012]
at mx.managers::LayoutManager/validateSize()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\LayoutManager.as:665]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\LayoutManager.as:816]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1180]
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

Это происходит внутри моего пользовательского компонента (который не связывается со стилями или чем-либо еще), только если я загружаюэта часть приложения в виде модуля.Свойство _nonInheritingStyles имеет значение null, что выглядит как неправильная инициализация компонента.Есть догадки?Спасибо

1 Ответ

0 голосов
/ 11 января 2012

У меня была такая же проблема - только в 4.6. Flex 4.5 работал нормально. Я думаю, что это связано с изменением способа, которым ModuleInfo обрабатывает загрузку. Preloader пытается разрешить несколько графических вызовов, но поскольку родительский объект не имеет установленных графических компонентов, вызовы прерываются. (Даже если вы защищаете getStyle () переопределением и попыткой перехвата вызова super.getStyle (), другие графические вызовы прервутся.)

ВОЗМОЖНОЕ РЕШЕНИЕ: если я добавлю компонент в свой mxml верхнего уровня (подкласс приложения), проблема исчезнет. Я использовал

Было бы хорошо узнать, какой самый легкий компонент будет работать здесь.

Я предполагаю, что Preloader ожидает, по крайней мере, заставку перед загрузкой первого модуля. В противном случае это просто ошибка Flex.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...