用于桌面应用程序的Actionscript拆分器面板

时间:2014-01-27 09:17:10

标签: actionscript-3 flash

是否有方法为桌面应用程序实现拆分器面板?

我正在搜索类似于SplitViewNavigator的移动应用程序。

是否有图书馆或我必须自己编写?

以下是我对拆分器面板的意见picture

Splitter example

2 个答案:

答案 0 :(得分:0)

您可以将Flex Mobile组件用于桌面应用程序。我发现你可以关注<{3}}

答案 1 :(得分: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启用resize事件侦听器以调整panel1宽度(panel2将相应更改):

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
}

棘手的部分是选择panel1的正确宽度,以确保在释放鼠标时鼠标指针保留在调整大小按钮中(在这种情况下为边框4像素。

当然,水平分割器也是类似的东西。

我是ActionScript编程的新手,所以这可能是一个糟糕的解决方案,但到目前为止我发现它更简单;如果有其他更清洁的解决方案,可以将它们添加到这个问题中。