Air mobile andriod ios paging Control
Recently, I have studied how to use flex to write android and ios apps. I encountered a paging loading problem. We used flex sdk 12 and air 15 didn't find a paging component similar to android ListView, so I wrote it with my colleagues, and the effect is still acceptable. Drag and refresh up, drag and load down. If you are interested, you can take it away. If you have better notifications, post the Code directly.
import mx.events.PropertyChangeEvent;private static const PADDING:uint = 15;private function init():void {updateList();_list.dataGroup.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, handleScroll);}private function handleScroll(event:PropertyChangeEvent):void {if (_busy.visible || _busy_x.visible || event.source != event.target || event.property != 'verticalScrollPosition') {return;}//下拉 加载 if (event.newValue < -3 * PADDING && event.oldValue >= -3 * PADDING) {_hintDown.visible = true;_hintUp.visible = false;_fadeIn.play([_hintDown]);} else if (event.newValue < -6 * PADDING && event.oldValue >= -6 * PADDING) {_hintDown.visible = false;_hintUp.visible = true;_fadeIn.play([_hintUp]);} else if (event.newValue >= -6 * PADDING && event.oldValue < -6 * PADDING) {_hintDown.visible = true;_hintUp.visible = false;_fadeIn.play([_hintDown]);} else if (event.newValue >= -3 * PADDING && event.oldValue < -3 * PADDING) {_hintDown.visible = false;_hintUp.visible = false;}//上拉刷新 加载 if (event.newValue < 3 * PADDING && event.oldValue >= 3 * PADDING) {_hintDown_up.visible = false;_hintUp_up.visible = false;} else if (event.newValue < 6 * PADDING && event.oldValue >= 6 * PADDING) {_hintDown_up.visible = false;_hintUp_up.visible = false;}else if (event.newValue >= 6 * PADDING && event.oldValue < 6 * PADDING) {_hintDown_up.visible = false;_hintUp_up.visible = true;_fadeIn.play([_hintUp_up]);}else if (event.newValue >= 3 * PADDING && event.oldValue < 3 * PADDING) {_hintDown_up.visible = true;_hintUp_up.visible = false;_fadeIn.play([_hintDown_up]);}}private function startLoading(event:MouseEvent):void {//下拉 加载方法if (_hintUp.visible) {_busy.includeInLayout = _busy.visible = true;if(_hintDown.visible)_busy_x.includeInLayout = _busy_x.visible = true;setTimeout(updateList, 1000);}_hintDown.visible = false;_hintUp.visible = false;//上拉 加载方法if (_hintUp_up.visible) {_busy_x.includeInLayout = _busy_x.visible = true;if(_hintDown_up.visible)_busy_x.includeInLayout = _busy_x.visible = true;setTimeout(updateList, 1000);}_hintDown_up.visible = false;_hintUp_up.visible = false;}private function updateList():void {_ac.source = new Array();for (var i:int = 0; i < 10; i++) {_ac.source.push(Math.random());}_ac.refresh();_busy.includeInLayout = _busy.visible = false;_busy_x.includeInLayout = _busy_x.visible = false;}