- コミット日時:
- 2010/03/10 01:19:46 (3 年前)
- ファイル:
-
- as3/gunyarapaint/branches/gunyarapaint/compat/src/gunyarapaint.as (更新) (7 diffs)
- as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/controls/GPCanvas.as (更新) (1 diff)
- as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/controls/GPLayerWindowControl.mxml (更新) (1 diff)
- as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/controls/PenDetailWindowControl.mxml (更新) (12 diffs)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/gunyarapaint/branches/gunyarapaint/compat/src/gunyarapaint.as
r3503 r3508 1 1 private const DEBUG:Boolean = true; 2 2 3 import flash.display.InteractiveObject;4 3 import flash.events.Event; 5 4 import flash.events.KeyboardEvent; … … 17 16 import mx.managers.PopUpManager; 18 17 18 import org.libspark.gunyarapaint.controls.GPPasswordWindowControl; 19 import org.libspark.gunyarapaint.framework.LayerBitmapCollection; 19 20 import org.libspark.gunyarapaint.framework.Pen; 20 import org.libspark.gunyarapaint.framework.LayerBitmapCollection; 21 import org.libspark.gunyarapaint.framework.Painter; 21 import org.libspark.gunyarapaint.framework.Recorder; 22 22 import org.libspark.gunyarapaint.framework.events.CommandEvent; 23 23 import org.libspark.gunyarapaint.framework.events.UndoEvent; 24 import org.libspark.gunyarapaint.controls.GPPasswordWindowControl;25 import org.libspark.gunyarapaint.framework.Recorder;26 24 import org.libspark.gunyarapaint.framework.modules.DrawModuleFactory; 27 25 import org.libspark.gunyarapaint.framework.modules.IDrawable; … … 71 69 public function get layers():LayerBitmapCollection 72 70 { 73 return m_recorder. painter.layers;71 return m_recorder.layers; 74 72 } 75 73 76 74 public function get pen():Pen 77 75 { 78 return m_recorder.p ainter.pen;76 return m_recorder.pen; 79 77 } 80 78 … … 91 89 public function get canvasView():Sprite 92 90 { 93 return m_recorder. painter.view;91 return m_recorder.view; 94 92 } 95 93 … … 126 124 undoBufferSize = int(parameters['undoBufferSize']); 127 125 128 m_recorder = new Recorder(new ByteArray()); 129 m_recorder.prepare(width, height, undoBufferSize); 126 m_recorder = Recorder.create(width, height, undoBufferSize); 130 127 m_module = DrawModuleFactory.create(DrawModuleFactory.FREE_HAND, m_recorder); 131 128 m_commit = 0; … … 341 338 case 57: // 9 342 339 if (!evt.shiftKey)// 念のため SHIFTキー対応 (テンキーのほうは放置) 343 penDetailWindow. thickness = evt.keyCode - 48;340 penDetailWindow.currentThickness = evt.keyCode - 48; 344 341 break; 345 342 case 97: // ten-key 1 … … 352 349 case 104: // ten-key 8 353 350 case 105: // ten-key 9 354 penDetailWindow. thickness = evt.keyCode - 96;351 penDetailWindow.currentThickness = evt.keyCode - 96; 355 352 break; 356 353 case 45: // INS as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/controls/GPCanvas.as
r3503 r3508 30 30 addChild(m_auxLine); 31 31 addChild(m_auxPixel); 32 addEventListener(Event.REMOVED , onRemove);32 addEventListener(Event.REMOVED_FROM_STAGE, onRemove); 33 33 addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 34 34 addEventListener(MouseEvent.MOUSE_UP, onMouseUp); as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/controls/GPLayerWindowControl.mxml
r3503 r3508 16 16 import org.libspark.gunyarapaint.framework.LayerBitmap; 17 17 import org.libspark.gunyarapaint.framework.LayerBitmapCollection; 18 import org.libspark.gunyarapaint.framework.Painter;19 18 import org.libspark.gunyarapaint.utils.ComponentResizer; 20 19 import org.libspark.gunyarapaint.framework.ui.IApplication; as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/controls/PenDetailWindowControl.mxml
r3503 r3508 1 1 <?xml version="1.0" encoding="utf-8"?> 2 <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="128" height="450" xmlns:ns1="org.libspark.gunyarapaint.controls.*" >2 <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="128" height="450" xmlns:ns1="org.libspark.gunyarapaint.controls.*" initialize="onInitialize()"> 3 3 <mx:Script> 4 4 <![CDATA[ … … 13 13 import org.libspark.gunyarapaint.framework.ui.IApplication; 14 14 15 private var m_ gridItemPalette:GridItem;15 private var m_palette:GridItem; 16 16 17 17 // Ctrlとかのショートカットキーで変わったペンToolを戻す … … 45 45 var application:IApplication = IApplication(Application.application); 46 46 application.setModule(String(blendModeComboBox.value)); 47 }48 49 public function drawPreview(color:uint, alpha:Number, thickness:uint):void50 {51 var g:Graphics = previewCanvas.graphics;52 g.clear();53 g.beginFill(color, alpha);54 g.drawCircle((previewCanvas.width) / 2, (previewCanvas.height) / 2, thickness / 2);55 g.endFill();56 }57 58 // TODO:整理する59 public function changePen(mode:String, color:uint, alpha:Number, thickness:uint):void60 {61 m_gridItemPalette.setStyle('backgroundColor', color);62 setColorRGBSlider(color);63 drawPreview(color, alpha, thickness);64 currentState = mode;65 47 } 66 48 … … 112 94 } 113 95 114 public function set thickness(t:uint):void 115 { 116 IApplication(Application.application).module.thickness = thicknessSlider.value = t; 96 public function set currentColor(value:uint):void 97 { 98 m_palette.setStyle("backgroundColor", value); 99 IApplication(Application.application).module.color = m_color = value; 100 drawPreview(); 101 colBSlider.value = value % 256; 102 value >>>= 8; 103 colGSlider.value = value % 256; 104 value >>>= 8; 105 colRSlider.value = value % 256; 106 } 107 108 public function set currentAlpha(value:Number):void 109 { 110 IApplication(Application.application).module.alpha = m_alpha = alphaSlider.value = value; 111 drawPreview(); 112 } 113 114 public function set currentThickness(value:uint):void 115 { 116 IApplication(Application.application).module.thickness = m_thickness = thicknessSlider.value = value; 117 drawPreview(); 117 118 } 118 119 … … 122 123 onClickPalette(1); 123 124 // 初期値と設定値が一緒なのでイベントが飛んでこない、明示的に呼んであげる 124 drawPreview(0x000000, 1, 3); 125 currentColor = 0; 126 currentAlpha = 1; 127 currentThickness = 1; 128 drawPreview(); 125 129 } 126 130 … … 128 132 { 129 133 var palette:GridItem = this["gridItemPalette" + index]; 130 if (m_ gridItemPalette) {131 m_ gridItemPalette.setStyle("borderThickness", 1);132 m_ gridItemPalette.setStyle("borderColor", 0xb7babc);134 if (m_palette) { 135 m_palette.setStyle("borderThickness", 1); 136 m_palette.setStyle("borderColor", 0xb7babc); 133 137 } 134 138 palette.setStyle("borderThickness", 3); 135 139 palette.setStyle("borderColor", 0x000000); 136 m_gridItemPalette = palette; 137 IApplication(Application.application).module.color = m_gridItemPalette.getStyle("backgroundColor"); 138 setColorRGBSlider(m_gridItemPalette.getStyle("backgroundColor")); // 20090905-haku2 ins 140 m_palette = palette; 141 currentColor = m_palette.getStyle("backgroundColor"); 139 142 } 140 143 … … 144 147 // FIXME: お絵かきのログにパレット変更も反映したい 145 148 var picker:SColorPicker = new SColorPicker(); 146 picker.selectedColor = m_ gridItemPalette.getStyle('backgroundColor');149 picker.selectedColor = m_palette.getStyle('backgroundColor'); 147 150 picker.title = "パレットに入れる色を選んでください。"; 148 151 … … 172 175 var color:uint = SColorPicker(evt.target).selectedColor; 173 176 m_application.module.color = color; 174 m_ gridItemPalette.setStyle("backgroundColor", color);177 m_palette.setStyle("backgroundColor", color); 175 178 setColRGBSlider(color); // 20090905-haku2 ins 176 179 PopUpManager.removePopUp(IFlexDisplayObject(evt.target)); … … 227 230 } 228 231 229 private function onChangeThicknessSlider(evt:SliderEvent):void230 {231 IApplication(Application.application).module.thickness = evt.value;232 }233 234 // 選択した色をRGBスライダに反映235 private function setColorRGBSlider(color:uint):void236 {237 colBSlider.value = color % 256;238 color >>>= 8;239 colGSlider.value = color % 256;240 color >>>= 8;241 colRSlider.value = color % 256;242 }243 244 232 private function onChangeColorSlider(evt:SliderEvent, mode:String):void 245 233 { 246 var c olor:uint = 0;234 var c:uint = 0; 247 235 switch (mode) { 248 236 case "red": 249 c olor+= evt.value * 65536;250 c olor+= colGSlider.value * 256;251 c olor+= colBSlider.value;237 c += evt.value * 65536; 238 c += colGSlider.value * 256; 239 c += colBSlider.value; 252 240 break; 253 241 case "green": 254 c olor+= colRSlider.value * 65536;255 c olor+= evt.value * 256;256 c olor+= colBSlider.value;242 c += colRSlider.value * 65536; 243 c += evt.value * 256; 244 c += colBSlider.value; 257 245 break; 258 246 case "blue": 259 c olor+= colRSlider.value * 65536;260 c olor+= colGSlider.value * 256;261 c olor+= evt.value;247 c += colRSlider.value * 65536; 248 c += colGSlider.value * 256; 249 c += evt.value; 262 250 break; 263 251 } 264 IApplication(Application.application).module.color = color; 265 m_gridItemPalette.setStyle('backgroundColor', color); 266 } 267 268 private function onChangeAlphaSlider(evt:SliderEvent):void 269 { 270 IApplication(Application.application).module.alpha = evt.value; 271 } 252 currentColor = c; 253 } 254 255 private function drawPreview():void 256 { 257 var g:Graphics = previewCanvas.graphics; 258 g.clear(); 259 g.beginFill(m_color, m_alpha); 260 g.drawCircle(previewCanvas.width / 2, previewCanvas.height / 2, m_thickness / 2); 261 g.endFill(); 262 } 263 264 private var m_color:uint; 265 private var m_alpha:Number; 266 private var m_thickness:uint; 272 267 ]]> 273 268 </mx:Script> … … 365 360 </mx:states> 366 361 367 <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="108" height="410" initialize="onInitialize()">362 <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="108" height="410"> 368 363 369 364 <!-- preview --> … … 374 369 <!-- thickness --> 375 370 <mx:Label x="3" y="28" text="太"/> 376 <mx:HSlider x="16" y="28" width="87" minimum="1" maximum="30" snapInterval="1" height="12" value="3" id="thicknessSlider" change=" onChangeThicknessSlider(event)"/>377 <mx:Button x="2" y="47" label="極" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton1" click=" thickness = 1"/>378 <mx:Button x="23" y="47" label="細" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton2" click=" thickness = 3"/>379 <mx:Button x="44" y="47" label="中" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton3" click=" thickness = 10"/>380 <mx:Button x="65" y="47" label="太" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton4" click=" thickness = 20"/>381 <mx:Button x="86" y="47" label="極" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton5" click=" thickness = 30"/>371 <mx:HSlider x="16" y="28" width="87" minimum="1" maximum="30" snapInterval="1" height="12" value="3" id="thicknessSlider" change="currentThickness = event.value"/> 372 <mx:Button x="2" y="47" label="極" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton1" click="currentThickness = 1"/> 373 <mx:Button x="23" y="47" label="細" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton2" click="currentThickness = 3"/> 374 <mx:Button x="44" y="47" label="中" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton3" click="currentThickness = 10"/> 375 <mx:Button x="65" y="47" label="太" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton4" click="currentThickness = 20"/> 376 <mx:Button x="86" y="47" label="極" width="20" paddingLeft="0" paddingRight="0" id="thicknessButton5" click="currentThickness = 30"/> 382 377 383 378 <!-- color palette --> … … 451 446 <mx:Label x="3" y="285" text="透"/> 452 447 <mx:Label x="1" y="295" text="{alphaSlider.value}" width="28" enabled="false" fontSize="8"/> 453 <mx:HSlider id ="alphaSlider" x="20" y="282" width="87" minimum="0.05" maximum="1" snapInterval="0.05" value="1" change=" onChangeAlphaSlider(event)"/>448 <mx:HSlider id ="alphaSlider" x="20" y="282" width="87" minimum="0.05" maximum="1" snapInterval="0.05" value="1" change="currentAlpha = event.value"/> 454 449 455 450 <!-- rgb -->

