| [7849] | 1 | package elements.menu {
|
|---|
| 2 |
|
|---|
| 3 | import flash.display.Sprite;
|
|---|
| 4 | import flash.events.MouseEvent;
|
|---|
| 5 | import flash.external.ExternalInterface;
|
|---|
| 6 | import flash.text.TextField;
|
|---|
| 7 | import flash.text.TextFieldType;
|
|---|
| 8 | import flash.text.TextFormat;
|
|---|
| 9 | import flash.filters.GlowFilter;
|
|---|
| 10 | import string.Utils;
|
|---|
| 11 |
|
|---|
| 12 | public class menuItem extends Sprite {
|
|---|
| 13 |
|
|---|
| 14 | protected var chartId:String;
|
|---|
| 15 | protected var props:Properties;
|
|---|
| 16 |
|
|---|
| 17 | public function menuItem(chartId:String, props:Properties) {
|
|---|
| 18 |
|
|---|
| 19 | this.props = props;
|
|---|
| 20 |
|
|---|
| 21 | this.buttonMode = true;
|
|---|
| 22 | this.useHandCursor = true;
|
|---|
| 23 | this.chartId = chartId;
|
|---|
| 24 |
|
|---|
| 25 | this.alpha = 0.5;
|
|---|
| 26 |
|
|---|
| 27 | var width:Number = this.add_elements();
|
|---|
| 28 |
|
|---|
| 29 | this.draw_bg(
|
|---|
| 30 | width +
|
|---|
| 31 | 10 // 5px padding on either side
|
|---|
| 32 | );
|
|---|
| 33 |
|
|---|
| 34 | this.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|---|
| 35 | this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
|
|---|
| 36 | this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
|
|---|
| 37 | this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|---|
| 38 | }
|
|---|
| 39 |
|
|---|
| 40 | protected function add_elements(): Number {
|
|---|
| 41 | var width:Number = this.add_text(this.props.get('text'), 5);
|
|---|
| 42 | return width;
|
|---|
| 43 | }
|
|---|
| 44 |
|
|---|
| 45 | private function draw_bg( width:Number ):void {
|
|---|
| 46 | this.graphics.beginFill(string.Utils.get_colour( this.props.get('background-colour') ));
|
|---|
| 47 | this.graphics.drawRoundRect(0, 0, width, 20, 5, 5 );
|
|---|
| 48 | this.graphics.endFill();
|
|---|
| 49 | }
|
|---|
| 50 |
|
|---|
| 51 |
|
|---|
| 52 | protected function add_text(text:String, left:Number): Number {
|
|---|
| 53 | var title:TextField = new TextField();
|
|---|
| 54 | title.x = left;
|
|---|
| 55 | title.y = 0;
|
|---|
| 56 |
|
|---|
| 57 | //this.text = 'Save chart';
|
|---|
| 58 |
|
|---|
| 59 | title.htmlText = text;
|
|---|
| 60 |
|
|---|
| 61 | var fmt:TextFormat = new TextFormat();
|
|---|
| 62 | fmt.color = string.Utils.get_colour( this.props.get('text-colour') );
|
|---|
| 63 | fmt.font = 'Verdana';
|
|---|
| 64 | // fmt.bold = this.css.font_weight == 'bold'?true:false;
|
|---|
| 65 | fmt.size = 10;// this.css.font_size;
|
|---|
| 66 | fmt.underline = true;
|
|---|
| 67 | // fmt.align = "center";
|
|---|
| 68 |
|
|---|
| 69 | title.setTextFormat(fmt);
|
|---|
| 70 | title.autoSize = "left";
|
|---|
| 71 |
|
|---|
| 72 | // so we don't get an I-beam cursor when we mouse
|
|---|
| 73 | // over the text - pass mouse messages onto the button
|
|---|
| 74 | title.mouseEnabled = false;
|
|---|
| 75 |
|
|---|
| 76 | // title.border = true;
|
|---|
| 77 |
|
|---|
| 78 | this.addChild(title);
|
|---|
| 79 |
|
|---|
| 80 | return title.width;
|
|---|
| 81 | }
|
|---|
| 82 |
|
|---|
| 83 | public function mouseClickHandler(event:MouseEvent):void {
|
|---|
| 84 | this.alpha = 0.0;
|
|---|
| 85 | tr.aces('Menu item clicked:', this.props.get('javascript-function')+'('+this.chartId+')');
|
|---|
| 86 | ExternalInterface.call(this.props.get('javascript-function'), this.chartId);
|
|---|
| 87 | this.alpha = 1.0;
|
|---|
| 88 | }
|
|---|
| 89 |
|
|---|
| 90 | public function mouseOverHandler(event:MouseEvent):void {
|
|---|
| 91 | this.alpha = 1;
|
|---|
| 92 |
|
|---|
| 93 | ///Glow Filter
|
|---|
| 94 | var glow:GlowFilter = new GlowFilter();
|
|---|
| 95 | glow.color = string.Utils.get_colour( this.props.get('glow-colour') );
|
|---|
| 96 | glow.alpha = 0.8;
|
|---|
| 97 | glow.blurX = 4;
|
|---|
| 98 | glow.blurY = 4;
|
|---|
| 99 | glow.inner = false;
|
|---|
| 100 |
|
|---|
| 101 | this.filters = new Array(glow);
|
|---|
| 102 | }
|
|---|
| 103 |
|
|---|
| 104 | public function mouseDownHandler(event:MouseEvent):void {
|
|---|
| 105 | this.alpha = 1.0;
|
|---|
| 106 | }
|
|---|
| 107 |
|
|---|
| 108 | public function mouseOutHandler(event:MouseEvent):void {
|
|---|
| 109 | this.alpha = 0.5;
|
|---|
| 110 | this.filters = new Array();
|
|---|
| 111 | }
|
|---|
| 112 | }
|
|---|
| 113 | }
|
|---|