チェンジセット 1122
- コミット日時:
- 2008/08/27 18:18:18 (5 年前)
- ファイル:
-
- as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/controls/GPCanvas.as (更新) (3 diffs)
- as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/controls/PenDetailControl.mxml (更新) (1 diff)
- as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/controls/PenDetailControlScript.as (更新) (1 diff)
- as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/entities/GPPen.as (更新) (2 diffs)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/controls/GPCanvas.as
r1121 r1122 9 9 import flash.events.MouseEvent; 10 10 import flash.geom.Point; 11 import flash.geom.Rectangle; 11 12 import flash.utils.ByteArray; 12 13 … … 230 231 231 232 // マウス座標から描画座標に変換。 232 p rivatefunction zz(n:Number):Number {233 public static function zz(n:Number):Number { 233 234 return Math.floor(n) + 0.5; 235 } 236 // マウス座標の描画座標での比較 237 public static function comparePoint(ax:Number, ay:Number, bx:Number, by:Number):Boolean { 238 return (zz(ax) == zz(bx) && zz(ay) == zz(by)); 234 239 } 235 240 … … 287 292 288 293 public function floodFill():void { 289 canvasData.floodFill(currentPoint.x, currentPoint.y, _pen.argb Color);294 canvasData.floodFill(currentPoint.x, currentPoint.y, _pen.argbRGBColor); 290 295 afterDrawBitmap(); 291 296 logWrite(['floodFill', x, y]); 292 297 } 293 298 294 299 // FIXME: x, yはcurrentPointでいいのでは?lineStyleもmoveToでセットしてくれるし。 295 300 public function drawRect(x:Number, y:Number, width:uint, height:uint):void { as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/controls/PenDetailControl.mxml
r1121 r1122 14 14 <mx:Label x="3" y="28" text="太"/> 15 15 <mx:HSlider x="16" y="28" width="87" minimum="1" maximum="30" snapInterval="1" height="12" value="3" id="thicknessSlider"/> 16 <mx:Button x="6" y="48" label="細" width="20" paddingLeft="0" paddingRight="0" click="changeThickness(1)"/> 17 <mx:Button x="30" y="48" label="中" width="20" paddingLeft="0" paddingRight="0" click="changeThickness(3);"/> 18 <mx:Button x="54" y="48" label="太" width="20" paddingLeft="0" paddingRight="0" click="changeThickness(10);"/> 19 <mx:Button x="78" y="48" label="極" width="20" paddingLeft="0" paddingRight="0" click="changeThickness(30);"/> 16 <mx:Button x="2" y="48" label="極" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton1" click="changeThickness(1);"/> 17 <mx:Button x="23" y="48" label="細" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton2" click="changeThickness(3)"/> 18 <mx:Button x="44" y="48" label="中" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton3" click="changeThickness(10);"/> 19 <mx:Button x="65" y="48" label="太" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton4" click="changeThickness(20);"/> 20 <mx:Button x="86" y="48" label="極" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton5" click="changeThickness(30);"/> 20 21 21 22 <!-- color palette --> as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/controls/PenDetailControlScript.as
r1121 r1122 131 131 cancelDropper(); 132 132 _pen.mode = uint(evt.currentTarget.value); 133 switch(_pen.mode) { 134 case GPPen.PEN_MODE_HAND: 135 case GPPen.PEN_MODE_LINE: 136 thicknessButton1.enabled = true; 137 thicknessButton2.enabled = true; 138 thicknessButton3.enabled = true; 139 thicknessButton4.enabled = true; 140 thicknessButton5.enabled = true; 141 thicknessSlider.enabled = true; 142 alphaSlider.enabled = true; 143 blendModeComboBox.enabled = true; 144 break; 145 case GPPen.PEN_MODE_FLOOD_FILL: 146 thicknessButton1.enabled = false; 147 thicknessButton2.enabled = false; 148 thicknessButton3.enabled = false; 149 thicknessButton4.enabled = false; 150 thicknessButton5.enabled = false; 151 thicknessSlider.enabled = false; 152 alphaSlider.enabled = false; 153 blendModeComboBox.enabled = false; 154 break; 155 } 133 156 changePen(); 134 157 } as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint/entities/GPPen.as
r1121 r1122 68 68 public function get argbColor():uint { 69 69 return uint(_alpha * 255) << 24 | _color; 70 } 71 public function get argbRGBColor():uint { 72 return 0xFF000000 | _color; 70 73 } 71 74 … … 216 219 _canvas.drawCircle(thickness / 2); 217 220 _canvas.endFill(); 218 alpha = tmpAlpha; 221 alpha = tmpAlpha; 219 222 } 220 223 _canvas.drawShapeOnBitmap(); 221 224 break; 222 225 case PEN_MODE_LINE: 223 _canvas.moveTo(fromPoint.x, fromPoint.y); 224 _canvas.lineTo(evt.localX, evt.localY); 225 _canvas.drawShapeOnBitmap(); 226 if (!GPCanvas.comparePoint(fromPoint.x, fromPoint.y, evt.localX, evt.localY)) { 227 // 始点と終点が違う場合にのみ線を引く 228 _canvas.previewClear(); 229 _canvas.moveTo(fromPoint.x, fromPoint.y); 230 _canvas.lineTo(evt.localX, evt.localY); 231 _canvas.drawShapeOnBitmap(); 232 } 226 233 break; 227 234 }

