MX: MenuBar, вызывающий ошибки при нажатии на элемент меню - PullRequest
0 голосов
/ 08 ноября 2011

Я наблюдал необычное поведение с <mx:menubar> компонентом flex, я создал один из примеров, найденных в документации Adobe;и я получаю сообщения об ошибках при нажатии или наведении курсора мыши на любой элемент меню в отладочном флеш-плеере.

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" preloader="pre.CLoader"
       xmlns:s="library://ns.adobe.com/flex/spark" width="720"
       xmlns:mx="library://ns.adobe.com/flex/mx" height="540">
    <fx:Script source="main.as"/>
    <mx:MenuBar id="topMenu" labelField="@label" width="100%">
        <fx:XMLList>
            <menuitem label="Kommunicate">
                <menuitem label="Connect"/>
                <menuitem type="separator"/>
                <menuitem label="Login" enabled="false"/>
                <menuitem label="Register" enabled="false"/>
            </menuitem>
            // ...
        </fx:XMLList>
    </mx:MenuBar>
</s:Application>

Сообщение об ошибке при нажатии на "Kommunicate":

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at mx.controls::Menu/updateDisplayList()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\Menu.as:1393]
    at mx.controls.listClasses::ListBase/validateDisplayList()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\listClasses\ListBase.as:3963]
    at mx.managers::LayoutManager/validateDisplayList()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:736]
    at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:819]
    at mx.managers::LayoutManager/validateNow()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:878]
    at mx.controls::Menu/show()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\Menu.as:1706]
    at mx.controls::MenuBar/showMenu()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\MenuBar.as:1832]
    at mx.controls::MenuBar/mouseDownHandler()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\MenuBar.as:2025]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:13128]
    at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\SystemManager.as:2924]

Это Adobeне может создать полезную основу?Это не первый случай, когда я сталкиваюсь с необычными частями их собственного кода при попытке разработать приложение, использующее flex.Ранее он использовал одну из своих тем CSS для графита, где текстовые области имели жестко заданную максимальную ширину и высоту 20 пикселей ...

1 Ответ

0 голосов
/ 14 ноября 2011

Ответ: Новая тема, включенная в Flex4.5 / Flex4, отстой.(Даже не шучу.)

Новая тема Halo / Spark была причиной этой проблемы.Когда я вернулся к Flex3, он работал нормально.

...