1 package org
.sevenchan
.dongs
.ui
3 import flash
.display
.DisplayObject;
4 import flash
.display
.MovieClip;
5 import flash
.display
.Sprite;
6 import flash
.events
.Event;
7 import mx
.controls
.VScrollBar
;
8 import flash
.events
.MouseEvent;
10 import flash
.text
.StyleSheet;
11 import flash
.text
.TextField;
12 import flash
.text
.TextFormat;
13 import mx
.core
.Application
;
14 //import classes.Scroller.Scroller;
20 public class SexPanel
extends MovieClip
22 public var bgColorTop
:uint = 0x999999;
23 public var bgColorMain
:uint = 0xcccccc;
24 public var fgColor
:uint = 0x000000;
25 private var textControl
:TextField = new TextField();
26 private const padding
:Number = 4;
27 public const alphaNormal
:Number = 0.90;
28 public const alphaHover
:Number = 0.75;
29 private var stackedControls
:Array = new Array();
30 private var scrollUp
:TinyButton
= new TinyButton
("˄");
31 private var scrollDown
:TinyButton
= new TinyButton
("˅");
32 private var bounds
:Rectangle;
33 private var bgpanel
:Sprite = new Sprite();
35 public function SexPanel
(text
:String)
37 this.textControl
.htmlText
= text
;
38 this.textControl
.textColor
= fgColor
;
40 //this.alpha = alphaNormal;
43 addChild
(textControl
);
45 var style
:StyleSheet = new StyleSheet();
47 "h2 { font-size:24;font-weight:bold;padding-bottom:32px;font-family:'Georgia','Times New Roman',_serif;}"+
48 "p,li { font-family:'Georgia','Times New Roman',_serif;font-size:14;margin-bottom:1em; }" +
49 "a {color:#0000ff;text-decoration:underline;}");
50 textControl
.styleSheet
= style
;
51 this.textControl
.multiline
= true;
52 this.textControl
.wordWrap
= true;
53 textControl
.alpha
= 0.9;
59 scrollUp
.addEventListener
(MouseEvent.CLICK
, this.upScroll
);
60 scrollDown
.addEventListener
(MouseEvent.CLICK
, this.downScroll
);
61 textControl
.addEventListener
(MouseEvent.MOUSE_WHEEL
, this.wheelScroll
);
64 public function get text
():String {
65 return textControl
.htmlText
;
67 public function set text
(value
:String):void {
68 textControl
.text
= "";
69 textControl
.htmlText
= value
70 .replace
(/<\/p
>/g
, "</p><br />")
71 .replace
(/<\/h2
>/g
,"</h2><br />")
72 .replace
(/<\/ul
>/g
,"</ul><br />")
73 .replace
(/(\r?)\n/g
,"")
75 textControl
.alpha
= 1;
79 public function updateScrollers
():void {
80 scrollUp
.visible
= (textControl
.scrollV
> 1);
81 scrollDown
.visible
= (textControl
.scrollV
< textControl
.maxScrollV
);
84 public function stackMode
():void {
85 removeChild
(textControl
);
88 public function addToStack
(_do
:DisplayObject):void {
90 stackedControls
.push
(_do
);
94 public function delFromStack
(_do
:DisplayObject):void {
96 delete stackedControls
[stackedControls
.indexOf
(_do
)];
100 public function arrangeStack
():void {
101 var bottom
:Number = 0;
102 for (var i
:int = 0; i
< stackedControls
.length
; i
++) {
103 var o
:DisplayObject = stackedControls
[i
];
104 o
.x
= (this.width
/2)-(o
.width
/2);
106 bottom
+= o
.height
+ padding
;
111 public function draw
(h
:Number, w
:Number):void {
113 doGradFilled
(0, 0, h
, w
);
114 textControl
.height
= h
- (padding
* 2);
116 textControl
.width
= w
-(padding
* 2);
117 textControl
.x
= (w
/ 2) - (textControl
.width
/ 2);
118 textControl
.y
= (h
/ 2) - (textControl
.height
/ 2)
121 scrollUp
.x
= scrollDown
.x
= width
- scrollUp
.width
;
124 scrollDown
.y
= height
- scrollDown
.width
;
128 private function upScroll
(event
:MouseEvent):void
130 trace
(textControl
.scrollV
);
131 textControl
.scrollV
-= 1;
135 private function wheelScroll
(e
:MouseEvent):void {
139 private function downScroll
(event
:MouseEvent):void
141 trace
(textControl
.scrollV
);
142 textControl
.scrollV
+= 1;
146 public function doGradFilled
(x
:Number, y
:Number, h
:Number, w
:Number):void {
148 bgpanel
.graphics
.clear
();
149 var fillType
:String = "linear";
150 var colors
:Array = [bgColorTop
, bgColorMain
];
151 var alphas
:Array = [1, 1];
152 var ratios
:Array = [0, 128];
153 var matrix
:Matrix = new Matrix();
154 var gradWidth
:Number = w
;
155 var gradHeight
:Number = h
;
156 var gradRotation
:Number = 90 / 180 * Math.PI
; // rotation expressed in radians
157 var gradOffsetX
:Number = 0;
158 var gradOffsetY
:Number = 0;
160 matrix
.createGradientBox
(gradWidth
, gradHeight
, gradRotation
, gradOffsetX
, gradOffsetY
);
161 var spreadMethod
:String = "pad";
162 bgpanel
.graphics
.lineStyle
(1, 0x000000, 1);
163 bgpanel
.graphics
.beginGradientFill
(fillType
, colors
, alphas
, ratios
, matrix
, spreadMethod
);
164 bgpanel
.graphics
.drawRoundRect
(0, 0, w
,h
,5,5);
165 bgpanel
.graphics
.endFill
();
166 bgpanel
.graphics
.lineStyle
();