Flex - 鼠标动作(如拖拽)后立刻刷新界面显示
MouseEvent.updateAfterEvent()
如果已修改显示列表,则将指示 Flash Player 或 Adobe AIR 在此事件处理完成后呈现结果。
(比如拖拽的时候就不会有延迟现象)
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="init(event)"> <fx:Script> <![CDATA[ import mx.events.FlexEvent; private var startMouseX:Number; private var startScrollPosition:Number; protected function init(event:FlexEvent):void { hg.addEventListener(MouseEvent.MOUSE_DOWN,hgMouseDown); hg.addEventListener(MouseEvent.MOUSE_MOVE,hgMouseMove); } private function hgMouseDown(event:MouseEvent):void{ startMouseX = event.stageX; startScrollPosition = hg.horizontalScrollPosition; } private function hgMouseMove(event:MouseEvent):void{ if(event.buttonDown){ hg.horizontalScrollPosition = this.startMouseX - event.stageX + startScrollPosition; } event.updateAfterEvent(); } ]]> </fx:Script> <s:HGroup id="hg" width="400" horizontalCenter="0" verticalCenter="0" clipAndEnableScrolling="true"> <s:Button label="按钮1" /> <s:Button label="按钮2" /> <s:Button label="按钮3" /> <s:Button label="按钮4" /> <s:Button label="按钮5" /> <s:Button label="按钮6" /> <s:Button label="按钮7" /> <s:Button label="按钮8" /> </s:HGroup> </s:Application>