2014-01-27 2 views
0

Есть ли способ реализовать панель разделителей для настольных приложений?Панель разметки Actionscript для настольных приложений

Я ищу что-то похожее на SplitViewNavigator для мобильных приложений.

Есть ли библиотека, или я должен написать ее сам?

Вот picture того, что я имею в виду для разветвителя панели:

Splitter example

+0

Как насчет HDividedBox и VDividedBox? Http: //help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7e54.html –

ответ

0

После нескольких дней исследований я нахожу метод реализации вертикальной панели сплиттера, не полагаясь на мобильные компоненты: я использую тонкую (4 пикселя) кнопку между панелями, а затем при перетаскивании эту кнопку, я изменяю ширину левой панели в соответствии с горизонтальным положением мыши.

Некоторые примеры кода:

<s:HGroup> 
    <s:Panel id="panel1" width="50%" height="100%"/> 
    <s:Button width="4" height="100%" 
       mouseOver="mousePointerDrag()" 
       mouseOut ="mousePointerDrop()" 
       mouseDown="mouseDownHResize()" 
       mouseUp ="mouseUpHResize()"/> 
    <s:Panel id="panel2" width="50%" height="100%"/> 
</s:HGroup> 

MouseOver и MouseOut изменить указатель в руке, а на кнопку разделенного:

private function mousePointerDrag():void 
{ 
    Mouse.cursor = "hand"; 
} 
private function mousePointerDrop():void 
{ 
    Mouse.cursor = "auto"; 
} 

MouseDown и MouseUp позволяют слушателю изменить размер события, чтобы изменить размер ширина панели1 (панель2 соответственно изменится):

private function mouseDownHResize():void 
{ 
    this.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHResize); 
} 
private function mouseUpHResize():void 
{ 
    this.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHResize); 
} 
private function mouseMoveHResize(event:MouseEvent):void 
{ 
    panel1.width = event.stageX-4-4; // tricky part 
} 

Три cky part - выбрать правильную ширину панели1, чтобы указатель мыши оставался на кнопке изменения размера, когда мышь отпущена (в данном случае 4 пикселя для границы.

Конечно, для горизонтального сплиттера это нечто похожее.

Я новичок в программировании на ActionScript, так что это может быть плохим решением, но это было тем более простым, что я нашел до сих пор; если доступны другие чистые решения, они могут быть добавлены к этому вопросу.

0

вы можете использовать компоненты Flex Mobile для настольных приложений. Я нашел это tutorial, вы могли бы следовать

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