Subversion Repositories HomeAutomation

Rev

Details | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
3 - 1
import mx.transitions.Tween;
2
 
3
class MenuItemObj {
4
 
5
    private var menuItem:MovieClip;
6
    private var menuText:TextField;
7
    private var menuFont:TextFormat;
8
 
9
    //ska sättas så fort objektet kopplas till ett index i data
10
    private var inUse:Boolean = false;
11
    private var free:Boolean = false;
12
    //håller en koppling till det index i data vars text nu finns i objektet
13
    private var dataIndex:Number;
14
 
15
    private var menuVisible:Boolean = false;
16
 
17
    private var tweenArr:Array;
18
 
19
    function MenuItemObj (mainScene:MovieClip, font:TextFormat, left:Number, width:Number, unitHeight:Number) {
20
        menuItem = mainScene.createEmptyMovieClip("menuItem", mainScene.getNextHighestDepth());
21
        menuItem._x = left;
22
        menuText = menuItem.createTextField("menuText", 1, 0, 0, 0, 10);
23
        menuText.text = "-";
24
        //font.font = "MenuText";
25
        menuText.setTextFormat(font);
26
 
27
        //size the textfield, strange way
28
        menuText.autoSize = "left";
29
        var fontSize = menuText._height;
30
        //var fontSize = menuText._height + 2;
31
        menuText.autoSize = "none";
32
        menuText._width = width*fontSize / unitHeight;
33
        menuItem._width = width;
34
        //dessa bredder är nu beroende av menuItem._height / menuText._height (unitsize), för att få det bra
35
 
36
        menuText.selectable = false;
37
        menuText.type = "dynamic";
38
        //menuText.textColor = 0xFF0000;
39
        menuText._height = fontSize;
40
        menuText.embedFonts = true;
41
        menuItem._visible = false;
42
        menuItem._height=0;
43
 
44
        menuFont = font;
45
 
46
        tweenArr = new Array();
47
    }       //end constructor
48
 
49
    public function setText(text:String) {
50
        menuText.text = text;
51
        menuText.setTextFormat(menuFont);
52
    }
53
 
54
    public function isInUse():Boolean {
55
        return inUse;
56
    }
57
 
58
    public function isvisible():Boolean {
59
        return menuItem._visible;
60
    }
61
 
62
    public function notInUse() {
63
        inUse = false;
64
    }
65
 
66
    public function isFree():Boolean {
67
        return free;
68
    }
69
 
70
    public function setFree(freeVar:Boolean) {
71
        free = freeVar;
72
    }
73
 
74
    public function setDataIndex(index:Number) {
75
        dataIndex = index;
76
        inUse = true;
77
    }
78
 
79
    public function fforward() {
80
        var tweenObj:Object;
81
        for (; tweenArr.length > 0; tweenObj = tweenArr.pop()) {
82
            //var testobj:Tween = tweenObj;
83
            if (tweenObj.time != undefined && tweenObj.time != tweenObj.duration) {
84
                tweenObj.fforward();
85
            }
86
            //tweenObj.stop();
87
        }
88
    }
89
 
90
    //scroll använder movieclippets nuvarande parametrar för höjd och y-position
91
    public function scroll(newTop:Number, newHeight:Number, timeToScroll:Number):Tween {
92
        menuItem._visible = (menuVisible && inUse);
93
        //menuItem._alpha = 100;
94
        //trace(menuText.text + " " + menuVisible);
95
        var tweenObj:Tween;
96
        if (newHeight != menuItem._height) {
97
            tweenObj = new Tween(menuItem, "_height", null, menuItem._height, newHeight, timeToScroll, true);
98
            tweenArr.push(tweenObj);
99
            /*if (newHeight == 0) {
100
                trace(menuItem._visible);
101
            }*/
102
        }
103
        if (newTop != menuItem._y) {
104
            tweenObj = new Tween(menuItem, "_y", null, menuItem._y, newTop, timeToScroll, true);
105
            tweenArr.push(tweenObj);
106
        }
107
        return tweenObj;
108
    }
109
 
110
    public function fade(from:Number, to:Number, timeToFade:Number):Tween {
111
        var tweenObj:Tween;
112
        if (from != to) {
113
            tweenObj = new Tween(menuItem, "_alpha", null, from, to, timeToFade, true);
114
            tweenArr.push(tweenObj);
115
        }
116
        return tweenObj;
117
 
118
    }
119
 
120
    public function visible(isVisible:Boolean) {
121
        menuVisible = isVisible;
122
        menuItem._visible = (menuVisible && inUse);
123
    }
124
 
125
    public function getText():String {
126
        return menuText.text;
127
    }
128
 
129
    public function getTop():Number {
130
        return menuItem._y;
131
    }
132
 
133
    public function setAlpha(value:Number) {
134
        if (value <= 100 && value >= 0) {
135
            menuItem._alpha = value;
136
        }
137
    }
138
 
139
    public function getHeight():Number {
140
        //trace("synlig: " + menuItem._visible + " höjd: " + menuItem._height + " bredd: " + menuItem._width + " y: " +menuItem._y + " bredd: " + menuText._width + " höjd: " + menuText._height);
141
        return menuItem._height;
142
    }
143
    public function setTop(top:Number) {
144
        //animera senare?
145
        menuItem._visible = (menuVisible && inUse);
146
        menuItem._y = top;
147
    }
148
    public function setHeight(height:Number) {
149
        //animera senare?
150
        menuItem._visible = (menuVisible && inUse);
151
        menuItem._height = height;
152
    }
153
 
154
}