チェンジセット 1399
- コミット日時:
- 2008/09/26 07:21:46 (4 ヶ月前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/AbstractUI/trunk/samples/ScrollbarSample.as
r1398 r1399 24 24 AbstractUI.initialize(stage); 25 25 26 _sb = new SimpleScrollbar( new SimpleScrollbarView(scrollbar));26 _sb = new SimpleScrollbar(scrollbar); 27 27 28 28 _mask = new Sprite(); 29 29 _mask.graphics.beginFill(0x000000, 100); 30 _mask.graphics.drawRect(0, 0, 200, 100);30 _mask.graphics.drawRect(0, 0, 200, 200); 31 31 _mask.graphics.endFill(); 32 32 as3/AbstractUI/trunk/src/org/libspark/abstractUI/scrollbar/impl/SimpleScrollbar.as
r1398 r1399 27 27 package org.libspark.abstractUI.scrollbar.impl 28 28 { 29 import flash.display.DisplayObjectContainer; 30 import flash.display.InteractiveObject; 31 29 32 import org.libspark.abstractUI.AbstractUI; 30 33 import org.libspark.abstractUI.events.ScrollbarEvent; … … 32 35 import org.libspark.abstractUI.scrollbar.IScrollTween; 33 36 import org.libspark.abstractUI.scrollbar.IScrollbar; 34 import org.libspark.abstractUI.scrollbar.IScrollbarView;35 37 import org.libspark.abstractUI.scrollbar.impl.SimpleScrollTween; 36 38 39 import flash.display.DisplayObject; 37 40 import flash.display.Sprite; 38 41 import flash.events.Event; … … 45 48 public class SimpleScrollbar extends EventDispatcher implements IScrollbar 46 49 { 47 private var _view: IScrollbarView;50 private var _view:DisplayObject; 48 51 private var _scrollPos:Number = 0; 49 52 private var _maxScrollPos:Number; … … 53 56 private var _scrollRepeat:IScrollRepeat; 54 57 private var _scrollTween:IScrollTween; 58 59 private var _track:Sprite; 60 private var _thumb:Sprite; 61 private var _upButton:Sprite; 62 private var _downButton:Sprite; 55 63 56 64 public function get scrollPos():Number { return _scrollPos; } … … 61 69 62 70 // 更新 63 _view.update(this);71 thumb.y = scrollPos; 64 72 } 65 73 … … 89 97 _pageSize = value; 90 98 91 _view.thumb.y = _view.track.y;99 thumb.y = track.y; 92 100 _scrollPos = minScrollPos; 93 101 94 102 // ページのサイズに合わせて Thumb のサイズを変更する 95 _view.thumb.height = _view.track.height * value;96 97 _maxScrollPos = _view.track.y + _view.track.height - _view.thumb.height;103 thumb.height = track.height * value; 104 105 _maxScrollPos = track.y + track.height - thumb.height; 98 106 } 99 107 … … 103 111 return _scrollRepeat; 104 112 } 105 106 public function SimpleScrollbar(view:IScrollbarView) 113 114 public function get thumb():Sprite { return _thumb; } 115 public function set thumb(value:Sprite):void 116 { 117 value.mouseEnabled = true; 118 _thumb = value; 119 } 120 121 public function get track():Sprite { return _track; } 122 public function set track(value:Sprite):void 123 { 124 value.mouseEnabled = true; 125 _track = value; 126 } 127 128 public function get upButton():Sprite { return _upButton; } 129 public function set upButton(value:Sprite):void 130 { 131 value.mouseEnabled = true; 132 _upButton = value; 133 } 134 135 public function get downButton():Sprite { return _downButton; } 136 public function set downbutton(value:Sprite):void 137 { 138 value.mouseEnabled = true; 139 _downButton = value; 140 } 141 142 public function SimpleScrollbar(view:DisplayObjectContainer) 107 143 { 108 144 _view = view; … … 110 146 _scrollRepeat = new SimpleScrollRepeat(); 111 147 112 _scrollPos = _view.track.y; 113 _minScrollPos = _view.track.y; 114 _maxScrollPos = _view.track.y + _view.track.height - _view.thumb.height; 148 if (_view["track"]) _track = _view["track"]; 149 if (_view["thumb"]) _thumb = _view["thumb"]; 150 if (_view["upButton"]) _upButton = _view["upButton"]; 151 if (_view["downButton"]) _downButton = _view["downButton"]; 152 153 _scrollPos = track.y; 154 _minScrollPos = track.y; 155 _maxScrollPos = track.y + track.height - thumb.height; 115 156 116 157 _scrollSize = 20; 117 158 118 _view.thumb.addEventListener(MouseEvent.MOUSE_DOWN, dragStartHandler);119 120 _view.track.addEventListener(MouseEvent.MOUSE_DOWN, scrollHandler);121 122 if ( _view.upButton) {123 _view.upButton.addEventListener(MouseEvent.CLICK, scrollUpHandler);124 _view.upButton.addEventListener(MouseEvent.MOUSE_DOWN, upButtonMouseDownHandler);159 if (thumb) thumb.addEventListener(MouseEvent.MOUSE_DOWN, dragStartHandler); 160 161 if (track) track.addEventListener(MouseEvent.MOUSE_DOWN, scrollHandler); 162 163 if (upButton) { 164 upButton.addEventListener(MouseEvent.CLICK, scrollUpHandler); 165 upButton.addEventListener(MouseEvent.MOUSE_DOWN, upButtonMouseDownHandler); 125 166 } 126 167 127 if ( _view.downButton) {128 _view.downButton.addEventListener(MouseEvent.CLICK, scrollDownHandler);129 _view.downButton.addEventListener(MouseEvent.MOUSE_DOWN, downButtonMouseDownHandler);168 if (downButton) { 169 downButton.addEventListener(MouseEvent.CLICK, scrollDownHandler); 170 downButton.addEventListener(MouseEvent.MOUSE_DOWN, downButtonMouseDownHandler); 130 171 } 131 172 } … … 137 178 138 179 // ドラッグできる範囲の Rectangle インスタンスを作成 139 var bounds:Rectangle = new Rectangle( _view.track.x, _view.track.y);140 bounds.right = _view.track.width - _view.thumb.width;141 bounds.height = _view.track.height - _view.thumb.height;142 143 _view.thumb.startDrag(false, bounds);180 var bounds:Rectangle = new Rectangle(track.x, track.y); 181 bounds.right = track.width - thumb.width; 182 bounds.height = track.height - thumb.height; 183 184 thumb.startDrag(false, bounds); 144 185 AbstractUI._stage.addEventListener(MouseEvent.MOUSE_UP, dragEndHandler); 145 186 AbstractUI._stage.addEventListener(Event.ENTER_FRAME, dragProgressHandler); … … 148 189 private function dragProgressHandler(event:Event):void 149 190 { 150 scrollPos = _view.thumb.y;191 scrollPos = thumb.y; 151 192 } 152 193 153 194 private function dragEndHandler(event:MouseEvent):void 154 195 { 155 scrollPos = _view.thumb.y;156 157 Sprite(_view.thumb).stopDrag();196 scrollPos = thumb.y; 197 198 thumb.stopDrag(); 158 199 AbstractUI._stage.removeEventListener(MouseEvent.MOUSE_UP, dragEndHandler); 159 200 AbstractUI._stage.removeEventListener(Event.ENTER_FRAME, dragProgressHandler); … … 184 225 private function scrollHandler(event:MouseEvent):void 185 226 { 186 var target:Number = Sprite(_view.track).mouseY;227 var target:Number = track.mouseY; 187 228 188 229 scroll(target); … … 201 242 private function downButtonMouseDownHandler(event:MouseEvent):void 202 243 { 203 _scrollRepeat.repeatedClick( Sprite(_view.downButton), 2);244 _scrollRepeat.repeatedClick(downButton, 2); 204 245 } 205 246 206 247 private function upButtonMouseDownHandler(event:MouseEvent):void 207 248 { 208 _scrollRepeat.repeatedClick( Sprite(_view.upButton), 2);249 _scrollRepeat.repeatedClick(upButton, 2); 209 250 } 210 251 }
