チェンジセット 1399

差分発生行の前後
無視リスト:
コミット日時:
2008/09/26 07:21:46 (4 ヶ月前)
コミッタ:
Mk-10
ログメッセージ:

View 無しで設定できるようにしてみた

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/AbstractUI/trunk/samples/ScrollbarSample.as

    r1398 r1399  
    2424                        AbstractUI.initialize(stage); 
    2525                         
    26                         _sb = new SimpleScrollbar(new SimpleScrollbarView(scrollbar)); 
     26                        _sb = new SimpleScrollbar(scrollbar); 
    2727                         
    2828                        _mask = new Sprite(); 
    2929                        _mask.graphics.beginFill(0x000000, 100); 
    30                         _mask.graphics.drawRect(0, 0, 200, 100); 
     30                        _mask.graphics.drawRect(0, 0, 200, 200); 
    3131                        _mask.graphics.endFill(); 
    3232                         
  • as3/AbstractUI/trunk/src/org/libspark/abstractUI/scrollbar/impl/SimpleScrollbar.as

    r1398 r1399  
    2727package org.libspark.abstractUI.scrollbar.impl  
    2828{ 
     29        import flash.display.DisplayObjectContainer;     
     30        import flash.display.InteractiveObject;  
     31         
    2932        import org.libspark.abstractUI.AbstractUI; 
    3033        import org.libspark.abstractUI.events.ScrollbarEvent; 
     
    3235        import org.libspark.abstractUI.scrollbar.IScrollTween; 
    3336        import org.libspark.abstractUI.scrollbar.IScrollbar; 
    34         import org.libspark.abstractUI.scrollbar.IScrollbarView; 
    3537        import org.libspark.abstractUI.scrollbar.impl.SimpleScrollTween; 
    3638         
     39        import flash.display.DisplayObject; 
    3740        import flash.display.Sprite; 
    3841        import flash.events.Event; 
     
    4548        public class SimpleScrollbar extends EventDispatcher implements IScrollbar  
    4649        { 
    47                 private var _view:IScrollbarView
     50                private var _view:DisplayObject
    4851                private var _scrollPos:Number = 0; 
    4952                private var _maxScrollPos:Number; 
     
    5356                private var _scrollRepeat:IScrollRepeat; 
    5457                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; 
    5563 
    5664                public function get scrollPos():Number { return _scrollPos; } 
     
    6169                         
    6270                        // 更新 
    63                         _view.update(this)
     71                        thumb.y = scrollPos
    6472                } 
    6573                 
     
    8997                        _pageSize = value; 
    9098                         
    91                         _view.thumb.y = _view.track.y; 
     99                        thumb.y = track.y; 
    92100                        _scrollPos = minScrollPos; 
    93101                         
    94102                        // ページのサイズに合わせて 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; 
    98106                } 
    99107 
     
    103111                        return _scrollRepeat;  
    104112                } 
    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) 
    107143                { 
    108144                        _view = view; 
     
    110146                        _scrollRepeat = new SimpleScrollRepeat(); 
    111147                         
    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; 
    115156                         
    116157                        _scrollSize = 20; 
    117158                         
    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); 
    125166                        } 
    126167                         
    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); 
    130171                        } 
    131172                } 
     
    137178                         
    138179                        // ドラッグできる範囲の 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); 
    144185                        AbstractUI._stage.addEventListener(MouseEvent.MOUSE_UP, dragEndHandler); 
    145186                        AbstractUI._stage.addEventListener(Event.ENTER_FRAME, dragProgressHandler); 
     
    148189                private function dragProgressHandler(event:Event):void 
    149190                { 
    150                         scrollPos = _view.thumb.y; 
     191                        scrollPos = thumb.y; 
    151192                } 
    152193                 
    153194                private function dragEndHandler(event:MouseEvent):void 
    154195                { 
    155                         scrollPos = _view.thumb.y; 
    156                          
    157                         Sprite(_view.thumb).stopDrag(); 
     196                        scrollPos = thumb.y; 
     197                         
     198                        thumb.stopDrag(); 
    158199                        AbstractUI._stage.removeEventListener(MouseEvent.MOUSE_UP, dragEndHandler); 
    159200                        AbstractUI._stage.removeEventListener(Event.ENTER_FRAME, dragProgressHandler); 
     
    184225                private function scrollHandler(event:MouseEvent):void 
    185226                { 
    186                         var target:Number = Sprite(_view.track).mouseY; 
     227                        var target:Number = track.mouseY; 
    187228                         
    188229                        scroll(target); 
     
    201242                private function downButtonMouseDownHandler(event:MouseEvent):void 
    202243                { 
    203                         _scrollRepeat.repeatedClick(Sprite(_view.downButton), 2); 
     244                        _scrollRepeat.repeatedClick(downButton, 2); 
    204245                } 
    205246 
    206247                private function upButtonMouseDownHandler(event:MouseEvent):void 
    207248                { 
    208                         _scrollRepeat.repeatedClick(Sprite(_view.upButton), 2); 
     249                        _scrollRepeat.repeatedClick(upButton, 2); 
    209250                } 
    210251        }