2008-11-05 5 views
0

Может быть, я должен дополнительно квалифицировать это - Есть ли способ определить в каком направлении ComboBox будет открыт без копирования и вставки весь класс ComboBox и рвет код, в котором он определяет, в каком направлении он будет открыт в ...Flex - Есть ли способ указать, в каком направлении откроется ComboBox?

Я - мой конкретный случай - мне нужно, чтобы он открывался вверх - всегда.

UPDATE: Вы не можете исправить это подклассы, потому что функция, которая обрабатывает направление открывания:

private function displayDropdown(show:Boolean, trigger:Event = null):void 

И что плохой мальчик использует изрядное количество частных переменные, которые мой подкласс Wouldn» т имеют доступ к ...

ответ

2

Если вы сами создаете объект меню, вы можете разместить меню в любом месте, просто установив координаты x, y объекта меню. Вам нужно будет вычислить эти координаты, но вы можете сделать это легко без подкласса ComboBox.

Я делаю что-то подобное с PopUpButton; вам может быть проще работать с PopUpButton. Это основано на реальном коде от моего текущего проекта:

private function initMenu(): void { 
    var m:Menu = new Menu(); 
    m.dataProvider = theMenuData; 
    m.addEventListener(MenuEvent.ITEM_CLICK, menuClick); 
    m.showRoot = false; 
    // m.x = ... <-- probably don't need to tweak this. 
    // m.y = ... <-- this is really the interesting one :-) 
    theMenu.popUp = m; 
} 
<mx:PopUpButton id="theMenu" creationComplete="initMenu()" ... /> 

BTW, чтобы получить PopUpButton действовать больше как я хотел (всегда всплывет, независимо от того, где кнопка), установка openAlways = True в MXML работ Как колдовство.

+0

Вы человек - этот компонент на самом деле соответствует моим потребностям намного лучше. Я просто никогда не использовал его! – onekidney 2008-11-07 21:55:52

0

я сомневаюсь - вы должны были бы подкласс управления

может быть, вы могли бы связываться с недвижимостью, так что это (что не что большое дело.) помещенный таким образом (например. переполненный в нижний правый угол), что, естественно, принудительно?

0

Я бы порекомендовал проверку this post. Да, вам нужно захватить код ComboBox и изменить его, но по крайней мере теперь у вас есть идея, в которой должны быть внесены изменения.

0

Вы можете установить MaxDropDownHeight, если вы установите его достаточно большим, Windows автоматически установит направление вверх.

0

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

http://gist.github.com/505255

Смежные вопросы