root/as3/AbstractUI/trunk/samples/ScrollbarSample.as

リビジョン 1732, 1.5 kB (コミッタ: Mk-10, コミット時期: 4 年 前)

--

Line 
1 package 
2 {
3         import org.libspark.abstractUI.AbstractUI;
4         import org.libspark.abstractUI.events.ScrollbarEvent;
5         import org.libspark.abstractUI.scrollbar.IScrollbar;
6         import org.libspark.abstractUI.scrollbar.impl.SimpleScrollbar;
7        
8         import flash.display.GradientType;
9         import flash.display.Sprite;
10         import flash.geom.Matrix;       
11         /**
12          * @author Mk-10:cellfusion
13          */
14         public class ScrollbarSample extends Sprite
15         {
16                 public var scrollbar:Sprite;
17                 private var _mask:Sprite;
18                 private var _sp:Sprite;
19                 private var _sb:IScrollbar;
20
21                 public function ScrollbarSample()
22                 {
23                         AbstractUI.initialize(stage);
24                        
25                         _sb = new SimpleScrollbar(scrollbar);
26                        
27                         _mask = new Sprite();
28                         _mask.graphics.beginFill(0x000000, 100);
29                         _mask.graphics.drawRect(0, 0, 200, 200);
30                         _mask.graphics.endFill();
31                        
32                         addChild(_mask);
33                        
34                         var mat:Matrix = new Matrix();
35                         mat.createGradientBox(500, 200);
36                         mat.rotate(Math.PI/2);
37                        
38                         _sp = new Sprite();
39                         _sp.graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0x000000], [1, 1], [0x00, 0xFF], mat);
40                         _sp.graphics.drawRect(0, 0, 200, 500);
41                         _sp.graphics.endFill();
42                         _sp.mask = _mask;
43                        
44                         addChild(_sp);
45                        
46                         // マスクと表示オブジェクトの比率を渡す
47                         _sb.pageSize = _mask.height / _sp.height;
48                         _sb.addEventListener(ScrollbarEvent.SCROLL_CHANGED, scrollChangeHandler);
49                 }
50                
51                 private function scrollChangeHandler(event:ScrollbarEvent):void
52                 {
53                         var p:Number = (_sb.scrollPos - _sb.minScrollPos) / (_sb.maxScrollPos - _sb.minScrollPos);
54                         _sp.y = (_mask.height - _sp.height) * p;
55                 }
56         }
57 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。