チェンジセット 3072

差分発生行の前後
無視リスト:
コミット日時:
2009/09/06 21:33:10 (4 年前)
コミッタ:
haku2
ログメッセージ:

[補助線関連の機能強化]
◇px単位指定の補助線を追加
◇補助線の種類を切り替えるコンボを追加(数値は種類ごとに保持)
◇キャンバスの余白クリック時、補助線を選択色に変更(半透明も反映)

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/controls/GPCanvas.as

    r1866 r3072  
    66  import flash.display.Sprite; 
    77  import flash.events.MouseEvent; 
     8  import flash.geom.Rectangle; 
    89   
    910  import mx.core.UIComponent; 
     
    6263        } 
    6364 
     65    // 20090906-haku2 upd start px単位指定対応、オブジェクト数削減 
    6466        private function changeAdditional():void { 
    65       var addWidth:Number = _logger.canvasWidth / additionalNumber; 
    66       var addHeight:Number = _logger.canvasHeight / additionalNumber; 
     67      var maxWidth:Number = _logger.canvasWidth; 
     68      var maxHeight:Number = _logger.canvasHeight; 
     69      var addWidth:Number = maxWidth / additionalNumber; 
     70      var addHeight:Number = maxHeight / additionalNumber; 
    6771      additionalBox.graphics.clear(); 
    6872      additionalSkew.graphics.clear(); 
    69 // 20081116-haku2 upd start 拡大しても補助線が太くならないように変更 (thickness 1 → 0.01) 
    70       additionalBox.graphics.lineStyle(0.01); 
    71       additionalSkew.graphics.lineStyle(0.01); 
    72 // 20081116-haku2 upd end 
    73       for (var i:uint = 0; i < additionalNumber; i++) { 
    74         for (var j:uint = 0; j < additionalNumber; j++) { 
    75           additionalBox.graphics.drawRect(i * addWidth, j * addHeight, addWidth, addHeight); 
    76           additionalSkew.graphics.moveTo(i * addWidth, j * addHeight); 
    77           additionalSkew.graphics.lineTo((i + 1) * addWidth, (j + 1) * addHeight); 
    78           additionalSkew.graphics.moveTo((i + 1) * addWidth, j * addHeight); 
    79           additionalSkew.graphics.lineTo(i * addWidth, (j + 1) * addHeight); 
     73      additionalBox.graphics.lineStyle(0, _logger.additionalColor, _logger.additionalAlpha); 
     74      additionalSkew.graphics.lineStyle(0, _logger.additionalColor, _logger.additionalAlpha); 
     75      additionalBox.graphics.drawRect(0, 0, maxWidth, maxHeight); 
     76      // 補助線種類判定 
     77      if(_logger.additionalType == 0) { 
     78        // 分割 
     79        for (var i:uint = 0; i < additionalNumber; i++) { 
     80          if(i > 0){ 
     81            additionalBox.graphics.moveTo(i * addWidth, 0); 
     82            additionalBox.graphics.lineTo(i * addWidth, maxHeight); 
     83            additionalBox.graphics.moveTo(0, i * addHeight); 
     84            additionalBox.graphics.lineTo(maxWidth, i * addHeight); 
     85            additionalSkew.graphics.moveTo(i * addWidth, 0); 
     86            additionalSkew.graphics.lineTo(0, i * addHeight); 
     87            additionalSkew.graphics.moveTo(maxWidth - (i * addWidth), 0); 
     88            additionalSkew.graphics.lineTo(maxWidth, i * addHeight); 
     89          } 
     90          additionalSkew.graphics.moveTo(maxWidth - ((i + 1) * addWidth), maxHeight); 
     91          additionalSkew.graphics.lineTo(maxWidth, maxHeight - ((i + 1) * addHeight)); 
     92          additionalSkew.graphics.moveTo((i + 1) * addWidth, maxHeight); 
     93          additionalSkew.graphics.lineTo(0, maxHeight - ((i + 1) * addHeight)); 
    8094        } 
     95      } else { 
     96        // px単位 
     97        for (var i2:uint = additionalNumber; i2 < maxWidth; i2 += additionalNumber) { 
     98          additionalBox.graphics.moveTo(i2, 0); 
     99          additionalBox.graphics.lineTo(i2, maxHeight); 
     100        } 
     101        for (var j2:uint = additionalNumber; j2 < maxHeight; j2 += additionalNumber) { 
     102          additionalBox.graphics.moveTo(0, j2); 
     103          additionalBox.graphics.lineTo(maxWidth, j2); 
     104        } 
     105        var max:uint = (maxWidth > maxHeight) ? maxWidth : maxHeight; 
     106        max += additionalNumber - (max % additionalNumber); 
     107        for (var k2:uint = additionalNumber; k2 <= max; k2 += additionalNumber) { 
     108          additionalSkew.graphics.moveTo(k2 - additionalNumber, 0); 
     109          additionalSkew.graphics.lineTo(0, k2 - additionalNumber); 
     110          additionalSkew.graphics.moveTo(max - (k2 - additionalNumber), 0); 
     111          additionalSkew.graphics.lineTo(max, k2 - additionalNumber); 
     112          additionalSkew.graphics.moveTo(max, max - k2); 
     113          additionalSkew.graphics.lineTo(max - k2, max); 
     114          additionalSkew.graphics.moveTo(0, max - k2); 
     115          additionalSkew.graphics.lineTo(k2, max); 
     116        } 
     117        var clip:Rectangle = new Rectangle(0, 0, maxWidth, maxHeight); 
     118        additionalSkew.scrollRect = clip; 
    81119      } 
    82120        } 
     121    // 20090906-haku2 upd end 
    83122         
    84123        // 描画関係のフラグ 
     
    112151          additionalSkew.visible = visible; 
    113152        } 
     153        // 20090906-haku2 ins start 
     154        public function refreshAdditional():void { 
     155      changeAdditional(); 
     156        } 
     157        // 20090906-haku2 ins end 
    114158                 
    115159    /** new functions **/ 
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/controls/GPCanvasWindowControl.as

    r2917 r3072  
    5454      if (e.eventPhase == flash.events.EventPhase.AT_TARGET) { 
    5555        this.backgroundColor = _logger.pen.color; 
     56        // 20090906-haku2 ins start 
     57        _logger.additionalColor = _logger.pen.color; 
     58        _logger.additionalAlpha = _logger.pen.alpha; 
     59        _logger.eventRefreshAdditional(); 
     60        // 20090906-haku2 ins end 
    5661      } 
    5762    } 
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/entities/GPLogger.as

    r3064 r3072  
    5959        public var key_R:Boolean = false; 
    6060        public var key_T:Boolean = false; // 20090905-haku2 ins 
     61        // 20090906-haku2 ins start 
     62        // 補助線状態保持 
     63        public var additionalType:uint = 0; 
     64        public var additionalColor:uint = 0; 
     65        public var additionalAlpha:Number = 1; 
     66        public var additionalNumBk:uint = 16; 
     67        // 20090906-haku2 ins end 
    6168 
    6269    public function GPLogger(log:ByteArray, 
     
    10851092      _canvas.setAdditionalSkew(visible); 
    10861093    } 
     1094    // 20090906-haku2 ins start 
     1095    public function eventRefreshAdditional():void { 
     1096      _canvas.refreshAdditional(); 
     1097    } 
     1098    // 20090906-haku2 ins end 
    10871099     
    10881100    public function eventSetPenMode(mode:uint):void {