チェンジセット 2856

差分発生行の前後
無視リスト:
コミット日時:
2009/07/01 02:54:12 (9 ヶ月前)
コミッタ:
tasuku
ログメッセージ:

* gunyarapaint: 回転の中心点をキャンバス中央とした。ちょっと重いかなー。

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/trunk/ChangeLog

    r2805 r2856  
     12009-07-01  Tasuku SUENAGA <a at razil.jp> 
     2 
     3  * gunyarapaint: ��̒��S�_������o�X�����Ƃ����B�����Əd�����ȁ[�B 
     4 
    152009-06-08  Tasuku SUENAGA <a at razil.jp> 
    26 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint.as

    r2778 r2856  
    44import flash.events.Event; 
    55import flash.events.KeyboardEvent; 
     6import flash.geom.Matrix; 
    67import flash.geom.Point; 
    78import flash.ui.Keyboard; 
     
    161162 
    162163private function windowsResetButtonHandler(evt:FlexEvent):void { 
    163   gpCanvasWindow.move(initCanvasWindowPos.x, initCanvasWindowPos.y); 
    164   setRotate(0); 
     164  gpCanvasWindow.transform.matrix = new Matrix(1, 0, 0, 1, initCanvasWindowPos.x, initCanvasWindowPos.y); 
    165165  penDetailWindow.move(initPenDetailWindowPos.x, initPenDetailWindowPos.y); 
    166166  gpLayerWindow.move(initGPLayerWindowPos.x, initGPLayerWindowPos.y); 
  • as3/gunyarapaint/trunk/gunyarapaint/src/gunyarapaint.mxml

    r2778 r2856  
    3535    <mx:Button id="undoButton" x="469" y="36" label="アンドゥ" enabled="false" paddingLeft="3" paddingRight="3"/> 
    3636    <mx:Button id="redoButton" x="555" y="36" label="リドゥ" enabled="false" paddingLeft="3" paddingRight="3"/> 
    37     <mx:Label id="versionLabel" x="576" y="127" text="ver.2009060301"/> 
     37    <mx:Label id="versionLabel" x="576" y="127" text="ver.2009070101"/> 
    3838    <mx:Button id="windowsResetButton" x="10" y="128" label="ウィンドウ初期状態" width="99" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17"/> 
    3939    <mx:Button id="passwordButton" x="373" y="128" label="ふっかつのじゅもん" width="99" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" height="17" enabled="false"/> 
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/controls/GPCanvasWindowControl.as

    r1799 r2856  
    22{ 
    33  import flash.events.MouseEvent; 
     4  import flash.geom.Matrix; 
    45  import flash.geom.Point; 
     6  import flash.geom.Rectangle; 
    57   
    68  import mx.containers.TitleWindow; 
     
    2527    private var canvasX:Number, canvasY:Number; // キャンバスのスクロール位置 
    2628    private var _canvasScale:Number; // キャンバスの倍率 
     29    private var _preDegree:int; // 前の回転角度 
    2730 
    2831    private var _logger:GPLogger; 
     
    4144 
    4245      ComponentResizer.addResize(this, new Point(100, 100)); 
     46      this._preDegree = 0; 
    4347    } 
    4448 
     
    213217     
    214218    public function rotateCanvas(deg:int):void { 
    215       this.rotation = deg; 
     219      var br:Rectangle = this.transform.pixelBounds; 
     220      var p:Point = new Point(br.x + br.width / 2, br.y + br.height / 2); 
     221      var m:Matrix = this.transform.matrix; 
     222      m.translate(-p.x, -p.y); 
     223      m.rotate((deg - this._preDegree) * (Math.PI / 180)); 
     224      m.translate(p.x, p.y); 
     225      this.transform.matrix = m; 
     226      this._preDegree = deg; 
    216227    } 
    217228 }