チェンジセット 3548

差分発生行の前後
無視リスト:
コミット日時:
2010/03/15 00:21:24 (2 年前)
コミッタ:
hkrn
ログメッセージ:

catch and process PenEvent? if color or alpha or thickness has been changed

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/controls/PenDetailWindowControl.mxml

    r3539 r3548  
    1414             
    1515            import org.libspark.gunyarapaint.framework.Pen; 
     16            import org.libspark.gunyarapaint.framework.events.PenEvent; 
    1617            import org.libspark.gunyarapaint.framework.modules.CircleModule; 
    1718            import org.libspark.gunyarapaint.framework.modules.CanvasModuleContext; 
     
    107108            public function set currentColor(value:uint):void 
    108109            { 
    109                 m_palette.setStyle("backgroundColor", value); 
    110                 IApplication(Application.application).module.color = m_color = value; 
    111                 drawPreview(); 
     110                IApplication(Application.application).module.color = value; 
     111            } 
     112             
     113            public function set currentAlpha(value:Number):void 
     114            { 
     115                IApplication(Application.application).module.alpha = value; 
     116            } 
     117             
     118            public function set currentThickness(value:uint):void 
     119            { 
     120                IApplication(Application.application).module.thickness = value; 
     121            } 
     122             
     123            private function onChangeAlpha(event:PenEvent):void 
     124            { 
     125                var pen:Pen = IApplication(Application.application).pen; 
     126                var value:Number = pen.alpha; 
     127                alphaSlider.value = value; 
     128                drawPreview(pen.thickness, pen.color, value); 
     129            } 
     130             
     131            private function onChangeColor(event:PenEvent):void 
     132            { 
     133                var pen:Pen = IApplication(Application.application).pen; 
     134                var value:uint = pen.color; 
     135                if (m_palette != null) 
     136                    m_palette.setStyle("backgroundColor", value); 
    112137                colBSlider.value = value % 256; 
    113138                value >>>= 8; 
     
    115140                value >>>= 8; 
    116141                colRSlider.value = value % 256; 
    117             } 
    118              
    119             public function set currentAlpha(value:Number):void 
    120             { 
    121                 IApplication(Application.application).module.alpha = m_alpha = alphaSlider.value = value; 
    122                 drawPreview(); 
    123             } 
    124              
    125             public function set currentThickness(value:uint):void 
    126             { 
    127                 IApplication(Application.application).module.thickness = m_thickness = thicknessSlider.value = value; 
    128                 drawPreview(); 
     142                drawPreview(pen.thickness, value, pen.alpha); 
     143            } 
     144             
     145            private function onChangeThickness(event:PenEvent):void 
     146            { 
     147                var pen:Pen = IApplication(Application.application).pen; 
     148                var value:uint = pen.thickness; 
     149                thicknessSlider.value = value; 
     150                drawPreview(value, pen.color, pen.alpha); 
    129151            } 
    130152             
     
    132154            { 
    133155                var application:IApplication = IApplication(Application.application); 
     156                blendModeComboBox.dataProvider = application.supportedBlendModes; 
     157                //onClickPalette(1); 
     158                // 初期値と設定値が一緒なのでイベントが飛んでこない、明示的に呼んであげる 
    134159                var pen:Pen = application.pen; 
    135                 blendModeComboBox.dataProvider = application.supportedBlendModes; 
    136                 onClickPalette(1); 
    137                 // 初期値と設定値が一緒なのでイベントが飛んでこない、明示的に呼んであげる 
    138                 currentColor = pen.color; 
    139                 currentAlpha = pen.alpha; 
    140                 currentThickness = pen.thickness; 
    141                 drawPreview(); 
     160                drawPreview(pen.thickness, pen.color, pen.alpha); 
     161                pen.addEventListener(PenEvent.ALPHA, onChangeAlpha); 
     162                pen.addEventListener(PenEvent.COLOR, onChangeColor); 
     163                pen.addEventListener(PenEvent.THICKNESS, onChangeThickness); 
    142164            } 
    143165             
     
    263285            } 
    264286             
    265             private function drawPreview():void 
     287            private function drawPreview(thickness:uint, color:uint, alpha:Number):void 
    266288            { 
    267289                var g:Graphics = previewCanvas.graphics; 
    268290                g.clear(); 
    269                 g.beginFill(m_color, m_alpha); 
    270                 g.drawCircle(previewCanvas.width / 2, previewCanvas.height / 2, m_thickness / 2); 
     291                g.beginFill(color, alpha); 
     292                g.drawCircle(previewCanvas.width / 2, previewCanvas.height / 2, thickness / 2); 
    271293                g.endFill(); 
    272294            } 
     
    277299                IApplication(Application.application).module.blendMode = String(blendModeComboBox.value); 
    278300            } 
    279              
    280             private var m_color:uint; 
    281             private var m_alpha:Number; 
    282             private var m_thickness:uint; 
    283301        ]]> 
    284302    </mx:Script>