Компиляция Flex (Flash Builder 4) с debug = false приводит к ошибкам, которые не возникают, когда debug = true - PullRequest
2 голосов
/ 23 июня 2011

У нас довольно большое приложение Flex, и наш QA получал случайные, но воспроизводимые ошибки, которые разработчики Flex не могли воспроизвести.Некоторые из этих ошибок были вызваны отладочной версией флеш-плеера, например:

ReferenceError: Specified ApplicationDomain does not contain the class ::LineSeriesLegendMarker
    at org.spicefactory.lib.reflect::ClassInfo$/getClassDefinitionByName()
    at org.spicefactory.lib.reflect::ClassInfo$/getClassInfo()
    at org.spicefactory.lib.reflect::ClassInfo$/forInstance()
    at org.spicefactory.parsley.core.view.impl::DefaultViewConfigurator/getDefinitionByType()
    at org.spicefactory.parsley.core.view.impl::DefaultViewConfigurator/getDefinition()
    at org.spicefactory.parsley.core.view.handler::ViewAutowireHandler/processAutowireEvent()
    at org.spicefactory.parsley.core.view.util::ContextAwareEventHandler/handleEvent()
    at org.spicefactory.parsley.core.view.handler::ViewAutowireHandler/handleAutowireEvent()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.spicefactory.parsley.core.view.handler::ViewAutowireHandler/prefilterView()
    at flash.display::DisplayObjectContainer/addChildAt()
    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::$addChildAt()
    at mx.core::Container/addChildAt()
    at mx.core::Container/addChild()
    at mx.charts::Legend/addLegendItem()
    at mx.charts::Legend/populateFromArray()
    at mx.charts::Legend/commitProperties()
    at mx.core::UIComponent/validateProperties()
    at mx.managers::LayoutManager/validateProperties()
    at mx.managers::LayoutManager/doPhasedInstantiation()
    at mx.managers::LayoutManager/doPhasedInstantiationCallback()

Другие ошибки включают в себя некорректное заполнение комбинированных списков и, как представляется, просто общие проблемы синхронизации.Хотелось бы подчеркнуть, что мы сузили это до нашего основного SWF без других переменных, кроме параметра mxmlc -debug = true vs -debug = false.Кто-нибудь еще сталкивался с этим или знает, почему сборки приводят к другому поведению?

1 Ответ

0 голосов
/ 28 июня 2011

Вам нужно будет показать больше кода, чем это; в основном ваш конфиг петрушки.

Разница между debug = true и debug = false заключается в том, что debug = true не будет отслеживать ошибки в конечном продукте. Ваши разработчики должны всегда работать с debug = true и иметь установленный Flash Player Debug.

Кроме того, мне любопытно, почему Parsley нужно знать о компонентах представления. Вы используете тег Configure? Я рекомендую вам не использовать его, а вместо этого использовать FastInject с соответствующими моделями презентаторов, что лучше для тестируемости. Настройка означает, что Parsley должен отражать все свойства в вашем представлении, которые бесполезны и требуют много времени. Я гарантирую, что если вы используете FastInject вместо Configure, ваша проблема исчезнет. Это если вы не пытаетесь внедрить представление в компоненты, чего не следует делать. Если это так, вам нужно лучше спроектировать приложение.

...