我在全屏模式下遇到 Flash 9 播放器问题。在我的情况下,DisplayObject 行为的 addChild 方法是连线的,同时显示“按 Esc 退出全屏模式”。在普通阶段模式或“Press Esc..”消息淡出后没有问题。Flash 10 播放器没有这个问题。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" minWidth="955" minHeight="600">
<mx:Script>
<![CDATA[
protected function fullScreenButton_clickHandler(event:MouseEvent):void
{
stage.displayState = StageDisplayState.FULL_SCREEN;
}
protected function addButton_clickHandler(event:MouseEvent):void
{
var b:Button = new Button();
b.label="Button" + b.uid;;
body.addChildAt(b,0);
var child:DisplayObject = body.getChildAt(0);
trace(child);
}
]]>
</mx:Script>
<mx:VBox>
<mx:Button id="fullScreenButton" label="Full screen" click="fullScreenButton_clickHandler(event)"/>
<mx:Button id="addButton" label="Add" click="addButton_clickHandler(event)"/>
</mx:VBox>
<mx:VBox backgroundColor="#ffffff" id="body">
</mx:VBox>
我正在尝试创建新按钮并使用 addChild 方法将其添加到主体 VBox,并在附加调试器时在下一次 Flex 显示验证时出现运行时错误;没有调试器全屏只会退出并且应用程序处于不可用状态(鼠标不工作)。当您在显示“Esc”消息时按添加按钮时会发生这种情况。
当错误发生时,调试器显示子是 mx.skins.halo.HaloBorder。如果没有错误,孩子是 mx.controls.Button。
错误:
TypeError: Error #1034: Type Coercion failed: cannot convert mx.skins.halo::HaloBorder@19c9869 to mx.core.IUIComponent.
at mx.containers.utilityClasses::BoxLayout/measure()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\containers\utilityClasses\BoxLayout.as:90]
at mx.containers::Box/measure()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\containers\Box.as:276]
at mx.core::UIComponent/measureSizes()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:5967]
at mx.core::UIComponent/validateSize()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:5913]
at mx.core::Container/validateSize()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\Container.as:2702]
at mx.managers::LayoutManager/validateSize()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:579]
at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:692]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8744]
at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8684]
任何人都知道如何解决此问题或为什么会发生?