GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Description: Github flash badge
Homepage: http://spinach.andascarygoat.com/tags/badjo
Clone URL: git://github.com/zmack/badjo.git
zmack (author)
Sat May 03 08:17:04 -0700 2008
commit  82f4b90a3d58e194eda814c0bbcec0529e7b0515
tree    b82ad28a06a6b9228b2947497556f25274c95456
parent  1ba0fd6565c9e72e00453ad412b8539eddc24550
badjo / src / PickleButton.as
100644 85 lines (66 sloc) 2.341 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package {
  import flash.events.Event;
  import flash.events.MouseEvent;
  import flash.display.Sprite;
  import flash.text.TextField;
  import flash.text.StyleSheet;
  
  public class PickleButton extends Sprite {
    public var text:String;
    public var itemWidth:Number;
    public var itemHeight:Number;
    public var padding:Number;
 
    private var _image:Sprite;
    private var _textField:TextField;
    private var _style:StyleSheet;
 
    public function PickleButton(options:Object) {
      this.itemWidth = options.width || 200;
      this.padding = options.padding || 5;
 
      this._image = options.image || new Sprite();
      this._textField = this.createTextField();
      this._textField.htmlText = '<p>' + (options.text || 'No text specified') + '</p>';
 
      this.resizeComponents();
      this.drawBackground();
      addChild(this._textField);
      addChild(this._image);
      this.addEvents();
    }
 
    public function drawBackground(color:uint = 0xFF00FF):void {
      this.graphics.clear();
      this.graphics.beginFill(color, 0.4);
      this.graphics.drawRoundRect(0, 0, this.itemWidth, this.itemHeight, 15, 15);
    }
 
    private function addEvents():void {
      this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
      this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
    }
 
    private function onMouseOver(e:MouseEvent):void {
      this.drawBackground(0x0F00F0);  
    }
 
    private function onMouseOut(e:MouseEvent):void {
      this.drawBackground();
    }
 
    private function createTextField():TextField {
      var text:TextField = new TextField();
      
      text.y = this.padding;
      text.styleSheet = this.createStyleSheet();
      text.multiline = true;
      text.wordWrap = true;
      text.selectable = false;
 
      text.mouseEnabled = false;
      return text;
    }
 
    private function resizeComponents():void {
      this.itemHeight = this._image.height + this.padding * 2;
      this._textField.x = this._image.width + this.padding;
      this._textField.width = this.itemWidth - this._image.width - this.padding;
      this._textField.height = this.itemHeight - this.padding * 1;
 
      this._image.x = this.padding;
      this._image.y = this.padding;
    }
 
    private function createStyleSheet():StyleSheet {
      var style:StyleSheet = new StyleSheet();
 
      style.parseCSS('p { font-family: "Trebuchet MS"; font-size: 11px; color: #000000; background-color: #FF00FF; }');
 
      return style;
    }
 
  }
}