当非Flex应用程序加载Flex应用程序时,运行时CSS会以静默方式失败

时间:2020-03-06 14:59:27  来源:igfitidea点击:

我已经编译了一个CSS swf文件,其中包含适用于我的Flex应用程序的嵌入式皮肤。在我们的下载产品中,此CSS可以正常工作。在Web上,非Flex容器正在加载Flex应用程序,并且CSS静默失败。

调试应用程序时,可以在跟踪输出中看到以下运行时错误,但不会引发异常。

method not implemented mx.core::IFlexDisplayObject/mx.core:IFlexDisplayObject::setActualSize()
   over-binding 0 in GlobalStyle__embed_css__319796825

accessor not implemented mx.core:IFlexDisplayObject::measuredHeight
   over-binding 0 in GlobalStyle__embed_css__319796825

accessor not implemented mx.core:IFlexDisplayObject::measuredWidth
   over-binding 0 in GlobalStyle__embed_css__319796825

method not implemented mx.core::IFlexDisplayObject/mx.core:IFlexDisplayObject::move()
   over-binding 0 in GlobalStyle__embed_css__319796825

更新

既然我已经确定了实际的问题,我就对该问题进行了编辑,使其更加有用和直接。

解决方案

非Flex应用程序正在使用库中与CSS swf中嵌入的Flex外观具有相同类名的内容。由于Flash会在类的定义中查找最全局的swf,因此它使用的是非Flex应用程序定义的类。

由于此内容不会扩展UIMovieClip,因此会导致StyleManager失败。由于潜在的安全错误,Adobe将此过程的大部分内容包装在try-catch块中,以阻止预期的运行时错误。

重命名一个应用程序或者另一个应用程序使用的类,以解决此问题。