У меня проблемы с проигрывателем Flash 9 в полноэкранном режиме.В моем случае метод addChild поведения DisplayObject подключен, когда отображается «Нажмите Esc для выхода из полноэкранного режима».Нет проблем в нормальном сценическом режиме или после того, как сообщение «Нажмите 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>
Я пытаюсь создать новую кнопку и добавить ее в VBox тела, используя метод addChild, и получаю ошибку времени выполнения при следующей проверке дисплея Flex, когдаотладчик прилагается;без отладчика полноэкранный режим просто выходит, а приложение остается в нерабочем состоянии (мышь не работает).Это происходит при нажатии кнопки «Добавить» при отображении сообщения «Esc».
При возникновении ошибки отладчик показывает, что child является mx.skins.halo.HaloBorder.В случае, если без ошибки child является 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]
У кого-нибудь есть идеи, как обойти эту проблему или почему это происходит?