如何在 Flex 中的某行之前拖动和停止面板?

Posted

技术标签:

【中文标题】如何在 Flex 中的某行之前拖动和停止面板?【英文标题】:How to drag and stop panel before some line in Flex? 【发布时间】:2013-04-08 20:12:35 【问题描述】:

我正在尝试拖动面板并在某行之前停止面板。我不知道该怎么做。 让我用我的代码解释一下(它不起作用):

//MyPanel
<s:Panel                                                                         
  mouseMove="rectangle_mouseMoveHandler(event)"
    id="panel" backgroundAlpha="0.2" 
  mouseDown="onMouseDown(event)" mouseUp="onMouseUp(event)"                              
  skinClass="intetech.PanelNoTitleBar" backgroundColor="blue">                                                      
</s:Panel>


//rectangle_mouseMoveHandler
protected function rectangle_mouseMoveHandler(event:MouseEvent):void
    

        if ((panel.x+panel.width)>=(minimap.x+minimap.width))
            panel.x = (minimap.x+minimap.width-panel.width+0.001);              
        
        trace("panel.x = "+panel.x);
    

【问题讨论】:

“它不起作用”是什么意思?面板是否拖过您希望它停止的点?这是一个奇怪的拖动处理程序。您可能会做更多的研究或更仔细地思考问题。我猜每次您移动鼠标时,面板都会稍微向右移动一点,而与您移动鼠标的方式无关。 @NTyler 是的,面板拖过去了。我不知道如何停止我的面板 拖动是否像您期望的那样工作? 【参考方案1】:

您可以使用相对于 Sprite 父级坐标的边界来指定 Sprite 的约束矩形:

protected function panel_mouseUpHandler(event:MouseEvent):void

    panel.stopDrag();


protected function panel_mouseDownHandler(event:MouseEvent):void

    panel.startDrag(false, new Rectangle( 0,0, 500, 300));


//...

<s:Panel id="panel"   mouseUp="panel_mouseUpHandler(event)" mouseDown="panel_mouseDownHandler(event)"/>

【讨论】:

以上是关于如何在 Flex 中的某行之前拖动和停止面板?的主要内容,如果未能解决你的问题,请参考以下文章

Extjs5 如何设置grid的某行的某列单元格处于编辑状态

spss20.0 中如何把变量视图中的某行删掉

fortran如何读入文本文件中的某行的指定部分

DELPHI 如何选中MEMO中的某行内容 记录显示到EDIT

Datatable中的某行某列能不能添加一个下拉框的控件

Flex 4.7:如何嵌入背景音乐和删除面板标题栏?