- コミット日時:
- 2010/06/03 01:36:31 (3 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/LayerBitmapCollection.as
r3938 r3947 340 340 var count:uint = m_layers.length; 341 341 for (var i:uint = 0; i < count; i++) { 342 m_sprite.removeChildAt(i); 342 var layer:LayerBitmap = m_layers[i]; 343 // ここから例外を送出することは不具合が無ければないと考えられる 344 m_sprite.removeChild(layer.displayObject); 343 345 } 344 346 m_layers.splice(0, count); … … 369 371 internal function loadState(undoData:Object):void 370 372 { 371 var i:uint = 0;372 373 var layers:Vector.<Object> = undoData.layers; 373 var oldLayerCount:uint = m_layers.length; 374 var newLayerCount:uint = layers.length; 375 // レイヤー切り替えが発生しないケースの対処 376 // 古いレイヤーが一緒に消えないようにする必要がある 377 var c:uint = newLayerCount > oldLayerCount ? oldLayerCount : newLayerCount; 378 for (i = 0; i < c; i++) { 374 var count:uint = layers.length; 375 clear(); 376 for (var i:uint = 0; i < count; i++) { 379 377 var data:Object = layers[i]; 380 378 var newLayer:LayerBitmap = new LayerBitmap(data.bitmapData); 381 379 newLayer.fromJSON(data); 382 m_sprite.removeChildAt(i); 383 m_sprite.addChildAt(newLayer.displayObject, i); 384 m_layers[i] = newLayer; 380 m_sprite.addChild(newLayer.displayObject); 381 m_layers.push(newLayer); 385 382 } 386 383 currentIndex = undoData.index;

