Changeset 6946

Show
Ignore:
Timestamp:
02/20/08 00:35:29 (5 years ago)
Author:
gyuque
Message:

metro-map: viewer

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

Legend:

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

    r6944 r6946  
    1616                private var mLineTipBox:TipBox; 
    1717                private var mLineTipBox2:TipBox; 
    18                  
    19                 function MCanvas(w:int, h:int) 
    20                 { 
     18                private var mEditable:Boolean; 
     19                 
     20                function MCanvas(w:int, h:int, showgrid:Boolean = true, editable:Boolean = true) 
     21                { 
     22                        mEditable = editable; 
     23                         
    2124                        createLayers(); 
    2225                        mTitleBoxCtl = new MTitleBoxController(this); 
     
    2932                        mHeight = h; 
    3033                        gridSize = 5; 
    31                         drawBG(graphics); 
    32                         /* 
    33                         var p:PolyLine = new PolyLine(this, 40); 
    34                         addObject(p); 
    35  
    36                         var p2:PolyLine = new PolyLine(this, 80); 
    37                         p2.lineColor = 0xac669a; 
    38                         addObject(p2); 
    39  
    40                         var p3:PolyLine = new PolyLine(this, 120); 
    41                         p3.lineColor = 0x009900; 
    42                         addObject(p3); 
    43  
    44                         var p4:PolyLine = new PolyLine(this, 160); 
    45                         p4.lineColor = 0x888888; 
    46                         addObject(p4);*/ 
    47                         /* 
    48                         var t:MTitleBox = new MTitleBox(); 
    49                         addObject(t, 1); 
    50                         t.x = 20; 
    51                         t.y = 30; 
    52                         t.title = "表参道"; 
    53                         t.onMoved = mTitleBoxCtl.onBoxMoved; 
    54  
    55                         var t2:MTitleBox = new MTitleBox(); 
    56                         addObject(t2, 1); 
    57                         t2.x = 80; 
    58                         t2.y = 30; 
    59                         t2.title = "青山一丁目"; 
    60                         t2.onMoved = mTitleBoxCtl.onBoxMoved;*/ 
     34                        if (showgrid) 
     35                                drawBG(graphics); 
    6136                } 
    6237                 
     
    7954                public function deserialize(src:String):void 
    8055                { 
    81                 _ddump="map> "; 
    82                         var mapxml:XML = new XML(src); 
     56                        deserializeXML(new XML(src)); 
     57                } 
     58 
     59                public function deserializeXML(mapxml:XML):void 
     60                { 
    8361                        var layers:XMLList = mapxml.children(); 
    8462                         
     
    141119                                 
    142120                         
    143                         var p:PolyLine = new PolyLine(this, 10, polygon); 
     121                        var p:PolyLine = new PolyLine(this, 10, polygon, mEditable); 
    144122                        addObject(p, lyr_index); 
    145123 
     
    191169                        t.type = type; 
    192170                         
    193                         t.onMoved = mTitleBoxCtl.onBoxMoved; 
    194                         t.onMouseDown = mTitleBoxCtl.onBoxClicked; 
     171                        if (mEditable) 
     172                        { 
     173                                t.onMoved = mTitleBoxCtl.onBoxMoved; 
     174                                t.onMouseDown = mTitleBoxCtl.onBoxClicked; 
     175                        } 
    195176                } 
    196177                 
  • lang/actionscript/metro-map/mkmap/PolyLine.as

    r6944 r6946  
    1414                private var mThick:int; 
    1515                private var mLineColor:uint; 
    16                  
    17                 function PolyLine(c:MCanvas, initY:int = 10, polygon:Boolean = false) 
    18                 { 
     16                private var mEditable:Boolean; 
     17                 
     18                function PolyLine(c:MCanvas, initY:int = 10, polygon:Boolean = false, editable:Boolean = true) 
     19                { 
     20                        mEditable = editable; 
    1921                        mPolygon = polygon; 
    2022                        mCornerR = 19; 
     
    2224                        mLineColor = 0x4466ff; 
    2325                         
    24                         setInitialSegment(new Segment(10, initY, 110, initY+100)); 
     26                        setInitialSegment(new Segment(10, initY, 110, initY+100), editable); 
    2527                        mCanvas = c; 
    2628                        mouseEnabled = false; 
     
    3840                } 
    3941                 
    40                 private function setInitialSegment(s:Segment):void 
     42                private function setInitialSegment(s:Segment, editable:Boolean):void 
    4143                { 
    4244                        mFirst = s; 
     
    4648                        s.prev = null; 
    4749                         
    48                         var hb:AnchorButton = new AnchorButton(false); 
    49                         var tb:AnchorButton = new AnchorButton(false); 
    50                         var mb:AnchorButton = new AnchorButton(true); 
    51                          
    52                         addChild(hb); 
    53                         addChild(tb); 
    54                         addChild(mb); 
    55                         hb.onMoved = onAnchorMove; 
    56                         tb.onMoved = onAnchorMove; 
    57                         mb.onMoved = onAnchorMove; 
    58  
    59                         hb.ownerCanvas = mCanvas; 
    60                         tb.ownerCanvas = mCanvas; 
    61                         mb.ownerCanvas = mCanvas; 
     50                        if (editable) 
     51                        { 
     52                                var hb:AnchorButton = new AnchorButton(false); 
     53                                var tb:AnchorButton = new AnchorButton(false); 
     54                                var mb:AnchorButton = new AnchorButton(true); 
     55                                 
     56                                addChild(hb); 
     57                                addChild(tb); 
     58                                addChild(mb); 
     59                                hb.onMoved = onAnchorMove; 
     60                                tb.onMoved = onAnchorMove; 
     61                                mb.onMoved = onAnchorMove; 
     62 
     63                                hb.ownerCanvas = mCanvas; 
     64                                tb.ownerCanvas = mCanvas; 
     65                                mb.ownerCanvas = mCanvas; 
     66                        } 
    6267                         
    6368                        updateView(); 
    6469                         
    65                         s.headAnc = hb; 
    66                         s.midAnc  = mb; 
    67                         s.tailAnc = tb; 
    68                         s.updateAnchors(); 
    69                          
    70                         tb.backSegment   = s; 
    71                         mb.middleSegment = s; 
     70                        if (editable) 
     71                        { 
     72                                s.headAnc = hb; 
     73                                s.midAnc  = mb; 
     74                                s.tailAnc = tb; 
     75                                s.updateAnchors(); 
     76                                 
     77                                tb.backSegment   = s; 
     78                                mb.middleSegment = s; 
     79                        } 
    7280                } 
    7381                 
     
    138146                        } 
    139147                         
    140                         for(s = mFirst; s != null; s=s.next) 
    141                                 drawCenterLine(s); 
     148                        if (mEditable) 
     149                        { 
     150                                for(s = mFirst; s != null; s=s.next) 
     151                                        drawCenterLine(s); 
     152                        } 
    142153                } 
    143154                 
     
    219230                        var newSeg:Segment = new Segment(x, y, s.x2, s.y2); 
    220231 
    221                         var tb:AnchorButton = new AnchorButton(false); 
    222                         var mb:AnchorButton = new AnchorButton(true); 
    223                          
    224                         tb.ownerCanvas = mCanvas; 
    225                         mb.ownerCanvas = mCanvas; 
    226                          
    227                         addChild(tb); 
    228                         addChild(mb); 
    229                         tb.onMoved = onAnchorMove; 
    230                         mb.onMoved = onAnchorMove; 
    231                         tb.backSegment   = newSeg; 
    232                         mb.middleSegment = newSeg; 
    233                          
    234                         newSeg.headAnc = s.tailAnc; 
    235                         newSeg.midAnc  = mb; 
    236                         newSeg.tailAnc = tb; 
     232                        var tb:AnchorButton = null; 
     233                        if (mEditable) 
     234                        { 
     235                                tb = new AnchorButton(false); 
     236                                var mb:AnchorButton = new AnchorButton(true); 
     237                                 
     238                                tb.ownerCanvas = mCanvas; 
     239                                mb.ownerCanvas = mCanvas; 
     240                                 
     241                                addChild(tb); 
     242                                addChild(mb); 
     243                                tb.onMoved = onAnchorMove; 
     244                                mb.onMoved = onAnchorMove; 
     245                                tb.backSegment   = newSeg; 
     246                                mb.middleSegment = newSeg; 
     247                                 
     248                                newSeg.headAnc = s.tailAnc; 
     249                                newSeg.midAnc  = mb; 
     250                                newSeg.tailAnc = tb; 
     251                        } 
    237252                         
    238253                        s.x2 = x; 
     
    252267                                mLast = newSeg; 
    253268                         
    254                         s.updateAnchors(); 
    255                         newSeg.updateAnchors(); 
    256                         if (oldNext) 
    257                                 oldNext.updateAnchors(); 
     269                        if (mEditable) 
     270                        { 
     271                                s.updateAnchors(); 
     272                                newSeg.updateAnchors(); 
     273                                if (oldNext) 
     274                                        oldNext.updateAnchors(); 
     275                        } 
    258276                         
    259277                        return newSeg;