チェンジセット 3487: as3/gunyarapaint
- コミット日時:
- 2010/03/06 18:09:49 (3 年前)
- ファイル:
-
- as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/CanvasContext.as (更新) (8 diffs)
- as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/Player.as (更新) (1 diff)
- as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/Recorder.as (更新) (4 diffs)
- as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/UndoStack.as (更新) (3 diffs)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/CanvasContext.as
r3434 r3487 5 5 6 6 import org.libspark.gunyarapaint.framework.errors.NotSupportedVersionError; 7 import org.libspark.gunyarapaint.framework.events.UndoEvent; 7 8 8 9 public class CanvasContext extends EventDispatcher … … 24 25 { 25 26 m_undo.undo(m_painter); 27 if (hasEventListener(UndoEvent.UNDO)) 28 dispatchEvent(new UndoEvent(UndoEvent.UNDO, m_undo.undoCount, m_undo.redoCount)); 26 29 } 27 30 … … 32 35 { 33 36 m_undo.redo(m_painter); 37 if (hasEventListener(UndoEvent.REDO)) 38 dispatchEvent(new UndoEvent(UndoEvent.REDO, m_undo.undoCount, m_undo.redoCount)); 34 39 } 35 40 … … 40 45 { 41 46 m_undo.push(m_painter); 47 if (hasEventListener(UndoEvent.PUSH)) 48 dispatchEvent(new UndoEvent(UndoEvent.PUSH, m_undo.undoCount, m_undo.redoCount)); 42 49 } 43 50 … … 51 58 { 52 59 if (m_version <= 21) 53 m_undo.push(m_painter);60 pushUndo(); 54 61 } 55 62 63 /** 64 * Painter オブジェクトを作成する 65 * 66 * @param width 画像の幅 67 * @param height 画像の高さ 68 * @param version ペイントログのバージョン 69 */ 56 70 protected function createPainter(width:int, height:int, version:uint):void 57 71 { … … 66 80 throw new NotSupportedVersionError(version.toString()); 67 81 } 82 m_width = width; 83 m_height = height; 84 m_version = version; 68 85 } 69 86 … … 109 126 110 127 /** 111 * お絵描きを実行するオブジェクトを設定する112 *113 */114 internal function setPainter(value:Painter):void115 {116 m_painter = value;117 }118 119 /**120 * 現在のお絵描きログのバージョンを設定する121 *122 */123 internal function setVersion(value:uint):void124 {125 m_version = value;126 }127 128 /**129 128 * UndoStack オブジェクトを設定する 130 129 * … … 136 135 } 137 136 138 /**139 * 描写するキャンバスの幅を設定する140 *141 */142 internal function setWidth(value:uint):void143 {144 m_width = value;145 }146 147 /**148 * 描写するキャンバスの高さを設定する149 *150 * @return 画像の幅151 */152 internal function setHeight(value:uint):void153 {154 m_height = value;155 }156 157 137 private var m_version:uint; 158 138 private var m_painter:Painter; as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/Player.as
r3434 r3487 39 39 m_parser.loadCommands(); 40 40 m_parser.preload(); 41 setWidth(width);42 setHeight(height);43 setVersion(version);44 41 setUndo(new UndoStack(painter, m_parser.maxUndoCount)); 45 42 } as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/Recorder.as
r3479 r3487 1 1 package org.libspark.gunyarapaint.framework 2 2 { 3 import flash.utils.ByteArray;4 5 3 import org.libspark.gunyarapaint.framework.commands.ICommand; 4 import org.libspark.gunyarapaint.framework.events.CommandEvent; 6 5 7 6 public final class Recorder extends CanvasContext … … 9 8 public static const DEFAULT_UNDO_MAX:uint = 16; 10 9 11 public function Recorder( )10 public function Recorder(logger:Logger) 12 11 { 12 m_logger = logger; 13 13 super(); 14 var bytes:ByteArray = new ByteArray();15 m_logger = new Logger(bytes);16 14 } 17 15 … … 22 20 * @param height 画像の高さ 23 21 * @param undo やり直しできる回数 24 */ 22 */ 25 23 public function prepare(width:int, height:int, undo:int):void 26 24 { 27 setWidth(width);28 setHeight(height);29 25 m_logger.writeHeader(PAINTER_LOG_VERSION, width, height, undo); 30 26 m_logger.loadCommands(); … … 44 40 command.write(m_logger.bytes, args); 45 41 command.execute(this); 42 if (hasEventListener(CommandEvent.COMMITTED)) 43 dispatchEvent(new CommandEvent(CommandEvent.COMMITTED, command)); 46 44 } 47 45 as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/UndoStack.as
r3438 r3487 6 6 import org.libspark.gunyarapaint.framework.errors.RedoError; 7 7 import org.libspark.gunyarapaint.framework.errors.UndoError; 8 import org.libspark.gunyarapaint.framework.events.UndoEvent;9 8 10 public final class UndoStack extends EventDispatcher9 internal final class UndoStack 11 10 { 12 11 public function UndoStack(painter:Painter, 13 size:uint = 16, 14 target:IEventDispatcher = null) 12 size:uint = 16) 15 13 { 16 super(target);17 14 m_buffer = new Vector.<Object>(size + 1, true); 18 15 m_index = 0; … … 37 34 } 38 35 painter.undo = m_buffer[m_index]; 39 if (hasEventListener(UndoEvent.UNDO))40 dispatchEvent(new UndoEvent(UndoEvent.UNDO));41 36 } 42 37 … … 48 43 m_index = (m_index + 1) % m_buffer.length; 49 44 painter.undo = m_buffer[m_index]; 50 if (hasEventListener(UndoEvent.REDO))51 dispatchEvent(new UndoEvent(UndoEvent.REDO));52 45 } 53 46

