チェンジセット 3729: as3/gunyarapaint/branches
- コミット日時:
- 2010/04/09 02:19:34 (3 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/CanvasController.as
r3652 r3729 222 222 m_canvasX = Math.floor(m_canvasX); 223 223 m_canvasY = Math.floor(m_canvasY); 224 // 移動位置及び最大範囲を調整する 224 225 if (maxX <= 0) 225 226 maxX = 0; … … 234 235 if (m_canvasY > maxY) 235 236 m_canvasY = maxY; 237 // スクロールバーを移動先の位置に設定する 236 238 m_hScrollBar.scrollPosition = m_canvasX; 237 239 m_vScrollBar.scrollPosition = m_canvasY; 240 // 拡大率によってスクロール量を決定する(拡大率が大きい程スクロール量も大きくなる) 238 241 m_hScrollBar.lineScrollSize = m_canvasScale; 239 242 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 // キャンバスを移動させる 242 247 m_canvas.move(-m_canvasX, -m_canvasY); 243 248 } … … 246 251 { 247 252 // 仮にサイズを狭める 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(); 252 259 // それを使って再設定 253 260 var clientWidth:Number = m_contentContainer.width - m_vScrollBar.width; 254 261 var clientHeight:Number = m_contentContainer.height - m_hScrollBar.height; 255 256 262 m_hScrollBar.width = clientWidth; 257 263 m_vScrollBar.height = clientHeight; 258 264 // 拡大または縮小したキャンバスのサイズを求める 259 265 var application:IApplication = IApplication(Application.application); 260 266 var canvasWidth:uint = application.canvasWidth; 261 267 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; 273 273 m_hScrollBar.move(0, clientHeight); 274 274 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 ); 278 279 } 279 280

