Show
Ignore:
Timestamp:
12/14/07 18:25:12 (13 months ago)
Author:
gyuque
Message:

lang/actionscript/swfgmap: implemented button feedback

Location:
lang/actionscript/swfgmap/trunk
Files:
6 modified

Legend:

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

    r3133 r3135  
    5151                        var rbZIn:RoundRectButton = new RoundRectButton(RoundRectPlusButtonSprite, 24, false, true); 
    5252                        addChild(rbZIn); 
    53                         rbZIn.x = 47; 
     53                        rbZIn.x = 48; 
    5454                        rbZIn.y = 80; 
    5555                         
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/ui/RoundRectButton.as

    r3129 r3135  
    99                { 
    1010                        var sup:RoundRectButtonSprite = new spriteClass(explicitWidth, leftr, rightr, rclose); 
     11                        var sdown:RoundRectButtonSprite = new spriteClass(explicitWidth, leftr, rightr, rclose, true); 
    1112                        upState = sup; 
    1213                        hitTestState = sup; 
    1314                        overState = sup; 
    14                         downState = sup; 
     15                        downState = sdown; 
    1516                         
    1617                        useHandCursor = true; 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/ui/RoundRectButtonSprite.as

    r3129 r3135  
    2626                private var mHighlightOutlineColor:uint = 0xffffff; 
    2727                 
    28                 public function RoundRectButtonSprite(explicitWidth:Number, leftr:Boolean, rightr:Boolean, rclose:Boolean = true) 
     28                public function RoundRectButtonSprite(explicitWidth:Number, leftr:Boolean, rightr:Boolean, rclose:Boolean = true, pushed:Boolean = false) 
    2929                { 
    30                         createGradients(22); 
     30                        createGradients(22, pushed); 
    3131                         
    3232                        mLeftRounded  = leftr; 
    3333                        mRightRounded = rightr; 
    3434                        mRightClosed  = rclose; 
    35                         redraw(explicitWidth, 22); 
     35                        redraw(explicitWidth, 22, pushed); 
    3636                         
    3737                } 
    3838                 
    39                 protected function createGradients(h:Number):void 
     39                protected function createGradients(h:Number, pushed:Boolean):void 
    4040                { 
    4141                        mGradColors = [0xf0f0f0, 0xd0d0d0]; 
     
    4545                        mGradMatrix.createGradientBox(h, h, Math.PI / 2, 0, 0); 
    4646 
    47                         mHGradColors = [0xffffff, 0xffffff, 0xffffff]; 
    48                         mHGradAlphas = [0.5, 0.3, 0]; 
    49                         mHGradRatios = [0, 110, 111]; 
     47                        if (!pushed) 
     48                        { 
     49                                mHGradColors = [0xffffff, 0xffffff, 0xffffff]; 
     50                                mHGradAlphas = [0.5, 0.3, 0]; 
     51                                mHGradRatios = [0, 110, 111]; 
     52                        } 
     53                        else 
     54                        { 
     55                                mHGradColors = [0,0]; 
     56                                mHGradAlphas = [0.2, 0]; 
     57                                mHGradRatios = [0, 90]; 
     58                        } 
    5059                        mHGradMatrix = new Matrix(); 
    5160                        mHGradMatrix.createGradientBox(h, h, Math.PI / 2, 0, 0); 
    5261                } 
    5362                 
    54                 public function redraw(w:Number, h:Number):void 
     63                public function redraw(w:Number, h:Number, pushed:Boolean):void 
    5564                { 
    5665                        var g:Graphics = graphics; 
     
    7180                        g.endFill(); 
    7281                         
    73                         g.lineStyle(1, mHighlightOutlineColor, 0.4, true); 
    74                         g.beginFill(0,0); 
    75                         drawBottom(g, w, h, 0, 2); 
    76                         g.endFill(); 
    77  
    7882                        g.beginFill(0,0); 
    7983                        g.lineStyle(1, mBorderColor, 0.5, true); 
     
    8185                        g.endFill(); 
    8286                         
    83                         drawLabel(g, w, h); 
     87                        drawLabel(g, w, h, pushed ? 1 : 0); 
    8488                         
    8589                        g.lineStyle(); 
     
    8791                        drawBorder(g, w, h, 1, false); 
    8892                        g.endFill(); 
     93                         
     94                        if (!pushed) 
     95                        { 
     96                                g.lineStyle(1, mHighlightOutlineColor, 0.4, true); 
     97                                g.beginFill(0,0); 
     98                                drawBottom(g, w, h, 0, 2); 
     99                                g.endFill(); 
     100                        } 
     101                        else 
     102                        { 
     103                                g.beginFill(0,0); 
     104                                g.lineStyle(2, 0, 0.1, true); 
     105                                drawBorder(g, w, h, 0.5, false); 
     106                                g.endFill(); 
     107                         
     108                                g.beginFill(0,0); 
     109                                g.lineStyle(3, 0, 0.1, true); 
     110                                drawBorder(g, w, h, 1, false); 
     111                                g.endFill(); 
     112                        } 
    89113 
    90114                } 
    91115 
    92                 protected function drawLabel(g:Graphics, w:Number, h:Number):void {} 
     116                protected function drawLabel(g:Graphics, w:Number, h:Number, shift_y:Number):void {} 
    93117                 
    94118                protected function drawBorder(g:Graphics, w:Number, h:Number, padding:Number, opened:Boolean):void 
     
    116140                                roundedRight(w, h, padding); 
    117141                                g.lineTo(padding, h-1-padding); 
     142                                 
     143                                if (!opened) 
     144                                        g.lineTo(padding, padding); 
    118145                        } 
    119146                } 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/ui/RoundRectMinusButtonSprite.as

    r3129 r3135  
    55        public class RoundRectMinusButtonSprite extends RoundRectPlusButtonSprite 
    66        { 
    7                 public function RoundRectMinusButtonSprite(explicitWidth:Number, leftr:Boolean, rightr:Boolean, rclose:Boolean = true) 
     7                public function RoundRectMinusButtonSprite(explicitWidth:Number, leftr:Boolean, rightr:Boolean, rclose:Boolean = true, pushed:Boolean = false) 
    88                { 
    9                         super(explicitWidth, leftr, rightr, rclose); 
     9                        super(explicitWidth, leftr, rightr, rclose, pushed); 
    1010                } 
    1111                 
  • lang/actionscript/swfgmap/trunk/gyuque/gmap/ui/RoundRectPlusButtonSprite.as

    r3129 r3135  
    55        public class RoundRectPlusButtonSprite extends RoundRectButtonSprite 
    66        { 
    7                 public function RoundRectPlusButtonSprite(explicitWidth:Number, leftr:Boolean, rightr:Boolean, rclose:Boolean = true) 
     7                public function RoundRectPlusButtonSprite(explicitWidth:Number, leftr:Boolean, rightr:Boolean, rclose:Boolean = true, pushed:Boolean = false) 
    88                { 
    9                         super(explicitWidth, leftr, rightr, rclose); 
     9                        super(explicitWidth, leftr, rightr, rclose, pushed); 
    1010                } 
    1111                 
    12                 protected override function drawLabel(g:Graphics, w:Number, h:Number):void 
     12                protected override function drawLabel(g:Graphics, w:Number, h:Number, shift_y:Number):void 
    1313                { 
    1414                        var cx:int = w/2; 
    15                         var cy:int = h/2; 
     15                        var cy:int = h/2 + shift_y; 
    1616 
    1717                        g.lineStyle();