チェンジセット 1085
- コミット日時:
- 2008/08/27 18:15:34 (5 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/Canvas.as
r1084 r1085 38 38 private var canWidth:uint, canHeight:uint; 39 39 40 private var lineThickness:uint; 41 private var lineColor:uint; 42 private var lineAlpha:Number; 43 private var lineBlendMode:String; 44 private var lineScaleMode:String; 45 private var lineCapsStyle:String; 46 private var lineJointStyle:String; 47 private var lineMiterLimit:Number; 48 40 49 public function Canvas(width:uint, height:uint, undoBufferSize:uint, logger:Logger) 41 50 { … … 79 88 } 80 89 90 // ペン関連の初期化 91 setLineThickness(3); 92 setLineColor(0x000000); 93 setLineAlpha(1); 94 setLineBlendMode(flash.display.BlendMode.NORMAL); 95 setLineScaleMode(LineScaleMode.NORMAL); 96 setLineCapsStyle(CapsStyle.ROUND); 97 setLineJointStyle(JointStyle.ROUND); 98 setLineMiterLimit(3); 99 81 100 super(); 82 101 } … … 115 134 public const MODE_DROPPER:uint = 1; 116 135 private var penMode:uint = MODE_PEN; 117 private var lineColor:uint = 0x000000;118 private var lineThickness:uint = 3;119 private var lineAlpha:Number = 1;120 private var lineBlendMode:String = flash.display.BlendMode.NORMAL;121 private var lineScaleMode:String = LineScaleMode.NORMAL;122 private var lineCapsStyle:String = CapsStyle.ROUND;123 private var lineJointStyle:String = JointStyle.ROUND;124 private var lineMiterLimit:Number = 3;125 136 126 137 private function logWrite(info:Array):void { … … 131 142 132 143 public function setLineThickness(t:uint):void { 144 if (t > 255) { 145 // ToDo: alert 146 return; 147 } 133 148 this.lineThickness = t; 134 logWrite(['lineStyle', 'thickness', t])149 logWrite(['lineStyle', Logger.LINESTYLE_THICKNESS, t]) 135 150 } 136 151 public function setLineColor(color:uint):void { 137 152 this.lineColor = color; 138 logWrite(['lineStyle', 'color', color])153 logWrite(['lineStyle', Logger.LINESTYLE_COLOR, color]) 139 154 } 140 155 public function setLineAlpha(alpha:Number):void { 141 156 this.lineAlpha = alpha; 142 logWrite(['lineStyle', 'alpha', alpha])157 logWrite(['lineStyle', Logger.LINESTYLE_ALPHA, alpha]) 143 158 } 144 159 public function setLineBlendMode(blend:String):void { 145 160 this.lineBlendMode = blend; 146 logWrite(['lineStyle', 'blendMode', blend])161 logWrite(['lineStyle', Logger.LINESTYLE_BLEND_MODE, blend]) 147 162 } 148 163 public function setLineScaleMode(mode:String):void { 149 164 this.lineScaleMode = mode; 150 logWrite(['lineStyle', 'scaleMode', mode])165 logWrite(['lineStyle', Logger.LINESTYLE_SCALE_MODE, mode]) 151 166 } 152 167 public function setLineCapsStyle(caps:String):void { 153 168 this.lineCapsStyle = caps; 154 logWrite(['lineStyle', 'caps', caps])169 logWrite(['lineStyle', Logger.LINESTYLE_CAPS, caps]) 155 170 } 156 171 public function setLineJointStyle(joints:String):void { 157 172 this.lineJointStyle = joints; 158 logWrite(['lineStyle', 'joints', joints])173 logWrite(['lineStyle', Logger.LINESTYLE_JOINTS, joints]) 159 174 } 160 175 public function setLineMiterLimit(miterLimit:Number):void { 161 176 this.lineMiterLimit = miterLimit; 162 logWrite(['lineStyle', 'miterLimit', miterLimit])177 logWrite(['lineStyle', Logger.LINESTYLE_MITER_LIMIT, miterLimit]) 163 178 } 164 179 private function setLineStyle():void { … … 187 202 private function moveTo(x:Number, y:Number):void { 188 203 lineShape.graphics.moveTo(x, y); 204 setLineStyle(); 189 205 logWrite(['moveTo', x, y]); 190 206 } … … 197 213 case MODE_PEN: 198 214 moveTo(evt.localX, evt.localY); 199 setLineStyle();200 215 break; 201 216 case MODE_DROPPER: … … 308 323 309 324 private function playLogNext():void { 310 // FIXME: linestyle311 setLineStyle();312 325 var a:Array; 313 326 if ((a = log.read())) { … … 321 334 break; 322 335 case Logger.ACTION_LINESTYLE: 336 switch (a[1]) { 337 case Logger.LINESTYLE_THICKNESS: 338 setLineThickness(a[2]); 339 break; 340 case Logger.LINESTYLE_COLOR: 341 setLineColor(a[2]); 342 break; 343 case Logger.LINESTYLE_ALPHA: 344 setLineAlpha(a[2]); 345 break; 346 case Logger.LINESTYLE_BLEND_MODE: 347 setLineBlendMode(a[2]); 348 break; 349 case Logger.LINESTYLE_SCALE_MODE: 350 setLineScaleMode(a[2]); 351 break; 352 case Logger.LINESTYLE_CAPS: 353 setLineCapsStyle(a[2]); 354 break; 355 case Logger.LINESTYLE_JOINTS: 356 setLineJointStyle(a[2]); 357 break; 358 case Logger.LINESTYLE_MITER_LIMIT: 359 setLineMiterLimit(a[2]); 360 break; 361 } 323 362 break; 324 363 } as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/Logger.as
r1083 r1085 43 43 public static const ACTION_LINETO:uint = 2; 44 44 public static const ACTION_LINESTYLE:uint = 3; 45 46 // LINESTYLE 47 public static const LINESTYLE_THICKNESS:uint = 1; 48 public static const LINESTYLE_COLOR:uint = 2; 49 public static const LINESTYLE_ALPHA:uint = 3; 50 public static const LINESTYLE_BLEND_MODE:uint = 4; 51 public static const LINESTYLE_SCALE_MODE:uint = 5; 52 public static const LINESTYLE_CAPS:uint = 6; 53 public static const LINESTYLE_JOINTS:uint = 7; 54 public static const LINESTYLE_MITER_LIMIT:uint = 8; 45 55 46 56 public function write(info:Array):void { … … 84 94 break; 85 95 case 'lineStyle': 86 var type:uint = info[1]; 87 var value:uint = info[2]; 96 var style:uint = info[1]; 97 writeByte(ACTION_LINESTYLE); 98 writeByte(style); 99 switch (style) { 100 case Logger.LINESTYLE_THICKNESS: 101 writeByte(info[2]); // 255 102 break; 103 case Logger.LINESTYLE_COLOR: 104 writeUInt(info[2]); 105 break; 106 case Logger.LINESTYLE_ALPHA: 107 case Logger.LINESTYLE_MITER_LIMIT: 108 writeDouble(info[2]); 109 break; 110 case Logger.LINESTYLE_BLEND_MODE: 111 case Logger.LINESTYLE_SCALE_MODE: 112 case Logger.LINESTYLE_CAPS: 113 case Logger.LINESTYLE_JOINTS: 114 writeUTF(info[2]); 115 break; 116 } 88 117 break; 89 118 } … … 99 128 log.writeUnsignedInt(value); 100 129 } 130 private function writeDouble(value:Number):void { 131 log.writeDouble(value); 132 } 133 private function writeUTF(value:String):void { 134 log.writeUTF(value); 135 } 101 136 private function readByte():uint { 102 137 return log.readUnsignedByte(); … … 107 142 private function readUShort():uint { 108 143 return uint(log.readShort() & 0xffff); 144 } 145 private function readUInt():uint { 146 return log.readUnsignedInt(); 147 } 148 private function readDouble():Number { 149 return log.readDouble(); 150 } 151 private function readUTF():String { 152 return log.readUTF(); 109 153 } 110 154 public function read():Array { … … 112 156 var dx:int, dy:int; 113 157 var short:uint; 158 var obj:Object; 114 159 try { 115 160 byte = readByte(); … … 128 173 return [ACTION_LINETO, preX, preY]; 129 174 case ACTION_LINESTYLE: 130 return [ACTION_LINESTYLE]; 175 dx = readByte(); // style type 176 switch (dx) { 177 case Logger.LINESTYLE_THICKNESS: 178 obj = readByte(); 179 break; 180 case Logger.LINESTYLE_COLOR: 181 obj = readUInt(); 182 break; 183 case Logger.LINESTYLE_ALPHA: 184 case Logger.LINESTYLE_MITER_LIMIT: 185 obj = readDouble(); 186 break; 187 case Logger.LINESTYLE_BLEND_MODE: 188 case Logger.LINESTYLE_SCALE_MODE: 189 case Logger.LINESTYLE_CAPS: 190 case Logger.LINESTYLE_JOINTS: 191 obj = readUTF(); 192 break; 193 } 194 return [ACTION_LINESTYLE, dx, obj]; 131 195 default: 132 196 if (byte & 0x80) {

