Show
Ignore:
Timestamp:
12/14/07 17:08:24 (13 months ago)
Author:
gyuque
Message:

lang/actionscript/swfgmap: zoom in/out button (handler is not yet)

Location:
lang/actionscript/swfgmap/trunk
Files:
3 added
4 modified

Legend:

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

    r3121 r3129  
    4949                        addChild(mLayerToggle); 
    5050                */       
    51                         /* 
    52                         var rb:RoundRectButton = new RoundRectButton(); 
    53                         addChild(rb); 
    54                         rb.x = 8; 
    55                         rb.y = 100;*/ 
     51                        var rbZIn:RoundRectButton = new RoundRectButton(RoundRectPlusButtonSprite, 24, false, true); 
     52                        addChild(rbZIn); 
     53                        rbZIn.x = 47; 
     54                        rbZIn.y = 80; 
     55                         
     56                        var rbZOut:RoundRectButton = new RoundRectButton(RoundRectMinusButtonSprite, 40, true, false); 
     57                        addChild(rbZOut); 
     58                        rbZOut.x = 9; 
     59                        rbZOut.y = 80; 
     60 
    5661                } 
    5762                 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapView.as

    r3110 r3129  
    4646                                fmtDebugOut = new TextFormat(); 
    4747                                fmtDebugOut.size = 9; 
    48                                 txDebugOut.y = 90; 
    49                                 txDebugOut.height = height-90; 
     48                                txDebugOut.y = 110; 
     49                                txDebugOut.height = height-110; 
    5050                                txDebugOut.width = 600; 
    5151                        } 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/ui/RoundRectButton.as

    r3121 r3129  
    22{ 
    33        import flash.display.*; 
     4        import flash.events.*; 
     5         
    46        public class RoundRectButton extends SimpleButton 
    57        { 
    6                 public function RoundRectButton() 
     8                public function RoundRectButton(spriteClass:Class, explicitWidth:Number, leftr:Boolean, rightr:Boolean, rclose:Boolean = true) 
    79                { 
    8                         var sup:RoundRectButtonSprite = new RoundRectButtonSprite(false, true); 
     10                        var sup:RoundRectButtonSprite = new spriteClass(explicitWidth, leftr, rightr, rclose); 
    911                        upState = sup; 
     12                        hitTestState = sup; 
     13                        overState = sup; 
     14                        downState = sup; 
     15                         
     16                        useHandCursor = true; 
     17                        addEventListener(MouseEvent.MOUSE_DOWN , onMouseDown); 
     18                } 
     19                 
     20                protected function onMouseDown(e:MouseEvent):void 
     21                { 
     22                        e.stopPropagation(); 
    1023                } 
    1124        } 
    1225} 
    1326 
    14 class RoundRectButtonSprite extends flash.display.Sprite 
    15 { 
    16         import flash.display.*; 
    17         import flash.geom.Matrix; 
    18          
    19         protected var mBorderColor:uint; 
    20         protected var mLeftRounded:Boolean; 
    21         protected var mRightRounded:Boolean; 
    22         protected var mR:Number = 6; 
    23         protected const APOS:Number = 0.292893219; 
    24          
    25         private var mGradColors:Array; 
    26         private var mGradAlphas:Array; 
    27         private var mGradRatios:Array; 
    28         private var mGradMatrix:Matrix;  
    29         private var mHighlightBorderColor:uint = 0xffffff; 
    30          
    31         public function RoundRectButtonSprite(leftr:Boolean, rightr:Boolean) 
    32         { 
    33                 createGradients(22); 
    34                  
    35                 mLeftRounded  = leftr; 
    36                 mRightRounded = rightr; 
    37                 redraw(32, 22); 
    38         } 
    39          
    40         protected function createGradients(h:Number):void 
    41         { 
    42                 mGradColors = [0xf0f0f0, 0xd0d0d0]; 
    43                 mGradAlphas = [1  , 1   ]; 
    44                 mGradRatios = [0, 255]; 
    45                 mGradMatrix = new Matrix(); 
    46                 mGradMatrix.createGradientBox(h, h, Math.PI / 2, 0, 0); 
    47         } 
    48          
    49         public function redraw(w:Number, h:Number):void 
    50         { 
    51                 var g:Graphics = graphics; 
    52                  
    53                 g.lineStyle(); 
    54                 g.beginGradientFill(GradientType.LINEAR, mGradColors, mGradAlphas, mGradRatios, mGradMatrix); 
    55                 drawBorder(g, w, h, 0, false); 
    56                 g.endFill(); 
    57  
    58                 g.lineStyle(1, mHighlightBorderColor, 0.5, true); 
    59                 drawBorder(g, w, h, 1, false); 
    60                  
    61                 g.lineStyle(1, mBorderColor, 0.3, true); 
    62                 drawBorder(g, w, h, 0, false); 
    63         } 
    64          
    65         protected function drawBorder(g:Graphics, w:Number, h:Number, padding:Number, opened:Boolean):void 
    66         { 
    67                 if (mLeftRounded && mRightRounded) 
    68                 { 
    69                         g.moveTo(mR+padding, h-1-padding); 
    70                         roundedLeft(w, h, padding); 
    71                         g.lineTo(w-1-mR-padding, padding); 
    72                         roundedRight(w, h, padding); 
    73                 } 
    74                 else if (mLeftRounded) 
    75                 { 
    76                         g.moveTo(w-1-padding, h-1-padding); 
    77                         g.lineTo(mR+padding, h-1-padding); 
    78                         roundedLeft(w, h, padding); 
    79                         g.lineTo(w-1-padding, padding); 
    80                 } 
    81                 else if (mRightRounded) 
    82                 { 
    83                         g.moveTo(padding, padding); 
    84                         g.lineTo(w-1-mR-padding, padding); 
    85                         roundedRight(w, h, padding); 
    86                         g.lineTo(padding, h-1-padding); 
    87                 } 
    88         } 
    89          
    90         protected function roundedLeft(w:Number, h:Number, padding:Number):void 
    91         { 
    92                 var A:Number = APOS*mR; 
    93                 var g:Graphics = graphics; 
    94                  
    95                 g.curveTo(padding+A*2, h-1-padding, padding+A, h-1-padding - A); 
    96                 g.curveTo(padding, h-1-padding - A*2, padding, h-1-padding - mR); 
    97                 g.lineTo(padding, padding+mR); 
    98                 g.curveTo(padding, padding+A*2, padding+A, padding+A); 
    99                 g.curveTo(padding+A*2, padding, padding+mR, padding); 
    100         } 
    101  
    102         protected function roundedRight(w:Number, h:Number, padding:Number):void 
    103         { 
    104                 var A:Number = APOS*mR; 
    105                 var g:Graphics = graphics; 
    106                  
    107                 g.curveTo(w-1-padding-A*2, padding    , w-1-padding-A, padding+A); 
    108                 g.curveTo(w-1-padding    , padding+A*2, w-1-padding  , padding+mR); 
    109                 g.lineTo(w-1-padding, h-1-padding-mR); 
    110                 g.curveTo(w-1-padding, h-1-padding-A*2, w-1-padding-A, h-1-padding-A); 
    111                 g.curveTo(w-1-padding-A*2, h-1-padding, w-1-padding-mR, h-1-padding); 
    112         } 
    113  
    114 }