Changeset 2528 for lang/actionscript/swfgmap
- Timestamp:
- 12/06/07 12:36:29 (13 months ago)
- Location:
- lang/actionscript/swfgmap/trunk/gyuque/gmap
- Files:
-
- 8 modified
-
GMapView.as (modified) (4 diffs)
-
GMapViewEvent.as (modified) (2 diffs)
-
GMapViewport.as (modified) (6 diffs)
-
Layer.as (modified) (1 diff)
-
LayerManager.as (modified) (3 diffs)
-
ViewportUpdater.as (modified) (2 diffs)
-
googlemaps/GMapMapLayer.as (modified) (6 diffs)
-
googlemaps/GMapMapTile.as (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapView.as
r2496 r2528 58 58 } 59 59 60 protected function fireViewportChange( ):void60 protected function fireViewportChange(dx:Number = 0, dy:Number = 0, dzm:int = 0):void 61 61 { 62 62 var e:GMapViewEvent = new GMapViewEvent(mCurrentViewport, GMapViewEvent.VIEWPORT_CHANGED); 63 e.screenDX = dx; 64 e.screenDY = dy; 65 e.dZoom = dzm; 63 66 dispatchEvent(e); 64 67 } … … 91 94 protected function hookStdEvents():void 92 95 { 93 addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); 94 addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 95 addEventListener(MouseEvent.MOUSE_UP , onMouseUp); 96 addEventListener(MouseEvent.MOUSE_OUT , onMouseOut); 97 } 98 96 addEventListener(MouseEvent.MOUSE_MOVE , onMouseMove); 97 addEventListener(MouseEvent.MOUSE_DOWN , onMouseDown); 98 addEventListener(MouseEvent.MOUSE_UP , onMouseUp); 99 addEventListener(MouseEvent.MOUSE_OUT , onMouseOut); 100 addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel); 101 } 102 103 protected function onMouseWheel(e:MouseEvent):void 104 { 105 zoom((e.delta > 0) ? 1 : -1); 106 } 107 108 protected function zoom(d:int):void 109 { 110 var z:int = mCurrentViewport.zoom; 111 var oldz:int = z; 112 z += d; 113 if (z < 0) z = 0; 114 if (z > 16) z = 16; 115 116 mCurrentViewport.zoom = z; 117 fireViewportChange(0,0,z - oldz); 118 } 119 99 120 protected function onMouseOut(e:MouseEvent):void 100 121 { … … 111 132 112 133 cls(); 113 moveByPixel(mDrag.dx, mDrag.dy); 134 puts((mCurrentViewport.lat/0.0174533)+" "+(mCurrentViewport.lng/0.0174533)); 135 moveByPixel(-mDrag.dx, -mDrag.dy); 114 136 puts(e.stageX.toString()+","+e.stageY.toString()+" "+mDrag.dx.toString()+","+mDrag.dy.toString()); 115 137 } … … 132 154 { 133 155 mCurrentViewport.moveByPixel(dx, dy); 134 fireViewportChange( );156 fireViewportChange(dx, dy); 135 157 } 136 158 } -
lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapViewEvent.as
r2384 r2528 8 8 9 9 private var mViewport:GMapViewport; 10 private var mScrDX:Number; 11 private var mScrDY:Number; 12 private var mDZ:int; 10 13 11 14 public function GMapViewEvent(vp:GMapViewport, t:String) … … 19 22 return mViewport; 20 23 } 24 25 public function set screenDX(d:Number):void 26 { 27 mScrDX = d; 28 } 29 public function get screenDX():Number 30 { 31 return mScrDX; 32 } 33 34 public function set screenDY(d:Number):void 35 { 36 mScrDY = d; 37 } 38 public function get screenDY():Number 39 { 40 return mScrDY; 41 } 42 43 public function get dZoom():int 44 { 45 return mDZ; 46 } 47 public function set dZoom(d:int):void 48 { 49 mDZ = d; 50 } 21 51 } 22 52 } -
lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapViewport.as
r2485 r2528 8 8 private var mLatlng:LatLng = new LatLng(); 9 9 private var mNrmXY:Point = new Point(); 10 private var mScreenXY:Point = new Point();10 //private var mScreenXY:Point = new Point(); 11 11 private var mBitmapXY:Point = new Point(); 12 12 private var mViewSize:Point = new Point(); … … 36 36 37 37 calcXY(); 38 mScreenXY.x = 0;39 mScreenXY.y = 0;38 //mScreenXY.x = 0; 39 //mScreenXY.y = 0; 40 40 } 41 41 … … 74 74 mZoom = z; 75 75 mMapSize = Number( GMapCalc.calcMapSize(z) ); 76 77 calcXY(); 78 // mScreenXY.x = 0; 79 // mScreenXY.y = 0; 76 80 } 77 81 … … 84 88 public function moveByPixel(dx:Number, dy:Number):void 85 89 { 86 mScreenXY.x += dx;87 mScreenXY.y += dy;88 89 90 var v:Point = new Point(); 90 91 transformVectorScreenToView(dx, dy, v); 91 92 92 mBitmapXY.x += dx;93 mBitmapXY.y += dy;93 mBitmapXY.x += v.x; 94 mBitmapXY.y += v.y; 94 95 95 96 mNrmXY.x = mBitmapXY.x / mMapSize; … … 117 118 } 118 119 120 public function get lat():Number 121 { 122 return mLatlng.lat; 123 } 119 124 125 public function get lng():Number 126 { 127 return mLatlng.lng; 128 } 129 /* 120 130 public function get screenX():Number 121 131 { … … 127 137 return mScreenXY.y; 128 138 } 129 139 */ 130 140 public function get to_screen_transform():Matrix 131 141 { -
lang/actionscript/swfgmap/trunk/gyuque/gmap/Layer.as
r2496 r2528 7 7 public class Layer extends Sprite 8 8 { 9 private var prevScreenXY:Point;10 9 protected var mViewport:GMapViewport; 10 protected var mIndex:int; 11 11 12 12 protected var mLastDX:Number; 13 13 protected var mLastDY:Number; 14 14 protected var mParent:Layer; 15 protected var mEventSource:EventDispatcher; 15 16 16 17 public function Layer(eventSrc:EventDispatcher, parent:Layer) 17 18 { 18 19 eventSrc.addEventListener(GMapViewEvent.VIEWPORT_CHANGED, onViewportChanged); 20 mEventSource = eventSrc; 19 21 mParent = parent; 20 22 } 21 23 22 p rotected function onViewportChanged(e:GMapViewEvent):void24 public function get layerIndex():int 23 25 { 24 var v:GMapViewport = e.viewport; 25 mViewport = v; 26 27 if (!prevScreenXY) 28 { 29 prevScreenXY = new Point(v.screenX, v.screenY); 30 updateContent(true); 31 } 32 else 33 { 34 mLastDX = v.screenX - prevScreenXY.x; 35 mLastDY = v.screenY - prevScreenXY.y; 36 37 prevScreenXY.x = v.screenX; 38 prevScreenXY.y = v.screenY; 39 updateContent(false); 40 } 26 return mIndex; 41 27 } 42 28 43 p rotected function updateContent(refreshAll:Boolean):void29 public function set layerIndex(i:int):void 44 30 { 31 mIndex = i; 45 32 } 33 34 protected function onViewportChanged(e:GMapViewEvent):void 35 {} 46 36 } 47 37 } -
lang/actionscript/swfgmap/trunk/gyuque/gmap/LayerManager.as
r2496 r2528 16 16 public function push(lyr:Layer):void 17 17 { 18 lyr.layerIndex = mLayers.length; 18 19 mLayers.push(lyr); 19 20 addChild(lyr); 20 21 } 21 22 22 protected override function updateContent(refreshAll:Boolean):void 23 protected override function onViewportChanged(e:GMapViewEvent):void 24 { 25 var firstset:Boolean = false; 26 if (!mViewport) 27 firstset = true; 28 29 var v:GMapViewport = e.viewport; 30 mViewport = v; 31 32 if (firstset || e.dZoom) 33 { 34 mLastDX = 0; 35 mLastDY = 0; 36 updateContent(true, e); 37 } 38 else 39 { 40 mLastDX = e.screenDX; 41 mLastDY = e.screenDY; 42 updateContent(false, e); 43 } 44 } 45 46 protected function updateContent(refreshAll:Boolean, e:GMapViewEvent):void 23 47 { 24 48 var v:GMapViewport = mViewport; … … 32 56 if (refreshAll) 33 57 { 34 35 58 mPanPos.x = 0; 36 59 mPanPos.y = 0; … … 41 64 mPanPos.y += mLastDY; 42 65 } 43 M.tx += mPanPos.x;44 M.ty += mPanPos.y;66 M.tx -= mPanPos.x; 67 M.ty -= mPanPos.y; 45 68 46 69 transform.matrix = M; -
lang/actionscript/swfgmap/trunk/gyuque/gmap/ViewportUpdater.as
r2496 r2528 28 28 mUpdateTimer.addEventListener(TimerEvent.TIMER, onTimer); 29 29 mUpdateTimer.start(); 30 } 31 32 public function terminate():void 33 { 34 mUpdateTimer.stop(); 30 35 } 31 36 … … 192 197 193 198 mListener.getCurrentPanning(p); 194 bx += p.x;195 by += p.y;199 bx -= p.x; 200 by -= p.y; 196 201 197 202 mCurViewport.transformVectorViewToScreen(bx, by, p); -
lang/actionscript/swfgmap/trunk/gyuque/gmap/googlemaps/GMapMapLayer.as
r2496 r2528 1 1 package gyuque.gmap.googlemaps 2 2 { 3 import flash.events. EventDispatcher;3 import flash.events.*; 4 4 import flash.display.*; 5 5 import flash.geom.Point; … … 13 13 protected var mCenterTY:int; 14 14 protected var mLoadedTiles:GridHash = new GridHash(); 15 16 protected static var I:int = 0; 17 protected var _I:int; 15 18 16 19 public function set debug_out(d:IDebugOut):void … … 34 37 g.drawRect(-128, -128, 256, 256); 35 38 g.endFill(); 39 40 _I=I++; 36 41 } 37 42 38 protected override function updateContent(refreshAll:Boolean):void43 protected override function onViewportChanged(e:GMapViewEvent):void 39 44 { 40 var v:GMapViewport = mViewport; 45 var firstset:Boolean = false; 46 if (!mViewport) 47 firstset = true; 48 49 if (e.dZoom) 50 { 51 e.dZoom = 0; 52 relay(e); 53 return; 54 } 55 56 var v:GMapViewport = e.viewport; 57 mViewport = v; 41 58 mVPobs.currentViewport = mViewport; 59 } 60 61 protected function relay(e:GMapViewEvent):void 62 { 63 if (mParent) 64 { 65 terminate(); 66 var p:Layer = mParent; 67 p.removeChildAt(layerIndex); 68 69 var newLayer:GMapMapLayer = new GMapMapLayer(mEventSource, mParent); 70 newLayer.layerIndex = layerIndex; 71 newLayer.debug_out = mVPobs.dout; // 72 p.addChildAt(newLayer, layerIndex); 73 newLayer.onViewportChanged(e); 74 } 75 } 76 77 public function terminate():void 78 { 79 mVPobs.terminate(); 80 mEventSource.removeEventListener(GMapViewEvent.VIEWPORT_CHANGED, onViewportChanged); 42 81 } 43 82 … … 52 91 { 53 92 var tile:GMapMapTile = new GMapMapTile(tx, ty, GMapCalc.calcMapsZoomIndex(mViewport.zoom)); 93 tile.addEventListener(IOErrorEvent.IO_ERROR, onIOError); 94 mVPobs.dout.puts(tile.url); 95 54 96 addChild(tile.loadTile()); 55 97 … … 63 105 64 106 mLoadedTiles.poke(tx, ty, tile); 107 } 108 109 protected function onIOError(e:IOErrorEvent):void 110 { 65 111 } 66 112 … … 92 138 } 93 139 94 out.x += x;95 out.y += y;140 out.x -= x; 141 out.y -= y; 96 142 97 143 } -
lang/actionscript/swfgmap/trunk/gyuque/gmap/googlemaps/GMapMapTile.as
r2456 r2528 2 2 { 3 3 import flash.display.*; 4 import flash.events.*; 4 5 import flash.net.URLRequest; 5 6 … … 13 14 } 14 15 16 public function get url():String 17 { 18 return mTileURL; 19 } 20 15 21 public function loadTile():Loader 16 22 {
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)