当非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块中,以阻止预期的运行时错误。
重命名一个应用程序或者另一个应用程序使用的类,以解决此问题。