Uploaded image for project: 'Apache Flex'
  1. Apache Flex
  2. FLEX-16226

RTEs when quickly loading and unloading Gumbo components in SWFLoader

    XMLWordPrintableJSON

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>

      Attachments

        Activity

          People

            adobejira Adobe JIRA
            adobejira Adobe JIRA
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: