Changeset 7049

Show
Ignore:
Timestamp:
02/23/08 03:21:35 (7 years ago)
Author:
gyuque
Message:

metro-map: show Google Maps tiles.

Location:
lang/actionscript/metro-map
Files:
4 added
3 modified

Legend:

Unmodified
Added
Removed
  • lang/actionscript/metro-map/StationData.as

    r7023 r7049  
    4242                public var name:String; 
    4343                public var kana:String; 
     44                public var lat:Number; 
     45                public var lng:Number; 
    4446        } 
    4547} 
  • lang/actionscript/metro-map/StationSampleData.as

    r7023 r7049  
    1212                        var raw:Object; 
    1313                        for each(raw in RAW_DATA) 
    14                                 a(raw["name"], raw["kana"], raw["station_numbers"]); 
     14                                a(raw["name"], raw["kana"], raw["station_numbers"], raw["lat"], raw["lng"]); 
    1515                } 
    1616                 
    17                 private function a(n:String, k:String, lines:Object):void 
     17                private function a(n:String, k:String, lines:Object, lat:String, lng:String):void 
    1818                { 
    1919                        var st:StationData = new StationData(n, k, lines); 
     20                        st.lat = Number(lat); 
     21                        st.lng = Number(lng); 
    2022                        map[n] = st; 
    2123                        data.push(st); 
  • lang/actionscript/metro-map/Viewer.as

    r7036 r7049  
    1414                private var romkan:RomkanMiniAS = new RomkanMiniAS(); 
    1515                private var mSearch:RomSearch; 
     16                private var mSelectedStation:StationData; 
     17                private var mShowingStation:StationData; 
    1618                private var mStData:StationSampleData = new StationSampleData(); 
    1719                 
     
    1921                private var mLabelPool:Object; 
    2022                private var mLineList:Array; 
     23                 
     24                private var mMapLayer:GMapLayer; 
    2125                 
    2226                private var mDarkScreen:Sprite; 
     
    3539                 
    3640                private var mArrowPool:SpritePool; 
     41                private var mMapFade:FadeController; 
     42                private var mMapArrowFade:FadeController; 
    3743                                 
    3844                function Viewer() 
    3945                { 
     46                        mSelectedStation = null; 
    4047                 
    4148                        mDarkScreen = createDarkScreen(); 
     
    4451                        mDarkDir = 0; 
    4552                        addChild(mDarkScreen); 
    46                  
     53 
    4754                        stage.align = StageAlign.TOP_LEFT; 
    4855                        stage.scaleMode = StageScaleMode.NO_SCALE; 
     
    6370                        icon.load(urlReq); 
    6471                         
    65                         addChild(icon);                  
    6672                         
    6773                        mTextInput = new TextField(); 
     
    8490                        mCanvas.cacheAsBitmap = true; 
    8591                        addChild(mCanvas); 
    86                         addChild(mTextInput); 
    8792                        mCanvas.objectAdded = onCanvasObjectAdded; 
    8893                         
     
    9398 
    9499                        mCanvasZoom = new ZoomController(mCanvas, 48, 24, 852/2, 476/2); 
     100 
     101                        mMapLayer = new GMapLayer(5, 3, 450, 250); 
     102                        mMapFade = new FadeController(mMapLayer, 6, false, -1, 9); 
     103                        addChild(mMapLayer); 
     104                        var map_arr:Sprite = makeArrowSprite(); 
     105                        addChild(map_arr); 
     106                        map_arr.x = 450; 
     107                        map_arr.y = 250; 
     108                        map_arr.scaleX = 3; 
     109                        map_arr.scaleY = 3; 
     110                        mMapArrowFade = new FadeController(map_arr, 6, false, -1, 11); 
    95111                         
    96112                        mArrowPool = new SpritePool(); 
     
    98114                        { 
    99115                                var arr:Sprite = makeArrowSprite(); 
    100                                 addChild(arr); 
     116                                arr.addEventListener(MouseEvent.CLICK, onArrowClick); 
     117                                arr.buttonMode = true; 
     118                                mCanvas.addChild(arr); 
    101119                                mArrowPool.add(arr); 
    102120                        } 
     121 
     122                        addChild(icon);                  
     123                        addChild(mTextInput); 
     124                } 
     125                 
     126                private function onArrowClick(e:MouseEvent):void 
     127                { 
     128                         
    103129                } 
    104130                 
    105131                private function onEnterFrame(event:Event):void 
    106132                { 
     133                        if (mSelectedStation == null) 
     134                        { 
     135                                        mMapFade.dir = -1; 
     136                                        mMapArrowFade.dir = -1; 
     137                        } 
     138                         
    107139                        if (mDarkDir != 0) 
    108140                        { 
     
    112144                                        mDarkCount = 5; 
    113145                                        mDarkDir = 0; 
     146                                        if (mSelectedStation != null) 
     147                                        { 
     148                                                mMapFade.dir = 1; 
     149                                                mMapArrowFade.dir = 1; 
     150                                        } 
    114151                                } 
    115152 
     
    146183                private function onCanvasObjectAdded(obj:CanvasObject):void 
    147184                { 
     185                        Sprite(obj).cacheAsBitmap = true; 
    148186                        if (obj is MTitleBox) 
    149187                        { 
     
    177215                private function onSearchBoxKeyDown(e:KeyboardEvent):void 
    178216                { 
     217                        mSelectedStation = null; 
    179218                        if (e.keyCode == 27) 
    180219                        { 
     
    203242                } 
    204243                 
     244                private function showMap():void 
     245                { 
     246                        if (mSelectedStation == null || mShowingStation == mSelectedStation) 
     247                                return; 
     248                         
     249                        mShowingStation = mSelectedStation; 
     250                        mMapLayer.showAround(mSelectedStation.lat, mSelectedStation.lng); 
     251                } 
     252                 
    205253                private function highlightStationList(stations:Array):void 
    206254                { 
     
    237285                                        if (poslist != null) 
    238286                                        { 
    239                                                 poslist.push(label.x+48); 
    240                                                 poslist.push(label.y+22 + label.top); 
     287                                                poslist.push(label.x); 
     288                                                poslist.push(label.y + label.top); 
    241289                                        } 
    242290                                        label.transform.colorTransform = mNoTransform; 
     
    251299                         
    252300                        if (stations == null) 
    253                         { 
    254301                                hit_lines = 0xffff; 
    255                                 //mCanvasZoom.center(); 
    256                         } 
    257                         //else 
    258                         //      mCanvasZoom.pointZoom(320, 200, 1); 
     302                         
     303                        if (poslist != null && poslist.length == 2) 
     304                        { 
     305                                mSelectedStation = StationData(stations[0]); 
     306                                mCanvasZoom.pointZoom(poslist[0]+24, poslist[1]+12, 1); 
     307                                showMap(); 
     308                        } 
     309                        else 
     310                                mCanvasZoom.center(); 
    259311                         
    260312                        for each(o in mLineList) 
     
    272324                        var s:Sprite = new Sprite(); 
    273325                        var g:Graphics = s.graphics; 
     326                         
     327                        g.lineStyle(2, 0, 0.8); 
     328                        g.moveTo(0,0); 
     329                        g.lineTo(-10,-10); 
     330                        g.lineTo(-5,-10); 
     331                        g.lineTo(-5,-20); 
     332                        g.lineTo( 5,-20); 
     333                        g.lineTo( 5,-10); 
     334                        g.lineTo(10,-10); 
     335                        g.lineTo(0,0); 
     336                         
    274337                        g.lineStyle(1, 0xffdd66); 
    275338                        g.beginFill(0xff8822);