package com.oxylusflash.book { import caurina.transitions.Tweener; import com.oxylusflash.book.PopupWindowContent; import flash.events.Event; import flash.geom.Rectangle; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFieldAutoSize; /** * ... * @author Adrian Bota, adrian@oxylus.ro */ public class AboutUs extends PopupWindowContent { public var contentTxt:TextField; private var scrollBar:PUScrollBar; private var contH:Number = 0; private var contY:Number = 0; public function AboutUs() { contentTxt.autoSize = TextFieldAutoSize.LEFT; contentTxt.styleSheet = Global.styleSheet; contentTxt.multiline = true; contentTxt.wordWrap = true; contentTxt.condenseWhite = true; contentTxt.selectable = false; contentTxt.mouseWheelEnabled = false; contentTxt.addEventListener(Event.SCROLL, contentTxt_scrollHandler, false, 0, true); } private function contentTxt_scrollHandler(e:Event):void { contentTxt.scrollV = 1; } /** * Init. */ override public function init():void { contentTxt.styleSheet = Global.styleSheet; contentTxt.htmlText = Global.xmlAboutUs.content; contentTxt.width = Global.xmlAboutUs.width; this.scrollRect = new Rectangle(0, 0, Global.xmlAboutUs.width, Global.xmlAboutUs.height); this.addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true); } private function enterFrameHandler(e:Event):void { if (contH < contentTxt.height) { contH = contentTxt.height; if (contH > Global.xmlAboutUs.height) { addScrollBar(); scrollBar.proportion = Global.xmlAboutUs.height / contH; } } } private function addScrollBar():void { if (!scrollBar) { scrollBar = this.addChild(new PUScrollBar) as PUScrollBar; scrollBar.x = Global.xmlAboutUs.width - scrollBar.width; scrollBar.height = Global.xmlAboutUs.height; scrollBar.addEventListener(ScrollBar.SCROLL, scrollBar_scrollHandler, false, 0, true); Tweener.addTween(scrollBar, { alpha: 1, base: Global.baseTween } ); contentTxt.width = Global.xmlAboutUs.width - scrollBar.width - 5; contH = contentTxt.height; } } private function scrollBar_scrollHandler(e:Event):void { scrollContentTo(scrollBar.percentage * (Global.xmlAboutUs.height - contH)); } private function scrollContentTo(newContY:Number):void { newContY = Math.min(0, Math.max(Global.xmlAboutUs.height - contH, newContY)); if (contY != newContY) { contY = newContY; Tweener.addTween(contentTxt, { y: contY, base: Global.baseTween } ); } } } }