这是一个支持拖拽的自定义Panel组件。
拖拽过程panel不能超出父容器边界。
<?xml version="1.0" encoding="utf-8"?>
<s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
mouseDown="move_panel()" mouseUp="stop_panel()">
<fx:Script>
<![CDATA[
public function move_panel():void{
this.setStyle("left", null);
this.setStyle("right", null);
this.setStyle("top", null);
this.setStyle("bottom", null);
var limitdrag:Rectangle = new Rectangle(0, 0, this.parent.width-this.width, this.parent.height-this.height);
this.startDrag(false, limitdrag);
}
public function stop_panel():void{
this.stopDrag();
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
</s:Panel>
(需要只支持标题栏监听拖拽时,只需将鼠标按下的监听加在this.titleDisplay即可。)