Advertisement
Guest User

RoundRectButton

a guest
Jun 3rd, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package aufgabe1
  2. {
  3.     import flash.display.Graphics;
  4.     import flash.display.SimpleButton;
  5.     import flash.display.Sprite;
  6.     import flash.filters.BevelFilter;
  7.     import flash.filters.BitmapFilter;
  8.     import flash.filters.BitmapFilterType;
  9.     import flash.filters.BlurFilter;
  10.     import flash.filters.DropShadowFilter;
  11.     import flash.filters.GlowFilter;
  12.     import flash.text.TextField;
  13.     import flash.text.TextFieldAutoSize;
  14.     import flash.text.TextFormat;
  15.     import flash.text.TextFormatAlign;
  16.    
  17.     import org.osmf.media.DefaultMediaFactory;
  18.    
  19.     public class RoundRectButton extends Sprite
  20.     {
  21.         private var buttonWidth:uint;
  22.         private var buttonHeight:uint;
  23.         private var buttonRadius:uint;
  24.         private var buttonBgColor:uint;
  25.         private var buttonText:String;
  26.         private var buttonFont:String;
  27.         private var buttonFontSize:uint;
  28.         private var buttonFontColor:uint;
  29.                
  30.         public function RoundRectButton(width:uint, height:uint, radius:uint, color:uint, text:String, font:String, fontSize:uint, fontColor:uint)
  31.         {
  32.             buttonWidth = width;
  33.             buttonHeight = height;
  34.             buttonRadius = radius;
  35.             buttonBgColor = color;
  36.             buttonText = text;
  37.             buttonFont = font;
  38.             buttonFontSize = fontSize;
  39.             buttonFontColor = fontColor;
  40.            
  41.             var button:SimpleButton = createButton();
  42.             addChild(button);
  43.             var buttonTextField:TextField = createButtonTextField();
  44.             addChild(buttonTextField);
  45.         }
  46.        
  47.         private function createButton():SimpleButton
  48.         {
  49.             var upStateFilter: Array = new Array();
  50.             var downStateFilter: Array = new Array();
  51.             var overStateFilter: Array = new Array();
  52.            
  53.             var bevel:BevelFilter = new BevelFilter();
  54.             bevel.distance = 5;
  55.             bevel.highlightColor = 0xffffff;
  56.             bevel.blurX = 10;
  57.             bevel.blurY = 10;
  58.                    
  59.             var ds:DropShadowFilter = new DropShadowFilter();
  60.             ds.color = 0x000000;
  61.             ds.distance = 5;
  62.             ds.blurX = 5;
  63.             ds.blurY = 5;
  64.             ds.alpha = 0.5;
  65.                    
  66.             var glow:GlowFilter = new GlowFilter();
  67.             glow.color = 0x000000;
  68.             glow.blurX = 5;
  69.             glow.blurY = 5;
  70.            
  71.             var test:GlowFilter = new GlowFilter();
  72.             test.color = 0xff0000;
  73.             test.inner = true;
  74.             glow.blurX = 10;
  75.             glow.blurY = 10;
  76.            
  77.             downStateFilter.push(ds);
  78.             downStateFilter.push(bevel);
  79.             downStateFilter.push(glow);
  80.             overStateFilter.push(test);
  81.             upStateFilter.push(bevel);
  82.            
  83.             trace(downStateFilter);
  84.             trace(upStateFilter);
  85.             trace(overStateFilter);
  86.            
  87.             var button:SimpleButton = new SimpleButton();
  88.             button.upState = createRoundRect(upStateFilter);
  89.             button.downState = createRoundRect(downStateFilter);
  90.             button.overState = createRoundRect(downStateFilter);
  91.             button.hitTestState = button.upState;
  92.    
  93.             return button;
  94.         }
  95.            
  96.         private function createButtonTextField():TextField
  97.         {
  98.             var buttonTextField:TextField = new TextField();
  99.             var buttonTextFormat:TextFormat = new TextFormat();
  100.             with (buttonTextFormat)
  101.             {
  102.                 align = TextFormatAlign.CENTER;
  103.                 color = buttonFontColor;
  104.                 size = buttonFontSize;
  105.                 font = buttonFont;
  106.             }
  107.        
  108.             with (buttonTextField)
  109.             {
  110.                 defaultTextFormat = buttonTextFormat;
  111.                 width = buttonWidth;
  112.                 height = buttonHeight;
  113.                 y = buttonHeight * 0.5 - textHeight;
  114.                 text = buttonText;
  115.                 autoSize = TextFieldAutoSize.CENTER;
  116.                 y = buttonHeight * 0.5 - textHeight * 0.5;
  117.                 selectable = false;    
  118.             }
  119.         return buttonTextField;
  120.         }
  121.        
  122.         private function createRoundRect(bmFilter:Array):Sprite
  123.         {
  124.             var roundRect:Sprite = new Sprite();
  125.             with(roundRect.graphics)
  126.             {
  127.                 lineStyle(1, 0, 0, true);
  128.                 beginFill(buttonBgColor,1);
  129.                 drawRoundRect(0, 0, buttonWidth, buttonHeight, buttonRadius, buttonRadius);
  130.                 endFill();
  131.             }
  132.             roundRect.filters = bmFilter;
  133.             return roundRect;
  134.         }  
  135.     }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement