チェンジセット 2778

差分発生行の前後
無視リスト:
コミット日時:
2009/06/03 03:26:45 (4 年前)
コミッタ:
tasuku
ログメッセージ:

* gunyarapaint: 左右反転・上下反転をつけた。とりあえずは全レイヤー版のボタンをつけた。

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/trunk/ChangeLog

    r2745 r2778  
     12009-06-03  Tasuku SUENAGA <a at razil.jp> 
     2 
     3  * gunyarapaint: ���E���]�E�㉺���]������B�Ƃ肠�����͑S���C���[�ł̃{�^��������B 
     4 
    152009-05-29  Tasuku SUENAGA <a at razil.jp> 
    26 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gplogplayer.mxml

    r2739 r2778  
    160160  ]]> 
    161161  </mx:Script> 
    162   <mx:Label x="313" y="11" text="ver.2009052801"/> 
     162  <mx:Label x="313" y="11" text="ver.2009060301"/> 
    163163</mx:Application> 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint.as

    r2351 r2778  
    8080  zoomResetButton.addEventListener(FlexEvent.BUTTON_DOWN, zoomResetButtonHandler); 
    8181  rotateResetButton.addEventListener(FlexEvent.BUTTON_DOWN, rotateResetButtonHandler); 
     82  horizontalMirrorButton.addEventListener(FlexEvent.BUTTON_DOWN, horizontalMirrorButtonHandler); 
     83  verticalMirrorButton.addEventListener(FlexEvent.BUTTON_DOWN, verticalMirrorButtonHandler); 
    8284   
    8385  // アンドゥ・リドゥ 
     
    331333} 
    332334 
     335private function horizontalMirrorButtonHandler(evt:Event):void { 
     336  _logger.eventHorizontalMirror(0xff); 
     337} 
     338 
     339private function verticalMirrorButtonHandler(evt:Event):void { 
     340  _logger.eventVerticalMirror(0xff); 
     341} 
     342 
    333343private function setRotate(v:Number):void { 
    334344  canvasRotate.value = v; 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint.mxml

    r2740 r2778  
    2323    <mx:Button id="rotateResetButton" x="467" y="63" label="角度" width="29" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17"/> 
    2424    <mx:Button id="zoomResetButton" x="467" y="81" label="拡大" width="29" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17"/> 
     25    <mx:Button id="horizontalMirrorButton" x="117" y="128" label="全レイヤー左右反転" width="120" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17"/> 
     26    <mx:Button id="verticalMirrorButton" x="245" y="128" label="全レイヤー上下反転" width="120" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17"/> 
    2527    <mx:HSlider id="canvasRotate" x="501" y="62" width="152" minimum="-180" maximum="180" snapInterval="5" value="0" /> 
    2628    <mx:HSlider id="canvasZoom" x="502" y="79" width="152" minimum="-4" maximum="16" snapInterval="1" value="1" /> 
     
    3335    <mx:Button id="undoButton" x="469" y="36" label="アンドゥ" enabled="false" paddingLeft="3" paddingRight="3"/> 
    3436    <mx:Button id="redoButton" x="555" y="36" label="リドゥ" enabled="false" paddingLeft="3" paddingRight="3"/> 
    35     <mx:Label id="versionLabel" x="576" y="127" text="ver.2009052801"/> 
     37    <mx:Label id="versionLabel" x="576" y="127" text="ver.2009060301"/> 
    3638    <mx:Button id="windowsResetButton" x="10" y="128" label="ウィンドウ初期状態" width="99" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17"/> 
    37     <mx:Button id="passwordButton" x="117" y="128" label="ふっかつのじゅもん" width="99" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" enabled="false"/> 
     39    <mx:Button id="passwordButton" x="373" y="128" label="ふっかつのじゅもん" width="99" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" enabled="false"/> 
    3840    <mx:Button id="logPlayButton" x="502" y="105" label="ログプレイ" visible="false"/> 
    3941    <mx:Button id="checkPngButton" x="585" y="105" label="同一check" visible="false"/> 
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/entities/GPLayer.as

    r1586 r2778  
    2626     
    2727    private var _logger:GPLogger; 
     28     
     29    private static var mirrorMatrix:Matrix; 
    2830     
    2931    public function GPLayer(logger:GPLogger, 
     
    6567      this.bitmapData = _bitmapData.clone(); 
    6668      _bitmapData.floodFill(x, y, color); 
    67     }     
     69    } 
    6870    public function setPixel(x:Number, y:Number, color:uint):Boolean { 
    6971      if (_bitmapData.getPixel32(x, y) == color) { 
     
    7375      _bitmapData.setPixel32(x, y, color); 
    7476      return true; 
    75     }     
     77    } 
     78    public function matrixConvert(matrix:Matrix):void { 
     79      var bmd:BitmapData = new BitmapData(_width, _height, true, 0x00000000); 
     80      bmd.draw(_bitmapData, matrix); 
     81      this.bitmapData = bmd; 
     82    } 
    7683    // 外から与えられたBitmapDataに、自分の_bitmapDataを_blendModeとalphaを使って描画する。 
    7784    public function drawDest(dest:BitmapData):void { 
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/entities/GPLayerArray.as

    r1793 r2778  
    2929 
    3030    private var _logger:GPLogger; 
     31     
     32    private var _horizontalMirrorMatrix:Matrix; // 左右反転用Matrix、GPLayerで持つともったいないので 
     33    private var _verticalMirrorMatrix:Matrix; // 上下反転用Matrix、GPLayerで持つともったいないので 
    3134 
    3235    public function GPLayerArray(logger:GPLogger, a:Array, targetIndex:uint, w:uint, h:uint) { 
     
    3538      _height = h; 
    3639      _view = new Sprite(); 
     40      _horizontalMirrorMatrix = new Matrix(-1, 0, 0, 1, w, 0); 
     41      _verticalMirrorMatrix = new Matrix(1, 0, 0, -1, 0, h); 
    3742      if (a) { 
    3843        _a = a; 
     
    300305    } 
    301306     
     307    // レイヤー番号が0xffUの場合には、全部反転 
     308    public function horizontalMirror(i:uint):void { 
     309      if (i == 0xff) { 
     310        for (var j:uint = 0; j < _a.length; j++) { 
     311          _a[j].matrixConvert(this._horizontalMirrorMatrix); 
     312        } 
     313      } else { 
     314        _a[i].matrixConvert(this._horizontalMirrorMatrix); 
     315      } 
     316      recombine(); 
     317    } 
     318     
     319    // レイヤー番号が0xffUの場合には、全部反転 
     320    public function verticalMirror(i:uint):void { 
     321      if (i == 0xff) { 
     322        for (var j:uint = 0; j < _a.length; j++) { 
     323          _a[j].matrixConvert(this._verticalMirrorMatrix); 
     324        } 
     325      } else { 
     326        _a[i].matrixConvert(this._verticalMirrorMatrix); 
     327      } 
     328      recombine(); 
     329    } 
     330 
    302331    private function reindex():void { 
    303332      for (var i:String in _a) { 
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/entities/GPLogger.as

    r2739 r2778  
    146146        break; 
    147147      case '0.2.0:': // Math.floor(mouseX + 0.5)を、偶奇で変えるようにした by はくはく。 
     148      case '0.2.1:': // 水平・垂直反転反転ボタンをつけた。 
    148149        break; 
    149150      default: 
     
    199200    public static const ACTION_LAYER_CHANGE_ALPHA:uint = 22; 
    200201    public static const ACTION_SET_PIXEL:uint = 23; 
     202    public static const ACTION_HORIZONTAL_MIRROR:uint = 24; 
     203    public static const ACTION_VERTICAL_MIRROR:uint = 25; 
    201204 
    202205    // LINESTYLE 
     
    456459          eventSetPixel(uintNum, uintNum2); 
    457460          break; 
     461        case ACTION_HORIZONTAL_MIRROR: 
     462          uintNum = readByte(); 
     463          eventHorizontalMirror(uintNum); 
     464          break; 
     465        case ACTION_VERTICAL_MIRROR: 
     466          uintNum = readByte(); 
     467          eventVerticalMirror(uintNum); 
     468          break; 
    458469        default: 
    459470          if (byte & 0x80) { 
     
    859870      trace('SET_PIXEL'); 
    860871    } 
     872     
     873    public function eventHorizontalMirror(i:uint):void { 
     874      _layerArray.horizontalMirror(i); 
     875      if (_onLogging) { 
     876        writeByte(ACTION_HORIZONTAL_MIRROR); 
     877        writeByte(i); 
     878      } 
     879      trace('HORIZONTAL_MIRROR'); 
     880    } 
     881 
     882    public function eventVerticalMirror(i:uint):void { 
     883      _layerArray.verticalMirror(i); 
     884      if (_onLogging) { 
     885        writeByte(ACTION_VERTICAL_MIRROR); 
     886        writeByte(i); 
     887      } 
     888      trace('VERTICAL_MIRROR'); 
     889    } 
    861890 
    862891    private function invokeLayerChange():void { 
     
    891920      } 
    892921      trace('LAYER_COPY'); 
    893        
     922 
    894923      pushUndoBuffer(); 
    895924      invokeLayerChange();