チェンジセット 3844

差分発生行の前後
無視リスト:
コミット日時:
2010/04/24 19:00:04 (3 年前)
コミッタ:
hkrn
ログメッセージ:

added #save and #load in UndoStack? class and moved newLayerBitmap to LayerBitmapCollection?

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/LayerBitmapCollection.as

    r3834 r3844  
    492492         
    493493        /** 
     494         * レイヤーを保存するために必要な BitmapData を生成する 
     495         *  
     496         */ 
     497        public function get newLayerBitmapData():BitmapData 
     498        { 
     499            return new BitmapData(width, height * count, true, 0x0); 
     500        } 
     501         
     502        /** 
    494503         * スプライトオブジェクトを返す 
    495504         *  
  • as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/Painter.as

    r3834 r3844  
    520520         
    521521        /** 
    522          * レイヤーを保存するために必要な BitmapData を生成する 
    523          *  
    524          */ 
    525         public function get newLayerBitmapData():BitmapData 
    526         { 
    527             return new BitmapData(width, height * m_layers.count, true, 0x0); 
    528         } 
    529          
    530         /** 
    531522         * 現在のレイヤーの透明度を変更する 
    532523         *  
  • as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/UndoStack.as

    r3694 r3844  
    11package org.libspark.gunyarapaint.framework 
    22{ 
     3    import flash.display.BitmapData; 
    34    import flash.events.EventDispatcher; 
     5    import flash.utils.ByteArray; 
    46     
    57    import org.libspark.gunyarapaint.framework.errors.RedoError; 
     
    2426            } 
    2527            layers.saveState(m_buffer[0]); 
     28        } 
     29         
     30        public function load(value:Object):void 
     31        { 
     32            var bufferCount:uint = m_buffer.length; 
     33            var data:Object = value.data; 
     34            for (var i:uint = 0; i < bufferCount; i++) { 
     35                var layers:Object = data[i]; 
     36                m_buffer[i] = {}; 
     37                if (layers != null) { 
     38                    var layerCount:uint = layers.length; 
     39                    for (var j:uint = 0; j < layerCount; j++) { 
     40                        var layer:Object = layers[j]; 
     41                        var bitmapData:BitmapData = new BitmapData(layer.width, layer.height); 
     42                        var pixels:ByteArray = ByteArray(layer.bitmapData); 
     43                        pixels.position = 0; 
     44                        bitmapData.setPixels(bitmapData.rect, pixels); 
     45                        layer.bitmapData = bitmapData; 
     46                        delete layer.width; 
     47                        delete layer.height; 
     48                    } 
     49                    m_buffer[i] = layers; 
     50                } 
     51            } 
     52            m_index = value.index; 
     53            m_first = value.first; 
     54            m_last = value.last; 
     55        } 
     56         
     57        public function save(value:Object):void 
     58        { 
     59            var bufferCount:uint = m_buffer.length; 
     60            var buffer:Array = []; 
     61            for (var i:uint = 0; i < bufferCount; i++) { 
     62                var layers:Object = m_buffer[i].layers; 
     63                if (layers != null) { 
     64                    var layerCount:uint = layers.length; 
     65                    for (var j:uint = 0; j < layerCount; j++) { 
     66                        var layer:Object = layers[j]; 
     67                        var bitmapData:BitmapData = BitmapData(layer.bitmapData); 
     68                        var pixels:ByteArray = bitmapData.getPixels(bitmapData.rect); 
     69                        pixels.position = 0; 
     70                        layer.bitmapData = pixels; 
     71                        layer.width = bitmapData.width; 
     72                        layer.height = bitmapData.height; 
     73                    } 
     74                    buffer.push(layers); 
     75                } 
     76            } 
     77            value.data = buffer; 
     78            value.index = m_index; 
     79            value.first = m_first; 
     80            value.last = m_last; 
    2681        } 
    2782