Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Adobe Flex SDK Previous
-
None
-
Affected OS(s): All OS Platforms
Affected OS(s): All OS Platforms
Language Found: English
Description
Steps to reproduce:
1. Download and run attached sample.
2. Quickly click the three buttons at the top of the Flex application.
Actual Results:
RTE. You usually get one of 2-3 errors:
1) TypeError: Error #1034: Type Coercion failed: cannot convert mx.components::FxTextInput@13db8cf1 to mx.components.FxTextInput.
at mx.components.baseClasses::FxComponent/findSkinParts()[E:\dev\trunk\frameworks\projects\flex4\src\mx\components\baseClasses\FxComponent.as:343]
at mx.components.baseClasses::FxComponent/loadSkin()[E:\dev\trunk\frameworks\projects\flex4\src\mx\components\baseClasses\FxComponent.as:311]
at mx.components.baseClasses::FxComponent/commitProperties()[E:\dev\trunk\frameworks\projects\flex4\src\mx\components\baseClasses\FxComponent.as:152]
at mx.components.baseClasses::FxRange/commitProperties()
at mx.core::UIComponent/validateProperties()[E:\dev\trunk\frameworks\projects\framework\src\mx\core\UIComponent.as:6109]
at mx.managers::LayoutManager/validateProperties()[E:\dev\trunk\frameworks\projects\framework\src\mx\managers\LayoutManager.as:539]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\trunk\frameworks\projects\framework\src\mx\managers\LayoutManager.as:659]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[E:\dev\trunk\frameworks\projects\framework\src\mx\core\UIComponent.as:8810]
at mx.core::UIComponent/callLaterDispatcher()[E:\dev\trunk\frameworks\projects\framework\src\mx\core\UIComponent.as:8750]
2) TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.managers::SystemManager/resizeMouseCatcher()[E:\dev\trunk\frameworks\projects\framework\src\mx\managers\SystemManager.as:2811]
at mx.managers::SystemManager/preloader_preloaderDoneHandler()[E:\dev\trunk\frameworks\projects\framework\src\mx\managers\SystemManager.as:2973]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/displayClassCompleteHandler()[E:\dev\trunk\frameworks\projects\framework\src\mx\preloaders\Preloader.as:434]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::DownloadProgressBar/timerHandler()[E:\dev\trunk\frameworks\projects\framework\src\mx\preloaders\DownloadProgressBar.as:1451]
at mx.preloaders::DownloadProgressBar/initCompleteHandler()[E:\dev\trunk\frameworks\projects\framework\src\mx\preloaders\DownloadProgressBar.as:1503]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/dispatchAppEndEvent()[E:\dev\trunk\frameworks\projects\framework\src\mx\preloaders\Preloader.as:291]
at mx.preloaders::Preloader/appCreationCompleteHandler()[E:\dev\trunk\frameworks\projects\framework\src\mx\preloaders\Preloader.as:442]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\trunk\frameworks\projects\framework\src\mx\core\UIComponent.as:9482]
at mx.core::UIComponent/set initialized()[E:\dev\trunk\frameworks\projects\framework\src\mx\core\UIComponent.as:1161]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\trunk\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[E:\dev\trunk\frameworks\projects\framework\src\mx\core\UIComponent.as:8810]
at mx.core::UIComponent/callLaterDispatcher()[E:\dev\trunk\frameworks\projects\framework\src\mx\core\UIComponent.as:8750]
Expected Results:
No RTE.
Workaround (if any):
Slow down on the button clicking, man!
updated 01/14/2009 djl
1. copy defaults.css from the flex4 project and compile it to a swf.
2. Load the defaults.swf file using StyleManager.loadStyleDeclarations("defaults.swf", true, false, ApplicationDomain.currentDomain); on the createComplete event of the main application. This puts all the skin classes into the main application's ApplicationDomain.
Here's the code change to the main application:
<FxApplication xmlns="http://ns.adobe.com/mxml/2009" creationComplete="init()">
<Script>
<![CDATA[
import mx.styles.StyleManager;
private function init():void
{ StyleManager.loadStyleDeclarations("defaults.swf", true, false, ApplicationDomain.currentDomain); } ]]
>
</Script>