Show
Ignore:
Timestamp:
12/10/07 19:41:19 (13 months ago)
Author:
gyuque
Message:

lang/actionscript/swfgmap: moved implementation of zooming

Location:
lang/actionscript/swfgmap/trunk
Files:
1 added
7 modified

Legend:

Unmodified
Added
Removed
  • lang/actionscript/swfgmap/trunk/TestApp.as

    r2917 r3003  
    3535                        spnr.addEventListener(SliderEvent.THUMB_DRAG , onSpinner); 
    3636                        mSpnr = spnr; 
     37                         
     38                        addEventListener(MouseEvent.DOUBLE_CLICK, onDblClick); 
     39                } 
     40                 
     41                protected function onDblClick(e:MouseEvent):void 
     42                { 
    3743                } 
    3844                 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapView.as

    r2914 r3003  
    3232                        mSuperLayer = new LayerManager(this); 
    3333                        addChild(mSuperLayer); 
     34                        mSuperLayer.animationDispatcher = this; 
    3435 
    3536                        if (options.debug_box) 
     
    6869                } 
    6970                 
    70                 protected function fireViewportChange(dx:Number = 0, dy:Number = 0, dzm:int = 0):void 
     71                protected function fireViewportChange(dx:Number = 0, dy:Number = 0, dzm:int = 0, zoomAnimation:Boolean = true):void 
    7172                { 
    7273                        var e:GMapViewEvent = new GMapViewEvent(mCurrentViewport, GMapViewEvent.VIEWPORT_CHANGED); 
     
    7475                        e.screenDY = dy; 
    7576                        e.dZoom = dzm; 
     77                        e.zoomAnimation = zoomAnimation; 
    7678                        dispatchEvent(e); 
    7779                } 
     
    8991                        var lyr:GMapMapLayer = new GMapMapLayer(this, mSuperLayer); 
    9092                        lyr.debug_out = this; 
    91                         mSuperLayer.push(lyr); 
     93                        mSuperLayer.putLayer(0, lyr); 
    9294                         
    9395                        return true; 
     
    118120                } 
    119121                 
    120                 protected function zoom(d:int, px:Number = -1, py:Number = -1):void 
     122                public function zoom(d:int, px:Number = -1, py:Number = -1, animation:Boolean = true):void 
    121123                { 
    122124                        var z:int = mCurrentViewport.zoom; 
     
    132134                        } 
    133135                         
    134                         fireViewportChange(0,0,z - oldz); 
     136                        fireViewportChange(0,0,z - oldz, animation); 
    135137                } 
    136138                 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapViewEvent.as

    r2528 r3003  
    1111                private var mScrDY:Number; 
    1212                private var mDZ:int; 
     13                private var mZoomAnimation:Boolean; 
    1314                 
    1415                public function GMapViewEvent(vp:GMapViewport, t:String) 
     
    4950                        mDZ = d; 
    5051                } 
     52                 
     53                public function set zoomAnimation(b:Boolean):void 
     54                { 
     55                        mZoomAnimation = b; 
     56                } 
     57                 
     58                public function get zoomAnimation():Boolean 
     59                { 
     60                        return mZoomAnimation; 
     61                } 
     62                 
    5163        } 
    5264} 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/Layer.as

    r2829 r3003  
    3939                        if (mParent is IAnimationDispatcher) 
    4040                                IAnimationDispatcher(mParent).addAnimation(a); 
     41                } 
     42                 
     43                public function terminate():void 
     44                { 
    4145                }                
     46                 
     47                public function relay(e:GMapViewEvent):void 
     48                { 
     49                } 
    4250        } 
    4351} 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/LayerManager.as

    r2665 r3003  
    11package gyuque.gmap 
    22{ 
    3         public class LayerManager extends Layer implements IPanningLayer 
     3        public class LayerManager extends Layer implements IPanningLayer, IAnimationDispatcher 
    44        { 
    55                import flash.display.*; 
    66                import flash.geom.*; 
    77                 
    8                 private var mLayers:Array = new Array(); 
     8                private var mAnimDisp:IAnimationDispatcher; 
    99                 
    1010                public function LayerManager(c:DisplayObjectContainer) 
     
    1313                } 
    1414                 
    15                 public function push(lyr:Layer):void 
     15                public function set animationDispatcher(a:IAnimationDispatcher):void 
    1616                { 
    17                         lyr.layerIndex = mLayers.length; 
    18                         mLayers.push(lyr); 
    19                         addChild(lyr); 
     17                        mAnimDisp = a; 
     18                } 
     19                 
     20                public function floatLayer(idx:int):void 
     21                { 
     22                        //getChildAt( 
     23                } 
     24                 
     25                public function removeLayer(idx:int, floatLayer:Boolean):void 
     26                { 
     27                        var cidx:int = idx*2 + (floatLayer ? 1 : 0); 
     28                        if (getChildAt(cidx)) 
     29                                removeChildAt(cidx); 
     30                } 
     31 
     32                public function putLayer(idx:int, lyr:Layer):void 
     33                { 
     34                        var cidx:int = idx*2; 
     35                        addChildAt(lyr, cidx); 
    2036                } 
    2137                 
     
    6379                        //mViewport.transformVectorScreenToView(mPanPos.x, mPanPos.y, out); 
    6480                } 
     81                 
     82                 
     83                public override function addAnimation(a:Animation):void 
     84                { 
     85                        if (mAnimDisp) 
     86                                mAnimDisp.addAnimation(a); 
     87                } 
    6588        } 
    6689} 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/googlemaps/GMapMapLayer.as

    r2665 r3003  
    5050                        { 
    5151                                e.dZoom = 0; 
    52                                 relay(e); 
     52                                 
     53                                var a:PointZoomAnimation = new PointZoomAnimation(this, e); 
     54                                addAnimation(a); 
     55                                 
    5356                                return; 
    5457                        }                                
     
    6770                } 
    6871 
    69                 protected function relay(e:GMapViewEvent):void 
     72                public override function relay(e:GMapViewEvent):void 
    7073                { 
    71                         if (mParent) 
    72                         { 
    73                                 terminate(); 
    74                                 var p:Layer = mParent; 
    75                                 p.removeChildAt(layerIndex); 
    76                                  
    77                                 var newLayer:GMapMapLayer = new GMapMapLayer(mEventSource, mParent); 
    78                                 newLayer.layerIndex = layerIndex; 
    79                                 newLayer.debug_out = mVPobs.dout; // 
    80                                 p.addChildAt(newLayer, layerIndex); 
    81                                 newLayer.onViewportChanged(e); 
    82                         } 
     74                        var man:LayerManager; 
     75                        if (mParent is LayerManager) 
     76                                man = LayerManager(mParent); 
     77                        else 
     78                                return; 
     79                         
     80                        man.removeLayer(layerIndex, false); 
     81                         
     82                        var newLayer:GMapMapLayer = new GMapMapLayer(mEventSource, man); 
     83                        newLayer.layerIndex = layerIndex; 
     84                        newLayer.debug_out = mVPobs.dout; // 
     85                        man.putLayer(layerIndex, newLayer); 
     86                        newLayer.onViewportChanged(e); 
    8387                } 
    8488                 
    85                 public function terminate():void 
     89                public override function terminate():void 
    8690                { 
    8791                        mVPobs.terminate();