source: Collectif_Otra/global.reflet-web.net/lib/reflet_swf/src/objet/texte/ChampTexteAutoAdaptable.as @ 2823

Last change on this file since 2823 was 2823, checked in by kent1, 10 years ago

Encore des changements chez Vegas

  • Property svn:executable set to *
File size: 6.3 KB
Line 
1package objet.texte
2{
3        import asgard.text.CoreTextField;
4        import flash.display.Sprite;
5        import flash.events.MouseEvent;
6        import flash.text.Font;
7        import flash.text.TextFormat;
8        import pegas.display.DisplayObjects;
9        import pegas.draw.Align
10        import flash.geom.Rectangle
11        import pegas.draw.FreePolygonPen
12        import flash.display.Shape
13        import graphics.geom.Vector2
14        import pegas.draw.FillStyle
15        import flash.display.Sprite
16        import flash.text.TextFieldAutoSize
17        import objet.ui.Etiquette
18        import pegas.transitions.TweenLite
19        import pegas.transitions.easing.*
20
21
22        public class ChampTexteAutoAdaptable extends Sprite // CoreTextField
23        {
24
25
26
27                public var textField:CoreTextField = new CoreTextField()
28
29                private var adaptation:Boolean;
30
31                public var formatage:TextFormat;
32
33                private var tailleInitiale:int;
34
35                private var stylisation:Boolean;
36
37                private var pen         :       FreePolygonPen
38
39                public  var shape       :       Shape   = new Shape();
40
41                private var over        :       Boolean
42
43                private var out         :       Boolean
44
45                private var tweeners:Boolean
46
47                private var alphaTweener                :       TweenLite ;
48                private var scaleXTweener               :       TweenLite ;
49                private var scaleYTweener               :       TweenLite ;
50                private var fontTweener         :       TweenLite ;
51
52                public var tweenDuration : Number = 0;
53
54                private var alphaTween  : Boolean
55                private var scaleXTween  : Boolean
56                private var scaleYTween  : Boolean
57                private var fontTween   : Boolean
58                private var  etiquette  :       Etiquette;
59                private var etiquetteter :Boolean
60                public var id:String;
61
62                public function ChampTexteAutoAdaptable ()
63                {
64                        //ToolTipExample()
65
66                }
67
68                // FORMAT
69                public function set format (format:TextFormat ):void
70                {
71                        formatage = format;
72
73                }
74
75                public function get format ():TextFormat
76                {
77                        return formatage;
78                }
79                //-----------------------------------------
80
81
82
83
84                // AUTO-ADAPTATION
85                public function set autoAdaptation (pAdaptation:Boolean ):void
86                {
87                        adaptation = pAdaptation;
88                }
89
90                public function get autoAdaptation ():Boolean
91                {
92                        return adaptation;
93                }
94                //-----------------------------------------
95
96
97
98
99                //AUTO-STYLISATION
100                public function set autoStylisation (pStylisation:Boolean ):void
101                {
102                        stylisation = pStylisation;
103                }
104
105                public function get autoStylisation ():Boolean
106                {
107                        return stylisation;
108                }
109                //-----------------------------------------
110                import system.events.ActionEvent
111                import flash.events.Event
112
113
114                //OVER
115                public function set rollover (pOver:Boolean ):void
116                {
117                        over = pOver;
118
119                        if ( over ) addEventListener(MouseEvent.ROLL_OVER, overFunction);
120                        if ( !over )removeEventListener(MouseEvent.ROLL_OVER, overFunction);
121
122
123                }
124
125                public function get rollover():Boolean
126                {
127                        return over;
128                }
129
130                //-----------------------------------------
131
132                //OUT
133                public function set rollout (pOut:Boolean ):void
134                {
135                        out      = pOut
136                        if ( out )      addEventListener(MouseEvent.ROLL_OUT, outFunction);
137                        if ( !out )     removeEventListener(MouseEvent.ROLL_OUT, outFunction);
138
139                }
140
141                public function get rollout():Boolean
142                {
143                        return out;
144                }
145
146                //-----------------------------------------
147
148
149
150                //-----------------------------------------
151
152                //tweeners
153                public function set tweens (pTweens:Boolean ):void
154                {
155                        tweeners         = pTweens
156
157                        if ( !tweeners ) activeTweens(false,false,false,false)
158
159                }
160
161                public function get tweens():Boolean
162                {
163                        return tweeners;
164                }
165
166                //-----------------------------------------
167
168
169
170                //-----------------------------------------
171
172
173
174
175                public function set text ( pText:String ):void
176                {
177                        this.addChild(textField)
178                        this.textField.defaultTextFormat=formatage
179                        this.textField.text = pText;
180                        if (autoAdaptation) adapte();
181                        if (stylisation) style()
182
183                }
184
185
186
187                private function adapte ():void
188                {
189                        //if (formatage == null) formatage = textField.getTextFormat();trace("nul")
190
191                        tailleInitiale = int(formatage.size);
192
193
194
195
196                        while ( textField.textWidth > width || textField.textHeight > height )
197                        {
198
199                                if ( formatage.size <= 0 ) return;
200
201                                formatage.size = --tailleInitiale; textField.setTextFormat ( formatage );
202                        }
203
204                }
205
206
207
208                private function style():void
209                {
210
211                        textField.autoSize = TextFieldAutoSize.LEFT
212
213                        var hauteur:int = this.textField.height
214                        var largeur:int = this.textField.width + 5
215
216
217                        pen             = new FreePolygonPen (shape , new Vector2(0,0),new Vector2(largeur-10,0),new Vector2(largeur, hauteur / 4),new Vector2(largeur,hauteur),new Vector2(0,hauteur) ) ;
218                        pen.fill        = new FillStyle(0xFFFFFF ) ;
219                        pen.draw() ;
220                        removeChild(textField)
221                        addChild(shape)
222                        addChild(textField)
223
224                }
225
226
227                private function outFunction(e:MouseEvent):void
228                {
229
230                        if (tweeners) doTweens(0.8)
231
232
233                }
234
235                private function overFunction(e:MouseEvent):void
236                {
237
238                        if (tweeners) doTweens(1)
239
240                }
241
242
243                private function doTweens(pAlpha:Number=1,pScaleX:Number=1,pScaleY:Number=1,pFont:Number=1):void
244                {
245
246                        if (tweenDuration == 0)
247                        {
248                                trace (" \n !!! ---------------  ");
249                                //trace(this + " : Erreur, TweenDuration vaut : " + tweenDuration);
250                                trace(" ------------------- !!!!  \n")
251                        }
252                        if (!stylisation  || shape==null)
253                        {
254                                trace (" \n !!! ---------------  ");
255                                //trace(this + " : Erreur, shape vaut :  " + shape + "")
256                                trace (" !!! --------------- \n");
257                        }
258
259                        if (alphaTween)
260                        {
261                                alphaTweener = new TweenLite (shape, "alpha",null, shape.alpha, pAlpha, tweenDuration, true) ;
262                                alphaTweener.start()
263                        } else alphaTweener = null
264
265                        if (scaleXTween)
266                        {
267                                scaleXTweener = new TweenLite (shape, "scaleX",null, shape.scaleX, pScaleX, tweenDuration, true) ;
268                                scaleXTweener.start()
269                        } else scaleXTweener = null
270
271                        if (scaleYTween)
272                        {
273                                scaleYTweener = new TweenLite (shape, "scaleY",null, shape.scaleY, pScaleY, tweenDuration, true) ;
274                                scaleYTweener.start()
275                        } else scaleYTweener = null
276                        //
277                        if (fontTween)
278                        {
279                                trace (" \n !!! ---------------  ");
280                                trace(this + " : Erreur, fontTweener en chantier ;-) ")
281                                trace (" !!! --------------- \n");
282                        }
283
284
285
286
287
288                }
289
290
291                public function activeTweens(pAlpha:Boolean=false,pScaleX:Boolean=false,pScaleY:Boolean=false,pFont:Boolean=false):void
292                {
293                                alphaTween = pAlpha
294                                scaleXTween = pScaleX
295                                scaleYTween = pScaleY
296                                fontTween = pFont
297                }
298
299
300
301
302
303
304
305
306
307
308        }
309}
310
311
312
Note: See TracBrowser for help on using the repository browser.