チェンジセット 2763: as3/mouseZoom

差分発生行の前後
無視リスト:
コミット日時:
2009/05/31 10:42:38 (3 年前)
コミッタ:
tngar
ログメッセージ:

サンプルを更新。

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoom/controls/MouseSmoothScaleControl.as

    r2719 r2763  
    4141                private function initialize():void 
    4242                { 
    43                         // オブジェクトの子に対してマウスを無効にします。 
    44                         this.mouseChildren = false; 
    4543                        // 背景を初期化します。 
    4644                        this.initializeBackground(); 
     
    5048                        this.addEventListener(MouseEvent.MOUSE_UP, this.onMouseUp); 
    5149                        this.addEventListener(MouseEvent.MOUSE_WHEEL, this.onMouseWheel); 
    52                         this.addEventListener(MouseEvent.MOUSE_OUT, this.onMouseOut); 
     50                        this.addEventListener(MouseEvent.ROLL_OUT, this.onRollOut); 
    5351                } 
    5452                 
     
    150148                } 
    151149                 
    152                 private var _mouseWheelScale:Number = 1/96; 
     150                private var _mouseWheelScale:Number = 1/16; 
    153151                /** 
    154152                 * マウスホイールが回転されたときにズームする倍率。 
     
    166164                 
    167165                /** 
    168                  * プロパティが変更されたときに呼び出されます。  
     166                 * MouseScaleEvent イベントをイベントフローに送出します。 
    169167                 * @param type イベントの種類。 
    170168                 * @param mouseEvent 元となる mouseEvent 。 
    171                  */             
     169                 */ 
    172170                protected function dispatchMouseScaleEvent(type:String, mouseEvent:MouseEvent):void 
    173171                { 
    174                         var event:MouseScaleEvent = MouseScaleEvent.createSmoothScaleControlEventFromMouseEvent(type, mouseEvent); 
     172                        var localPoint:Point = this.globalToLocal(new Point(mouseEvent.stageX, mouseEvent.stageY)); 
     173                        var event:MouseScaleEvent = new MouseScaleEvent 
     174                        ( 
     175                                type, 
     176                                mouseEvent.bubbles, 
     177                                mouseEvent.cancelable, 
     178                                this.mouseX, 
     179                                this.mouseY, 
     180                                mouseEvent.relatedObject, 
     181                                mouseEvent.ctrlKey, 
     182                                mouseEvent.altKey, 
     183                                mouseEvent.shiftKey, 
     184                                mouseEvent.buttonDown, 
     185                                mouseEvent.delta 
     186                        ); 
    175187                        this.dispatchEvent(event); 
    176188                } 
     
    209221                private function onMouseDown(event:MouseEvent):void 
    210222                { 
    211                         this._preMousePosition = new Point(event.localX, event.localY); 
     223                        var localPoint:Point = new Point(this.mouseX, this.mouseY); 
     224                        this._preMousePosition = localPoint; 
    212225                        this._isDrag = false; 
    213226                        this._isMouseDown = true; 
     
    228241                        { 
    229242                                var pre:Point = this.preMousePosition; 
    230                                 var current:Point = new Point(event.localX, event.localY); 
     243                                var current:Point = new Point(this.mouseX, this.mouseY); 
    231244                                if(pre != null) 
    232245                                { 
     
    250263                 * @param event イベントデータ。 
    251264                 */              
    252                 private function onMouseOut(event:MouseEvent):void 
     265                private function onRollOut(event:MouseEvent):void 
    253266                { 
    254267                        var oldIsDrag:Boolean = this.isDrag; 
     
    272285                        { 
    273286                                var scale:Number = this.contentScale * this.clickScale; 
    274                                 var position:Point = new Point(event.localX, event.localY); 
     287                                var position:Point = new Point(this.mouseX, this.mouseY); 
    275288                                this.zoomAt(scale, position); 
    276289                                this._isMouseDown = false; 
     
    300313                        var current:Number = this.contentScale; 
    301314                        var scale:Number = 1.0; 
    302                         var position:Point
     315                        var position:Point = new Point(this.mouseX, this.mouseY)
    303316                        if(delta<0) 
    304317                        { 
    305318                                scale = current / (1 - delta); 
    306                                 position = new Point(event.localX, event.localY); 
    307319                                this.zoomAt(scale, position); 
    308320                                this.dispatchMouseScaleEvent(MouseScaleEvent.MOUSE_WHEEL_ZOOM_OUT, event); 
     
    311323                        { 
    312324                                scale = current * (1 + delta); 
    313                                 position = new Point(event.localX, event.localY); 
    314325                                this.zoomAt(scale, position); 
    315326                                this.dispatchMouseScaleEvent(MouseScaleEvent.MOUSE_WHEEL_ZOOM_IN, event); 
  • as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoom/controls/ScaleControl.as

    r2719 r2763  
    153153                private var _contentOrigin:Point = null; 
    154154                /** 
    155                  * 表示されるコンテンツの領域の左上隅の座標。  
     155                 * 表示されるコンテンツの領域の原点座標。  
    156156                 */ 
    157157                public function get contentOrigin():Point 
  • as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoom/events/MouseScaleEvent.as

    r2719 r2763  
    5757                        super(type, bubbles, cancelable, localX, localY, relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta); 
    5858                } 
    59                  
    60                 /** 
    61                  * MouseEvent を元にパラメータで指定されたタイプの MouseScaleEvent を生成します。 
    62                  * @param type イベントの種類。 
    63                  * @param mouseEvent 元となる MouseEvent 。 
    64                  * @return 生成された MouseScaleEvent 。 
    65                  */              
    66                 public static function createSmoothScaleControlEventFromMouseEvent(type:String, mouseEvent:MouseEvent):MouseScaleEvent 
    67                 { 
    68                         var result:MouseScaleEvent = new MouseScaleEvent 
    69                         ( 
    70                                 type, 
    71                                 mouseEvent.bubbles, 
    72                                 mouseEvent.cancelable, 
    73                                 mouseEvent.localX, 
    74                                 mouseEvent.localY, 
    75                                 mouseEvent.relatedObject, 
    76                                 mouseEvent.ctrlKey, 
    77                                 mouseEvent.altKey, 
    78                                 mouseEvent.shiftKey, 
    79                                 mouseEvent.buttonDown, 
    80                                 mouseEvent.delta 
    81                         ); 
    82                         return result; 
    83                 } 
    8459        } 
    8560} 
  • as3/mouseZoom/trunk/mouseZoomSample/src/com/tngar/mycroLib/mouseZoomSample/MouseZoomSample.as

    r2719 r2763  
    5858                        // scaleControl.clickScale = 2; 
    5959                         
    60                         // マウスホイールが回転されたときにズームする倍率を変更します。デフォルト値は 1/96 です。 
    61                         // scaleControl.mouseWheelScale = 1/64
     60                        // マウスホイールが回転されたときにズームする倍率を変更します。デフォルト値は 1/16 です。 
     61                        // scaleControl.mouseWheelScale = 1/8
    6262                         
    6363                        // 背景色を変更します。デフォルト値は 0xFFFFFF です。