- コミット日時:
- 2010/03/22 21:26:45 (3 年前)
- ファイル:
-
- as3/gunyarapaint/branches/gunyarapaint/compat/src/gunyarapaint.mxml (更新) (2 diffs)
- as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/events (追加)
- as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/events/CanvasModuleEvent.as (追加)
- as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/Canvas.as (更新) (6 diffs)
- as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/MovableCanvasModule.as (更新) (3 diffs)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/gunyarapaint/branches/gunyarapaint/compat/src/gunyarapaint.mxml
r3590 r3592 38 38 import org.libspark.gunyarapaint.framework.modules.LineModule; 39 39 import org.libspark.gunyarapaint.framework.modules.PixelModule; 40 import org.libspark.gunyarapaint.ui.events.CanvasModuleEvent; 40 41 import org.libspark.gunyarapaint.ui.v1.IController; 41 42 import org.libspark.gunyarapaint.ui.v1.MovableCanvasModule; … … 68 69 public function setModule(value:String):void 69 70 { 71 if (hasEventListener(CanvasModuleEvent.BEFORE_CHANGE)) 72 dispatchEvent(new CanvasModuleEvent(CanvasModuleEvent.BEFORE_CHANGE)); 70 73 m_module = m_context.getModule(value); 71 if (m_module == null) 74 if (m_module == null) { 72 75 throw new IllegalOperationError(value 73 76 + " is not the ICanvasModule implemented module"); 77 } 78 if (hasEventListener(CanvasModuleEvent.AFTER_CHANGE)) 79 dispatchEvent(new CanvasModuleEvent(CanvasModuleEvent.AFTER_CHANGE)); 74 80 } 75 81 as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/Canvas.as
r3589 r3592 3 3 import flash.display.Sprite; 4 4 import flash.events.Event; 5 import flash.events.IEventDispatcher; 5 6 import flash.events.MouseEvent; 6 7 import flash.geom.Rectangle; … … 14 15 import org.libspark.gunyarapaint.framework.TransparentBitmap; 15 16 import org.libspark.gunyarapaint.framework.ui.IApplication; 17 import org.libspark.gunyarapaint.ui.events.CanvasModuleEvent; 16 18 17 19 internal class Canvas extends UIComponent … … 26 28 m_auxLine.visible = true; 27 29 m_auxPixel.visible = false; 28 30 // 透明画像、キャンバス本体、補助線(直線および斜線)の順番に追加される 29 31 addChild(transparent); 30 32 addChild(app.canvasView); … … 33 35 addEventListener(Event.REMOVED_FROM_STAGE, onRemove); 34 36 addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 35 37 var dispatcher:IEventDispatcher = IEventDispatcher(app); 38 dispatcher.addEventListener(CanvasModuleEvent.BEFORE_CHANGE, onModuleChangeBefore); 39 dispatcher.addEventListener(CanvasModuleEvent.AFTER_CHANGE, onModuleChangeAfter); 36 40 super(); 37 41 } … … 72 76 m_auxLine.visible = value ? false : true; 73 77 m_auxPixel.visible = value ? true : false; 78 } 79 80 private function onModuleChangeBefore(event:CanvasModuleEvent):void 81 { 82 removeEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel); 83 } 84 85 private function onModuleChangeAfter(event:CanvasModuleEvent):void 86 { 87 if (IApplication(Application.application).module is MovableCanvasModule) 88 addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel); 74 89 } 75 90 … … 118 133 } 119 134 135 private function onMouseWheel(event:MouseEvent):void 136 { 137 var module:MovableCanvasModule = MovableCanvasModule(Application.application.module); 138 module.wheel(event.localX, event.localY, event.delta); 139 } 140 120 141 private function removeMouseEvents(cv:Sprite):void 121 142 { as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/MovableCanvasModule.as
r3578 r3592 25 25 public function move(x:Number, y:Number):void 26 26 { 27 var scale:Number = m_canvas.scaleX; 28 if (scale < 1) 29 scale = 1.0 / (-scale + 2); 30 var x:Number = m_scrollPosition.x + (coordinateX - x) * scale; 31 var y:Number = m_scrollPosition.y + (coordinateY - y) * scale; 32 m_canvas.scroll(x, y); 27 moveCanvas(x, y); 33 28 } 34 29 … … 40 35 public function interrupt(x:Number, y:Number):void 41 36 { 37 moveCanvas(x, y); 38 } 39 40 public function wheel(x:Number, y:Number, delta:int):void 41 { 42 // チルト操作には対応していない。ショートカットキーで対応する? 43 var toY:Number = y + delta * m_canvas.canvasScale; 44 start(x, y); 45 move(x, toY); 46 stop(x, toY); 42 47 } 43 48 … … 47 52 } 48 53 54 private function moveCanvas(x:Number, y:Number):void 55 { 56 var scale:Number = m_canvas.scaleX; 57 if (scale < 1) 58 scale = 1.0 / (-scale + 2); 59 var x:Number = m_scrollPosition.x + (coordinateX - x) * scale; 60 var y:Number = m_scrollPosition.y + (coordinateY - y) * scale; 61 m_canvas.scroll(x, y); 62 } 63 49 64 private var m_canvas:CanvasController; 50 65 private var m_scrollPosition:Point;

