Не могу увидеть contextMenu на UIComponent, но на его подпредставлениях во Flex - PullRequest
0 голосов
/ 22 марта 2011

У меня есть UIComponent (пробовал также с Canvas) и некоторые значки в нем (вложенные представления). На UIComponent я определил несколько дополнительных ContextMenuItems. Теперь, когда я тестирую его, контекстное меню появляется только в подпредставлениях (значках) с щелчком правой кнопкой мыши.

Я проверил документацию, но ничего не нашел о необходимых свойствах для использования контекстных меню.

У вас есть идеи, почему это только на подпредставлениях?

Ответы [ 3 ]

0 голосов
/ 22 марта 2011

Я думаю, это то, что вы ищете:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               xmlns:s="library://ns.adobe.com/flex/spark"
               creationComplete="onCreationComplete()">
    <fx:Script>
        <![CDATA[
            private function onCreationComplete():void
            {
                var menu:ContextMenu = new ContextMenu();
                menu.customItems.push(new ContextMenuItem('weee'));
                menu.customItems.push(new ContextMenuItem('weee2'));
                menu.hideBuiltInItems();
                canvas.contextMenu = menu;
            }
        ]]>
    </fx:Script>
    <mx:Canvas id="canvas" backgroundColor="#000000" height="50%" width="50%" >
        <s:Button label="blarg" />
    </mx:Canvas>
</s:Application>

Обратите внимание, как я создаю меню, затем добавляю элементы, которые затем заменяют свойство contextMenu.Это должно работать на любом объекте, который расширяет InteractiveObject.

0 голосов
/ 27 марта 2011

Проблема заключалась в том, что mouseEnabled = "{false}" в одном из родительско-родительских контейнеров.Я удалил его, и теперь он работает.

0 голосов
/ 22 марта 2011

Это, вероятно, происходит потому, что графика вашего UIComponent (или Canvas) чиста / пуста. Если у компонента нет никакого «контента», он будет действовать как прозрачный, что означает, что событие click не будет перехвачено.

Если вы используете Canvas, есть простой способ проверить это, попробуйте добавить цвет фона, и он должен работать:

<mx:Canvas backgroundColor="#FFFFFF" backgroundAlpha="0.001"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...