📄 scrollviewcontent.as
字号:
/*** * @class ScrollViewContent* @version 0.1* * @authur Luar, Yen Chin Suo* @email luar@luar.net* @website http://www.luar.com.hk/flashbook/* * @description Extend the ScrollView Class.* Provide centred, margin and scrollbar**/import mx.core.ScrollView;import mx.core.UIObject;class ScrollViewContent extends UIObject { public var container:ScrollView; private var margin:Number = 0; private var centred:Boolean = false; public var contentX:Number; public var contentY:Number; private function ScrollViewContent() { } private function init():Void { tabChildren = true; container = ScrollView(_parent); container.setStyle("borderStyle", "none"); container.hScrollPolicy = "auto"; container.vScrollPolicy = "auto"; if (isNaN(margin)) { margin = 0; } doLayout(); } private function doLayout():Void { // If content size is larger than container size, then will not centreContent var offSet:Number = -4; var x:Number; var y:Number; var w:Number = _width; var h:Number = _height; var wm:Number = w+margin*2+offSet; var hm:Number = h+margin*2+offSet; var hScrollerOffset:Number = 0; var vScrollerOffset:Number = 0; // Try to appear scrollbar container.setScrollProperties(wm, 1, hm, 1); hScrollerOffset = (container.hScroller._height>0) ? container.hScroller._height : 0; vScrollerOffset = (container.vScroller._width>0) ? container.vScroller._width : 0; // Adjust deal to appear single H/V scrollbar container.setScrollProperties(wm, 1, hm, 1); // Adjust deal to appear oppose scrollbar container.setScrollProperties(wm, 1, hm, 1); container.addEventListener("scroll", this); if (centred) { var mtmpX:Number = (container.width-vScrollerOffset-w)/2; mtmpX = (mtmpX>margin) ? mtmpX : margin; x = _x+mtmpX; var mtmpY:Number = (container.height-hScrollerOffset-h)/2; mtmpY = (mtmpY>margin) ? mtmpY : margin; y = _y+mtmpY; } else { x = _x+margin; y = _y+margin; } contentX = x; contentY = y; move(x, y); } private function move(x:Number, y:Number):Void { super.move(x, y, true); } private function scroll(evtObj:Object):Void { var x:Number = _x; var y:Number = _y; if (evtObj.direction == "vertical") { y = contentY-evtObj.position; } else if (evtObj.direction == "horizontal") { x = contentX-evtObj.position; } move(x, y); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -