Show
Ignore:
Timestamp:
12/04/07 16:53:02 (13 months ago)
Author:
gyuque
Message:

lang/actionscript/swfgmap

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

Legend:

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

    r2384 r2413  
    22{ 
    33        import flash.display.*; 
     4        import flash.geom.*; 
    45        import gyuque.gmap.*; 
    56 
     
    1617                        stage.scaleMode = StageScaleMode.NO_SCALE; 
    1718                         
    18                         setViewport(new GMapViewport(36.09992, 139.65497, 640, 480, 2)); 
     19                        var vp:GMapViewport = new GMapViewport(36.09992, 139.65497, 640, 480, 2); 
     20                         
     21                         
     22                        var T:Matrix = new Matrix(); 
     23                        T.rotate(0.1); 
     24                        vp.setTransform(T); 
     25                        setViewport(vp); 
    1926                         
    2027                        d_outMetrics(); 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapMapLayer.as

    r2385 r2413  
    1010                { 
    1111                        super(eventSrc); 
     12                         
     13                        var g:Graphics = graphics; 
     14 
     15                        g.beginFill(0xf5f0e9); 
     16                        g.drawRect(-384, -128, 768, 256); 
     17                        g.drawRect(-128, -384, 256, 768); 
     18                        g.endFill(); 
     19                         
     20                        g.beginFill(0xfff8ef); 
     21                        g.drawRect(-128, -128, 256, 256); 
     22                        g.endFill(); 
    1223                } 
    1324                 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapView.as

    r2385 r2413  
    1414                private var mDrag:DragInfo = new DragInfo(); 
    1515                private var mBaseSprite:Sprite; 
    16                 private var mLayerman:LayerManager; 
     16                private var mSuperLayer:LayerManager; 
    1717                private var mCurrentViewport:GMapViewport; 
    1818                 
     
    2727                        } 
    2828 
     29                        mSuperLayer = new LayerManager(this); 
     30                        addChild(mSuperLayer); 
     31 
    2932                        if (options.debug_box) 
    3033                        { 
     
    3841                        } 
    3942                         
    40                         mLayerman = new LayerManager(this); 
    4143                        addGoogleMapLayer(); 
    4244 
     
    5355                        mCurrentViewport = v; 
    5456                        fireViewportChange(); 
    55                          
    56                         puts(mCurrentViewport.pixelY.toString()); 
    5757                } 
    5858                 
     
    7474                { 
    7575                        var lyr:Layer = new GMapMapLayer(this); 
    76                         mLayerman.push(lyr); 
     76                        mSuperLayer.push(lyr); 
    7777                         
    7878                        return true; 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapViewport.as

    r2386 r2413  
    3636                         
    3737                        calcXY(); 
     38                        mScreenXY.x = 0; 
     39                        mScreenXY.y = 0; 
    3840                } 
    3941                 
    40                 private function transformVectorScreenToView(x:Number, y:Number, Point:out):void 
     42                private function transformVectorScreenToView(x:Number, y:Number, out:Point):void 
     43                { 
     44                        out.x = x; 
     45                        out.y = y; 
     46                         
     47                        Math2D.transformNoMove(out, mInvViewToScreen); 
     48                } 
     49/*               
     50                private function transformVectorViewToScreen(x:Number, y:Number, out:Point):void 
    4151                { 
    4252                } 
    43                  
     53*/               
    4454                private function resetTransform():void 
    4555                { 
    4656                        mViewToScreen.identity(); 
    4757                        mInvViewToScreen.identity(); 
     58                } 
     59                 
     60                public function setTransform(M:Matrix):void 
     61                { 
     62                        mViewToScreen    = M; 
     63                         
     64                        mInvViewToScreen = M.clone(); 
     65                        mInvViewToScreen.invert(); 
    4866                } 
    4967                 
     
    5977                        mScreenXY.y += dy; 
    6078                         
     79                        var v:Point = new Point(); 
     80                        transformVectorScreenToView(dx, dy, v); 
     81                         
    6182                        mNrmXY.x = mScreenXY.x / mMapSize; 
    6283                        mNrmXY.y = mScreenXY.y / mMapSize; 
     
    6990                        GMapCalc.LatLngToXY(mLatlng.lat, mLatlng.lng, mNrmXY); 
    7091                         
    71                         mScreenXY.x = mNrmXY.x * mMapSize; 
    72                         mScreenXY.y = mNrmXY.y * mMapSize; 
     92                        mBitmapXY.x = mNrmXY.x * mMapSize; 
     93                        mBitmapXY.y = mNrmXY.y * mMapSize; 
    7394                } 
    7495                 
     
    84105                 
    85106                 
    86                 public function get pixelX():Number 
     107                public function get screenX():Number 
    87108                { 
    88109                        return mScreenXY.x; 
    89110                } 
    90111                 
    91                 public function get pixelY():Number 
     112                public function get screenY():Number 
    92113                { 
    93114                        return mScreenXY.y; 
    94115                } 
    95116                 
     117                public function get to_screen_transform():Matrix 
     118                { 
     119                        return mViewToScreen; 
     120                } 
    96121         
    97122        } 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/Layer.as

    r2385 r2413  
    99                private var prevScreenXY:Point; 
    1010                protected var mViewport:GMapViewport; 
     11                 
     12                protected var mLastDX:Number; 
     13                protected var mLastDY:Number; 
     14                 
    1115                public function Layer(eventSrc:EventDispatcher) 
    1216                { 
    1317                        eventSrc.addEventListener(GMapViewEvent.VIEWPORT_CHANGED, onViewportChanged); 
    14                          
    15                         var g:Graphics = graphics; 
    16  
    17                         g.beginFill(0xf5f0e9); 
    18                         g.drawRect(-384, -128, 768, 256); 
    19                         g.drawRect(-128, -384, 256, 768); 
    20                         g.endFill(); 
    21                          
    22                         g.beginFill(0xfff8ef); 
    23                         g.drawRect(-128, -128, 256, 256); 
    24                         g.endFill(); 
    2518                } 
    2619                 
     
    3225                        if (!prevScreenXY) 
    3326                        { 
    34                                 prevScreenXY = new Point(v.pixelX, v.pixelY); 
    35                                 x = v.width  * 0.5; 
    36                                 y = v.height * 0.5; 
     27                                prevScreenXY = new Point(v.screenX, v.screenY); 
    3728                                updateContent(true); 
    3829                        } 
    3930                        else 
    4031                        { 
    41                                 var dx:Number = v.pixelX - prevScreenXY.x; 
    42                                 var dy:Number = v.pixelY - prevScreenXY.y; 
     32                                mLastDX = v.screenX - prevScreenXY.x; 
     33                                mLastDY = v.screenY - prevScreenXY.y; 
    4334                                 
    44                                 x += dx; 
    45                                 y += dy; 
    46                                  
    47                                 prevScreenXY.x = v.pixelX; 
    48                                 prevScreenXY.y = v.pixelY; 
     35                                prevScreenXY.x = v.screenX; 
     36                                prevScreenXY.y = v.screenY; 
     37                                updateContent(false); 
    4938                        } 
    5039                } 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/LayerManager.as

    r2384 r2413  
    11package gyuque.gmap 
    22{ 
    3         public class LayerManager 
     3        public class LayerManager extends Layer 
    44        { 
    55                import flash.display.DisplayObjectContainer; 
     6                import flash.geom.Matrix; 
    67                 
    78                private var mLayers:Array = new Array(); 
    8                 private var mContainer:DisplayObjectContainer; 
    99                 
    1010                public function LayerManager(c:DisplayObjectContainer) 
    1111                { 
    12                         mContainer = c; 
     12                        super(c); 
    1313                } 
    1414                 
    1515                public function push(lyr:Layer):void 
    1616                { 
     17                        mLayers.push(lyr); 
     18                        addChild(lyr); 
     19                } 
    1720                 
    18                         mLayers.push(lyr); 
    19                         mContainer.addChild(lyr); 
     21                protected override function updateContent(refreshAll:Boolean):void 
     22                { 
     23                        var v:GMapViewport = mViewport; 
     24                         
     25                        var M:Matrix = v.to_screen_transform; 
     26                        M.tx = transform.matrix.tx; 
     27                        M.ty = transform.matrix.ty; 
     28                         
     29                        if (refreshAll) 
     30                        { 
     31                                M.tx = v.width  * 0.5; 
     32                                M.ty = v.height * 0.5; 
     33                        } 
     34                        else 
     35                        { 
     36                                M.tx += mLastDX; 
     37                                M.ty += mLastDY; 
     38                        } 
     39                        transform.matrix = M; 
    2040                } 
    2141        } 
  • lang/actionscript/swfgmap/trunk/testapp.html

    r2320 r2413  
    99        <body> 
    1010                <div> 
    11                         <object data="TestApp.swf" type="application/x-shockwave-flash" width="640" height="480"> 
    12                                 <param name="movie" value="TestApp.swf" /> 
     11                        <object data="./TestApp.swf" type="application/x-shockwave-flash" width="640" height="480"> 
     12                                <param name="movie" value="./TestApp.swf" /> 
     13                                <param name="autostart" value="true" /> 
    1314                                <p>Install Flash Player 9</p> 
    1415                        </object>