チェンジセット 1156

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

r107@poppop (orig r106): tasuku | 2008-08-12 18:10:33 +0900
added layer merge

ファイル:

凡例:

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

    r1155 r1156  
    1717  <mx:Button x="35" y="165" id="copyLayerButton" label="複" width="22" paddingLeft="0" paddingRight="0"/> 
    1818  <mx:Button x="65" y="165" id="deleteLayerButton" label="削" width="22" paddingLeft="0" paddingRight="0"/> 
    19   <mx:Button x="95" y="165" id="merge" label="統" width="22" paddingLeft="0" paddingRight="0"/> 
     19  <mx:Button x="95" y="165" id="mergeLayerButton" label="統" width="22" paddingLeft="0" paddingRight="0"/> 
    2020  <mx:ComboBox x="0" y="0" width="124"></mx:ComboBox> 
    2121  <mx:Label x="3" y="32" text="透"/> 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/controls/GPLayerWindowControlScript.as

    r1155 r1156  
    3030  copyLayerButton.addEventListener(FlexEvent.BUTTON_DOWN, copyLayerHandler); 
    3131  deleteLayerButton.addEventListener(FlexEvent.BUTTON_DOWN, deleteLayerHandler); 
     32  mergeLayerButton.addEventListener(FlexEvent.BUTTON_DOWN, mergeLayerHandler); 
    3233 
    3334  layerDataGrid.addEventListener(mx.events.DataGridEvent.ITEM_FOCUS_IN, itemFocusHandler); 
     
    9192 
    9293private function deleteLayerHandler(evt:Event):void { 
     94  _layers.remove(layerDataGrid.selectedItem.index); 
     95  syncWithLayersAlphaCanvas(); 
     96} 
     97 
     98private function mergeLayerHandler(evt:Event):void { 
     99  _layers.mergeWithBelow(layerDataGrid.selectedItem.index); 
     100  syncWithLayersAlphaCanvas(); 
    93101} 
    94102 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/entities/GPLayer.as

    r1155 r1156  
    6060      _bitmapData.draw(source, matrix, colorTransform, blendMode, clipRect, smoothing); 
    6161    } 
    62     // 外から与えられたBitmapDataに、自分の_bitmapDataを_blendModeを使って描画する。 
     62    // 外から与えられたBitmapDataに、自分の_bitmapDataを_blendModeとalphaを使って描画する。 
    6363    public function drawDest(dest:BitmapData):void { 
    64       // FIXME: alphaを使う! 
    6564      if (_show) { 
    6665        dest.draw(_bitmapData, null, _colorTransform, _blendMode); 
     
    109108    } 
    110109    public function set maskCheck(s:String):void { 
    111       Alert.show('まだマスクレイヤできてねっす', 'レイヤーツール'); 
    112       // _mask = (s == 'on'); 
     110      _mask = (s == 'on'); 
    113111    } 
    114112    public function set showCheck(s:String):void { 
    115113      _show = (s == 'on'); 
    116114    } 
     115    public function get bitmapData():BitmapData { 
     116      return _bitmapData; 
     117    } 
    117118  } 
    118119} 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/entities/GPLayerArray.as

    r1155 r1156  
    66  import flash.geom.Matrix; 
    77  import flash.geom.Rectangle; 
     8 
     9  import mx.controls.Alert; 
    810 
    911  // Arrayの継承はしない, IListを実装すればdataProviderに直指定できるけど、めんどい。 
     
    7476    } 
    7577 
    76     public function combine(s:uint, d:uint):void { 
    77       _a[s].drawDest(_a[d]); 
     78    public function mergeWithBelow(i:uint):void { 
     79      if (i == 0) { 
     80        Alert.show('統合するひとつ下のレイヤがありません。', 'レイヤツール'); 
     81        return;         
     82      } 
     83      _targetIndex = i - 1; 
     84      _a[i].drawDest(_a[_targetIndex].bitmapData); 
     85      _a.splice(i, 1); 
    7886      reindex(); 
    7987    } 
    8088 
    8189    public function remove(i:uint):void { 
     90      if (_a.length <= 1) { 
     91        Alert.show('レイヤ全てを削除することはできません。', 'レイヤツール'); 
     92        return; 
     93      } 
    8294      _a.splice(i, 1); 
    8395      reindex();