チェンジセット 3729: as3/gunyarapaint/branches

差分発生行の前後
無視リスト:
コミット日時:
2010/04/09 02:19:34 (3 年前)
コミッタ:
hkrn
ログメッセージ:

added comments

ファイル:

凡例:

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

    r3652 r3729  
    222222            m_canvasX = Math.floor(m_canvasX); 
    223223            m_canvasY = Math.floor(m_canvasY); 
     224            // 移動位置及び最大範囲を調整する 
    224225            if (maxX <= 0) 
    225226                maxX = 0; 
     
    234235            if (m_canvasY > maxY) 
    235236                m_canvasY = maxY; 
     237            // スクロールバーを移動先の位置に設定する 
    236238            m_hScrollBar.scrollPosition = m_canvasX; 
    237239            m_vScrollBar.scrollPosition = m_canvasY; 
     240            // 拡大率によってスクロール量を決定する(拡大率が大きい程スクロール量も大きくなる) 
    238241            m_hScrollBar.lineScrollSize = m_canvasScale; 
    239242            m_vScrollBar.lineScrollSize = m_canvasScale; 
    240             m_hScrollBar.setScrollProperties(m_canvasContainer.width, 0, maxX, 0); 
    241             m_vScrollBar.setScrollProperties(m_canvasContainer.height, 0, maxY, 0); 
     243            // スクロールバーの大きさを決定する(拡大率が大きい程スクロールバーが小さくなる) 
     244            m_hScrollBar.setScrollProperties(m_canvasContainer.width, 0, maxX); 
     245            m_vScrollBar.setScrollProperties(m_canvasContainer.height, 0, maxY); 
     246            // キャンバスを移動させる 
    242247            m_canvas.move(-m_canvasX, -m_canvasY); 
    243248        } 
     
    246251        { 
    247252            // 仮にサイズを狭める 
    248             m_canvasContainer.width = m_canvasContainer.height =  
    249                 m_hScrollBar.width = m_vScrollBar.height = 0; 
    250             validateNow(); // _contentContainerのサイズを更新 
    251              
     253            m_canvasContainer.width = 0; 
     254            m_canvasContainer.height = 0; 
     255            m_hScrollBar.width = 0; 
     256            m_vScrollBar.height = 0; 
     257            // _contentContainerのサイズを更新 
     258            validateNow(); 
    252259            // それを使って再設定 
    253260            var clientWidth:Number = m_contentContainer.width - m_vScrollBar.width; 
    254261            var clientHeight:Number = m_contentContainer.height - m_hScrollBar.height; 
    255              
    256262            m_hScrollBar.width = clientWidth; 
    257263            m_vScrollBar.height = clientHeight; 
    258              
     264            // 拡大または縮小したキャンバスのサイズを求める 
    259265            var application:IApplication = IApplication(Application.application); 
    260266            var canvasWidth:uint = application.canvasWidth; 
    261267            var canvasHeight:uint = application.canvasHeight; 
    262             // TODO: minでいいやん 
    263             if (canvasWidth * m_canvasScale < clientWidth) 
    264                 m_canvasContainer.width = canvasWidth * m_canvasScale; 
    265             else 
    266                 m_canvasContainer.width = clientWidth; 
    267              
    268             if (canvasHeight * m_canvasScale < clientHeight) 
    269                 m_canvasContainer.height = canvasHeight * m_canvasScale; 
    270             else 
    271                 m_canvasContainer.height = clientHeight;           
    272              
     268            var scaledCanvasWidth:Number = canvasWidth * m_canvasScale; 
     269            var scaledCanvasHeight:Number = canvasHeight * m_canvasScale; 
     270            // 拡大または縮小したキャンバスをキャンバスコンテナのサイズに収める必要がある 
     271            m_canvasContainer.width = scaledCanvasWidth < clientWidth ? scaledCanvasWidth : clientWidth; 
     272            m_canvasContainer.height = scaledCanvasHeight < clientHeight ? scaledCanvasHeight : clientHeight;                       
    273273            m_hScrollBar.move(0, clientHeight); 
    274274            m_vScrollBar.move(clientWidth, 0); 
    275              
    276             m_canvasContainer.move((clientWidth - m_canvasContainer.width) / 2, 
    277                 (clientHeight - m_canvasContainer.height) / 2); 
     275            m_canvasContainer.move( 
     276                (clientWidth - m_canvasContainer.width) / 2, 
     277                (clientHeight - m_canvasContainer.height) / 2 
     278            ); 
    278279        } 
    279280