チェンジセット 3540: as3/gunyarapaint

差分発生行の前後
無視リスト:
コミット日時:
2010/03/14 20:25:52 (3 年前)
コミッタ:
hkrn
ログメッセージ:

refactoring at zoom and rotate

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/gunyarapaint.as

    r3538 r3540  
    6161    m_module = m_context.getModule(value); 
    6262    if (m_module == null) 
    63         throw new IllegalOperationError(); 
     63        throw new IllegalOperationError(value 
     64            + " is not the ICanvasModule implemented module"); 
    6465} 
    6566 
     
    145146private function onCommit(event:CommandEvent):void 
    146147{ 
    147     //trace(event.command); 
     148    trace(event.command); 
    148149    m_commit++; 
    149150} 
     
    281282            break; 
    282283        case Keyboard.SPACE: 
    283             penDetailWindow.pen = ""; // handtool 
     284            penDetailWindow.pen = MovingCanvasModule.MOVING_CANVAS; 
    284285            break; 
    285286        case 48: // 0 
     
    296297            break; 
    297298        case 73: // i 
    298             windowsResetButtonHandler(null); 
     299            resetWindowsPosition(); 
    299300            break; 
    300301        case 77: // m 
     
    404405} 
    405406 
    406 private function windowsResetButtonHandler(evt:FlexEvent):void 
     407private function resetWindowsPosition():void 
    407408{ 
    408409    gpCanvasWindow.rotate(0); 
    409      
    410410    gpCanvasWindow.transform.matrix = new Matrix(1, 0, 0, 1, initCanvasWindowPos.x, initCanvasWindowPos.y); 
    411411    penDetailWindow.move(initPenDetailWindowPos.x, initPenDetailWindowPos.y); 
     
    413413    gpCanvasWindow.width = initCanvasWindowSize.x; 
    414414    gpCanvasWindow.height = initCanvasWindowSize.y; 
    415      
    416415    setRotate(0); 
    417416    setZoom(1); 
     417} 
     418 
     419// 数値入力で拡大率指定 
     420private function onChangeCanvasZoom(evt:Event):void 
     421{ 
     422    var value:Number = Number(canvasZoomValue.text); 
     423    if (value <= 0) { 
     424        value = 1; 
     425    } 
     426    else if (value >= 100) { 
     427        value /= 100; 
     428    } 
     429    else { 
     430        value = -(100 / value) + 2; 
     431    } 
     432    setZoom(value); 
     433} 
     434 
     435// 数値入力でキャンバス回転角度指定 
     436private function onChangeCanvasRotate(evt:Event):void 
     437{ 
     438    setRotate(Number(canvasRotateValue.text)); 
     439} 
     440 
     441private function setRotate(value:Number):void 
     442{ 
     443    canvasRotate.value = value; 
     444    canvasRotateValue.text = String(-canvasRotate.value); // 20090909-haku2 ins キャンバス回転角度をテキストボックスに反映 
     445    gpCanvasWindow.rotate(canvasRotate.value); 
     446} 
     447 
     448private function setZoom(value:Number):void 
     449{ 
     450    var n:Number = value; 
     451    if (n < 1) 
     452        n = 1.0 / (-value + 2); 
     453    n *= 10000; 
     454    canvasZoom.value = value; 
     455    gpCanvasWindow.zoom(value);   
     456    // 拡大率をテキストボックスに反映 
     457    canvasZoomValue.text = String(Math.round(n) / 100); 
     458} 
     459 
     460private function onChangeAuxDivideCount(evt:NumericStepperEvent):void 
     461{ 
     462    gpCanvasWindow.auxDivideCount = uint(evt.value); 
     463} 
     464 
     465private function onChangeAuxBoxVisible(evt:Event):void 
     466{ 
     467    gpCanvasWindow.auxBoxVisible = evt.target.selected; 
     468} 
     469 
     470private function onChangeAuxSkewVisible(evt:Event):void 
     471{ 
     472    gpCanvasWindow.auxSkewVisible = evt.target.selected; 
     473} 
     474 
     475// 20090906-haku2 ins start 
     476// 補助線種類の変更 
     477private function onChangeAuxType(evt:ListEvent):void 
     478{ 
     479    var n:Number = additionalNumberStepper.value; 
     480    if (evt.currentTarget.value == 0) { 
     481        additionalNumberStepper.minimum = 2; 
     482        additionalNumberStepper.maximum = 16; 
     483        gpCanvasWindow.enableAuxPixel = false; 
     484    } 
     485    else { 
     486        additionalNumberStepper.minimum = 4; 
     487        additionalNumberStepper.maximum = 80; 
     488        gpCanvasWindow.enableAuxPixel = true; 
     489    } 
    418490} 
    419491 
     
    468540    /* 
    469541    _logger = GPLogger.createForDraw(width, height, undoBufferSize, 
    470         baseImg, baseInfo); 
     542    baseImg, baseInfo); 
    471543    gpCanvasWindow.logger = _logger; 
    472544    */ 
     
    474546    enabled = true;   
    475547} 
    476  
    477 private function canvasZoomHandler(evt:SliderEvent):void 
    478 { 
    479     // 20090905-haku2 ins start 
    480     // 拡大率をテキストボックスに反映 
    481     if (evt.value >= 1) { 
    482         canvasZoomValue.text = String(Math.round(evt.value * 10000)/100); 
    483     } 
    484     else { 
    485         canvasZoomValue.text = String(Math.round((1.0 / (-evt.value + 2)) * 10000)/100); 
    486     } 
    487     // 20090905-haku2 ins end 
    488     gpCanvasWindow.zoom(evt.value); 
    489 } 
    490 // 20090909-haku2 upd start 
    491  
    492 // 数値入力で拡大率指定 
    493 private function canvasZoomValueHandler(evt:Event):void 
    494 { 
    495     var rm:Number = Number(canvasZoomValue.text); 
    496     if (rm <= 0) { 
    497         rm = 1; 
    498     } 
    499     else if (rm >= 100) { 
    500         rm /= 100; 
    501     } 
    502     else { 
    503         rm = -(100 / rm) + 2; 
    504     } 
    505     canvasZoom.value = rm; 
    506     gpCanvasWindow.zoom(canvasZoom.value); 
    507 } 
    508 // 20090909-haku2 upd end 
    509  
    510 private function canvasRotateHandler(evt:SliderEvent):void 
    511 { 
    512     canvasRotateValue.text = String(-evt.value); // 20090905-haku2 ins キャンバス回転角度をテキストボックスに反映 
    513     gpCanvasWindow.rotate(evt.value); 
    514 } 
    515  
    516 // 20090909-haku2 upd start 
    517 // 数値入力でキャンバス回転角度指定 
    518 private function canvasRotateValueHandler(evt:Event):void 
    519 { 
    520     canvasRotate.value = Number(canvasRotateValue.text); 
    521     gpCanvasWindow.rotate(canvasRotate.value); 
    522 } 
    523 // 20090909-haku2 upd end 
    524  
    525 private function additionalNumberStepperHandler(evt:NumericStepperEvent):void 
    526 { 
    527     gpCanvasWindow.auxDivideCount = uint(evt.value); 
    528 } 
    529  
    530 private function additionalBoxCheckBoxHandler(evt:Event):void 
    531 { 
    532     gpCanvasWindow.auxBoxVisible = evt.target.selected; 
    533 } 
    534  
    535 private function additionalSkewCheckBoxHandler(evt:Event):void 
    536 { 
    537     gpCanvasWindow.auxSkewVisible = evt.target.selected; 
    538 } 
    539  
    540 // 20090906-haku2 ins start 
    541 // 補助線種類の変更 
    542 private function additionalTypeComboBoxHandler(evt:ListEvent):void 
    543 { 
    544     var n:Number = additionalNumberStepper.value; 
    545     if (evt.currentTarget.value == 0) { 
    546         additionalNumberStepper.minimum = 2; 
    547         additionalNumberStepper.maximum = 16; 
    548         gpCanvasWindow.enableAuxPixel = false; 
    549     } 
    550     else { 
    551         additionalNumberStepper.minimum = 4; 
    552         additionalNumberStepper.maximum = 80; 
    553         gpCanvasWindow.enableAuxPixel = true; 
    554     } 
    555 } 
    556  
    557 // 20090906-haku2 ins end 
    558548 
    559549private function commCompleteHandler(com:Com):void 
     
    613603} 
    614604 
    615 private function rotateResetButtonHandler(evt:Event):void 
    616 { 
    617     setRotate(0); 
    618     canvasRotateValue.text = "0"; // 20090905-haku2 ins 数値入力をリセット 
    619 } 
    620  
    621 private function zoomResetButtonHandler(evt:Event):void 
    622 { 
    623     setZoom(1); 
    624     canvasZoomValue.text = "100"; // 20090905-haku2 ins 数値入力をリセット 
    625 } 
    626  
    627 private function setRotate(v:Number):void 
    628 { 
    629     canvasRotate.value = v; 
    630     canvasRotateValue.text = String(-canvasRotate.value); // 20090909-haku2 ins キャンバス回転角度をテキストボックスに反映 
    631     gpCanvasWindow.rotate(canvasRotate.value); 
    632 } 
    633  
    634 private function setZoom(v:Number):void 
    635 { 
    636     canvasZoom.value = v; 
    637     gpCanvasWindow.zoom(canvasZoom.value);   
    638     // 20090909-haku2 ins start 
    639     // 拡大率をテキストボックスに反映 
    640     if (canvasZoom.value >= 1) { 
    641         canvasZoomValue.text = String(Math.round(canvasZoom.value * 10000)/100); 
    642     } else { 
    643         canvasZoomValue.text = String(Math.round((1.0 / (-canvasZoom.value + 2)) * 10000)/100); 
    644     } 
    645     // 20090909-haku2 ins end 
    646 } 
    647  
    648605private function alertOnUnload(b:Boolean):void 
    649606{ 
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/gunyarapaint.mxml

    r3503 r3540  
    3838            <mx:text></mx:text> 
    3939        </mx:TextArea> 
    40         <mx:Button id="rotateResetButton" y="63" label="角度" width="29" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" right="204" buttonDown="rotateResetButtonHandler(event)"/> 
    41         <mx:Button id="zoomResetButton" y="81" label="拡大" width="29" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" right="204" buttonDown="zoomResetButtonHandler(event)"/> 
     40        <mx:Button id="rotateResetButton" y="63" label="角度" width="29" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" right="204" buttonDown="setRotate(0)"/> 
     41        <mx:Button id="zoomResetButton" y="81" label="拡大" width="29" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" right="204" buttonDown="setZoom(1)"/> 
    4242        <mx:Button id="horizontalMirrorButton" x="117" y="128" label="全レイヤー左右反転" width="120" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" buttonDown="module.horizontalMirror(0xff)"/> 
    4343        <mx:Button id="verticalMirrorButton" x="245" y="128" label="全レイヤー上下反転" width="120" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" buttonDown="module.verticalMirror(0xff)"/> 
    44         <mx:HSlider id="canvasRotate" y="62" width="152" minimum="-180" maximum="180" snapInterval="5" value="0"  right="49" showDataTip="false" change="canvasRotateHandler(event)" thumbDrag="canvasRotateHandler(event)"/> 
    45         <mx:HSlider id="canvasZoom" y="79" width="152" minimum="-4" maximum="16" snapInterval="0.1" value="1"  right="49" showDataTip="false" change="canvasZoomHandler(event)" thumbDrag="canvasZoomHandler(event)"/> 
    46         <mx:TextInput id="canvasRotateValue" y="66" width="32" height="17" right="18" fontSize="8" textAlign="right" text="0" restrict="0-9" maxChars="4" enter="canvasRotateValueHandler(event)"/> 
     44        <mx:HSlider id="canvasRotate" y="62" width="152" minimum="-180" maximum="180" snapInterval="5" value="0"  right="49" showDataTip="false" change="setRotate(event.value)" thumbDrag="setRotate(event.value)"/> 
     45        <mx:HSlider id="canvasZoom" y="79" width="152" minimum="-4" maximum="16" snapInterval="0.1" value="1"  right="49" showDataTip="false" change="setZoom(event.value)" thumbDrag="setZoom(event.value)"/> 
     46        <mx:TextInput id="canvasRotateValue" y="66" width="32" height="17" right="18" fontSize="8" textAlign="right" text="0" restrict="0-9" maxChars="4" enter="onChangeCanvasRotate(event)"/> 
    4747        <mx:Label y="66" text="°" right="0"/> 
    48         <mx:TextInput id="canvasZoomValue" y="83" width="32" height="17" right="18" fontSize="8" textAlign="right" text="100" restrict="0-9" maxChars="6" enter="canvasZoomValueHandler(event)"/> 
     48        <mx:TextInput id="canvasZoomValue" y="83" width="32" height="17" right="18" fontSize="8" textAlign="right" text="100" restrict="0-9" maxChars="6" enter="onChangeCanvasZoom(event)"/> 
    4949        <mx:Label y="83" text="%" right="0"/> 
    5050         
    5151        <mx:Label y="4" text="補助線" right="199"/> 
    52         <mx:NumericStepper id="additionalNumberStepper" y="4" value="4" minimum="2" maximum="16" stepSize="1" right="143" height="18" fontSize="8" change="additionalNumberStepperHandler(event)"/> 
    53         <mx:CheckBox id="additionalBoxCheckBox" y="2" label="縦横" right="8" fontSize="9" height="18" change="additionalBoxCheckBoxHandler(event)"/> 
    54         <mx:CheckBox id="additionalSkewCheckBox" y="18" label="斜め" right="9" fontSize="9" height="18" change="additionalSkewCheckBoxHandler(event)"/> 
     52        <mx:NumericStepper id="additionalNumberStepper" y="4" value="4" minimum="2" maximum="16" stepSize="1" right="143" height="18" fontSize="8" change="onChangeAuxDivideCount(event)"/> 
     53        <mx:CheckBox id="additionalBoxCheckBox" y="2" label="縦横" right="8" fontSize="9" height="18" change="onChangeAuxBoxVisible(event)"/> 
     54        <mx:CheckBox id="additionalSkewCheckBox" y="18" label="斜め" right="9" fontSize="9" height="18" change="onChangeAuxSkewVisible(event)"/> 
    5555        <mx:Button id="postOekakiButton" x="353" y="7" label="お絵カキコする!" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#FFFFFF, #FF9999, #FFFFFF, #FFCCCC]" enabled="false" buttonDown="postOekakiButtonHandler(event)"/> 
    5656        <mx:Button id="undoButton" y="38" label="アンドゥ" enabled="false" paddingLeft="3" paddingRight="3" right="89" buttonDown="m_recorder.undo()"/> 
    5757        <mx:Button id="redoButton" y="38" label="リドゥ" enabled="false" paddingLeft="3" paddingRight="3" right="12" buttonDown="m_recorder.redo()"/> 
    58         <mx:Button id="windowsResetButton" x="10" y="128" label="ウィンドウ初期状態" width="99" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" buttonDown="windowsResetButtonHandler(event)"/> 
     58        <mx:Button id="windowsResetButton" x="10" y="128" label="ウィンドウ初期状態" width="99" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" buttonDown="resetWindowsPosition()"/> 
    5959        <mx:Button id="passwordButton" x="373" y="128" label="ふっかつのじゅもん" width="99" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" enabled="false" buttonDown="passwordButtonHandler(event)"/> 
    6060        <mx:Button id="logPlayButton" y="105" label="ログプレイ" visible="false" right="99"/> 
    6161        <mx:Button id="checkPngButton" y="105" label="同一check" visible="false" right="10"/> 
    62         <mx:ComboBox y="4" id="additionalTypeComboBox" right="66" width="70" fontSize="8" height="18" selectedIndex="0" change="additionalTypeComboBoxHandler(event)"> 
     62        <mx:ComboBox y="4" id="additionalTypeComboBox" right="66" width="70" fontSize="8" height="18" selectedIndex="0" change="onChangeAuxType(event)"> 
    6363            <mx:ArrayCollection id="auxTypes"> 
    6464                <mx:Object label="分割" data="0" />