チェンジセット 1576: as3/gunyarapaint/trunk

差分発生行の前後
無視リスト:
コミット日時:
2008/10/11 18:45:53 (5 年前)
コミッタ:
tasuku
ログメッセージ:

- change shortcut key without ctrl key
- added background color random change
- canvas centering

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/trunk/gunyarapaint/src/gplogplayer.mxml

    r1569 r1576  
    163163  ]]> 
    164164  </mx:Script> 
    165   <mx:Label x="313" y="11" text="ver.2008101003"/> 
     165  <mx:Label x="313" y="11" text="ver.2008101101"/> 
    166166</mx:Application> 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint.as

    r1569 r1576  
    330330  case 48: // 0 
    331331  case 96: // ten-key 0 
    332     if (evt.ctrlKey) { 
    333       if (evt.shiftKey) { 
    334         setRotate(0); 
    335       } else { 
    336         setZoom(1); 
    337       } 
     332    if (evt.shiftKey) { 
     333      setRotate(0); 
     334    } else { 
     335      setZoom(1); 
    338336    } 
    339337    break; 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint.mxml

    r1569 r1576  
    1212  </mx:Script> 
    1313  <mx:Canvas id="toolCanvas" x="0" y="0" width="685" height="102"> 
    14     <mx:Label id="versionLabel" x="238" y="9" text="ver.2008101003"/> 
     14    <mx:Label id="versionLabel" x="238" y="9" text="ver.2008101101"/> 
    1515    <mx:Label x="28" y="7" text="名前"/> 
    1616    <mx:TextInput id="fromTextInput" x="55" y="3" maxChars="32" fontSize="14" focusThickness="0"/> 
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/controls/GPCanvasWindowControl.as

    r1569 r1576  
    11package org.libspark.gunyarapaint.controls 
    22{ 
     3  import flash.events.Event; 
     4  import flash.events.MouseEvent; 
    35  import flash.geom.Point; 
    46   
     
    1315  import mx.events.ResizeEvent; 
    1416  import mx.events.ScrollEvent; 
     17  import mx.utils.ColorUtil; 
    1518   
    1619  import org.libspark.gunyarapaint.entities.GPLogger; 
     
    1922  public class GPCanvasWindowControl extends TitleWindow 
    2023  { 
    21     private var _container:Container; 
     24    private var _canvasContainer:Container; // GPCanvasを直接格納するコンテナ 
     25    private var _contentContainer:Container; // GPCanvasとその周りの背景を格納するコンテナ 
    2226     
    2327    private var _hbox:HBox; // canvasと縦スクロールバー 
     
    3337    public function GPCanvasWindowControl() { 
    3438      super(); 
    35  
    36       this.setStyle('backgroundColor', 0x000000); 
     39       
     40      this.backgroundColor = 0x000000; 
     41 
    3742      // this.setStyle('backgroundAlpha', 0); 
    3843      this.horizontalScrollPolicy = 'off'; 
     
    4550    } 
    4651 
     52    private function set backgroundColor(c:uint):void { 
     53      this.setStyle('backgroundColor', c);       
     54    } 
     55 
     56    private function contentContainerClickHandler(e:MouseEvent):void { 
     57      if (e.eventPhase == flash.events.EventPhase.AT_TARGET) { 
     58        this.backgroundColor = Math.random() * 0xffffff; 
     59      } 
     60    } 
     61 
    4762    private function resizeContainer():void { 
    48       if (_logger && _container) { 
     63      if (_logger && _canvasContainer && _contentContainer) { 
    4964        // 仮にサイズを狭める 
    50         _container.width = _container.height = hScrollBar.width = vScrollBar.height = 0; 
     65        _canvasContainer.width = _canvasContainer.height =  
     66          _contentContainer.width = _contentContainer.height =  
     67          hScrollBar.width = vScrollBar.height = 0; 
    5168         
    5269        this.validateNow(); // _vbox/_hboxのサイズを更新 
     
    5774        var frameWidth:Number = this.width - _hbox.width; 
    5875        var frameHeight:Number = this.height - _vbox.height; 
     76 
     77        _contentContainer.width = _contentContainer.maxWidth = clientWidth; 
     78        _contentContainer.height = _contentContainer.maxHeight = clientHeight; 
     79        this.width = clientWidth + vScrollBar.width + frameWidth; 
     80        this.height = clientHeight + hScrollBar.height + frameHeight; 
     81        hScrollBar.width = clientWidth; 
     82        vScrollBar.height = clientHeight; 
    5983        // TODO: minでいいやん 
    6084        if (_logger.canvasWidth * _canvasScale < clientWidth) { 
    61           clientWidth = _logger.canvasWidth * _canvasScale; 
     85          _canvasContainer.width = _logger.canvasWidth * _canvasScale; 
     86        } else { 
     87          _canvasContainer.width = clientWidth; 
    6288        } 
    6389        if (_logger.canvasHeight * _canvasScale < clientHeight) { 
    64           clientHeight = _logger.canvasHeight * _canvasScale; 
     90          _canvasContainer.height = _logger.canvasHeight * _canvasScale; 
     91        } else { 
     92          _canvasContainer.height = clientHeight;           
    6593        } 
    66         this.width = clientWidth + vScrollBar.width + frameWidth; 
    67         this.height = clientHeight + hScrollBar.height + frameHeight; 
    68         _container.width = _container.maxWidth = clientWidth; 
    69         _container.height = _container.maxHeight = clientHeight; 
    70         hScrollBar.width = clientWidth; 
    71         vScrollBar.height = clientHeight; 
     94        _canvasContainer.move((_contentContainer.width - _canvasContainer.width) / 2, 
     95                              (_contentContainer.height - _canvasContainer.height) / 2); 
    7296      } 
    7397    } 
     
    106130        this.validateNow(); // percentWidth/Height -> width/heightに更新 
    107131 
    108         _container = new Container(); 
    109         _container.setStyle('borderStyle', 'none'); 
    110         _container.horizontalScrollPolicy = 'off'; 
    111         _container.verticalScrollPolicy = 'off'; 
     132        _contentContainer = new Container(); 
     133        _contentContainer.setStyle('borderStyle', 'none'); 
     134        _contentContainer.horizontalScrollPolicy = 'off'; 
     135        _contentContainer.verticalScrollPolicy = 'off'; 
     136 
     137        _canvasContainer = new Container(); 
     138        _canvasContainer.setStyle('borderStyle', 'none'); 
     139        _canvasContainer.horizontalScrollPolicy = 'off'; 
     140        _canvasContainer.verticalScrollPolicy = 'off'; 
    112141 
    113142        hScrollBar = new HScrollBar(); 
     
    121150        hScrollBar.lineScrollSize = 1; 
    122151        vScrollBar.lineScrollSize = 1; 
    123  
    124         _container.addChild(log.canvas); 
    125         _hbox.addChild(_container); 
     152         
     153        _canvasContainer.addChild(log.canvas); 
     154        _contentContainer.addChild(_canvasContainer); 
     155        _hbox.addChild(_contentContainer); 
    126156        _hbox.addChild(vScrollBar); 
    127157        _vbox.addChild(hScrollBar); 
    128158 
     159        _contentContainer.addEventListener(MouseEvent.CLICK, contentContainerClickHandler); 
     160 
     161        canvasX = 0; canvasY = 0; _canvasScale = 1; 
    129162        resizeContainer(); 
    130  
    131         canvasX = 0; canvasY = 0; _canvasScale = 1; 
    132163        moveCanvas(); 
    133164      } 
     
    135166 
    136167    private function moveCanvas():void { 
    137       if (_logger && _container) { 
    138         var maxX:Number = Math.floor(_logger.canvasWidth - (_container.width / _canvasScale))
    139         var maxY:Number = Math.floor(_logger.canvasHeight - (_container.height / _canvasScale))
    140         canvasX = Math.floor(canvasX)
    141         canvasY = Math.floor(canvasY)
     168      if (_logger && _canvasContainer && _contentContainer) { 
     169        var maxX:Number = _logger.canvasWidth * _canvasScale - _canvasContainer.width
     170        var maxY:Number = _logger.canvasHeight * _canvasScale - _canvasContainer.height
     171        canvasX = canvasX * _canvasScale
     172        canvasY = canvasY * _canvasScale
    142173        if (maxX <= 0) maxX = 0; 
    143174        if (maxY <= 0) maxY = 0; 
     
    148179        hScrollBar.scrollPosition = canvasX; 
    149180        vScrollBar.scrollPosition = canvasY; 
    150         hScrollBar.setScrollProperties(_container.width, 0, maxX); 
    151         vScrollBar.setScrollProperties(_container.height, 0, maxY); 
    152         _logger.eventCanvasMove(-canvasX * _canvasScale, -canvasY * _canvasScale); 
     181        hScrollBar.setScrollProperties(_canvasContainer.width, 0, maxX); 
     182        vScrollBar.setScrollProperties(_canvasContainer.height, 0, maxY); 
     183        _logger.eventCanvasMove(-canvasX, -canvasY); 
    153184      } 
    154185    }