source: Collectif_Otra/global.reflet-web.net/lib/reflet_swf/src/display/renduTexte/RenduTexte.as @ 2828

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

Nettoyage des imports principalement

  • Property svn:executable set to *
File size: 14.1 KB
Line 
1package display.renduTexte
2{
3
4        import andromeda.net.XMLLoader
5
6        import com.bit101.components.HSlider;
7
8        import display.renduTexte.display3D.text.AnimatedText3D;
9        import display.renduTexte.listes.Availability;
10        import display.renduTexte.listes.Cesure;
11        import display.renduTexte.listes.Contribution;
12        import display.renduTexte.listes.ContribsTextCollection;
13        import display.renduTexte.listes.DisplayListWord;
14        import display.renduTexte.listes.Period
15        import display.renduTexte.ObjectPool;
16        import display.renduTexte.typo.Arial;
17
18        import flash.events.Event;
19        import flash.events.KeyboardEvent;
20        import flash.events.MouseEvent;
21        import flash.events.TimerEvent;
22        import flash.net.URLRequest;
23        import flash.sampler.NewObjectSample;
24        import flash.text.TextField;
25        import flash.ui.Keyboard;
26        import flash.utils.Timer;
27
28        import org.papervision3d.cameras.Camera3D;
29        import org.papervision3d.cameras.CameraType;
30        import org.papervision3d.cameras.SpringCamera3D;
31        import org.papervision3d.core.math.Number3D;
32        import org.papervision3d.core.proto.CameraObject3D;
33        import org.papervision3d.materials.ColorMaterial;
34        import org.papervision3d.materials.WireframeMaterial;
35        import org.papervision3d.materials.special.CompositeMaterial;
36        //import display3D.text.MyClass
37        import org.papervision3d.objects.primitives.PaperPlane
38        import org.papervision3d.typography.Font3D;
39        import org.papervision3d.typography.fonts.HelveticaLight;
40        import org.papervision3d.view.BasicView;
41
42        /**
43         * ...
44         * @author ths
45         */
46
47        public class RenduTexte extends BasicView
48        {
49
50                private var zoom        : Number = 0
51                private var setting : Boolean = false
52
53
54                ///*- ------*/ test camera
55
56                private var keyRight:Boolean;
57                private var keyLeft:Boolean;
58                private var keyForward:Boolean;
59                private var keyBackward:Boolean;
60
61                private var springCamera:SpringCamera3D;
62                private var paperPlane:PaperPlane;
63                /* -------   */
64
65                private var texte3D_0 : AnimatedText3D
66                private var i : int
67
68                // YEAR POOLING
69                private var year                                : ContribsTextCollection
70                private var year_pool                   : ObjectPool
71                private var year_activeObjects  : Array = []
72                private var Y : Number = 0 // REF
73                private var y_displayList : DisplayListWord  = new DisplayListWord ()
74
75                // MONTH POOLING
76                private var month       : ContribsTextCollection
77                private var month_pool                  : ObjectPool
78                private var month_activeObjects : Array = []
79                private var M : Number = 0 // REF
80                private var m_displayList : DisplayListWord  = new DisplayListWord ()
81
82                // day POOLING
83                private var day : ContribsTextCollection
84                private var day_pool                    : ObjectPool
85                private var day_activeObjects   : Array = []
86                private var D : Number = 0 // REF
87                private var d_displayList : DisplayListWord  = new DisplayListWord ()
88
89                // day POOLING
90                private var hour        : ContribsTextCollection
91                private var hour_pool                   : ObjectPool
92                private var hour_activeObjects  : Array = []
93                private var H : Number = 0 // REF
94                private var h_displayList : DisplayListWord  = new DisplayListWord ()
95
96                // present POOLING
97                private var present_pool                        : ObjectPool
98                private var present_activeObjects       : Array = []
99                private var P : Number = 0 // REF
100
101                private var availability : Availability
102                private var o: AnimatedText3D;
103                //private var oo: MyClass;
104                private var n:int  = 3000
105                private var font : Font3D
106                private var font2 : Font3D
107                private var contrib : Contribution
108
109                private var texte:TextField = new TextField()
110                private var texte2:TextField = new TextField()
111                private var texte3:TextField = new TextField()
112                private var texte4:TextField = new TextField()
113                private var _domaine : String ;
114
115                public function RenduTexte(domaine:String):void
116                {
117                        _domaine = domaine
118
119                        //super(640,480, true, true, CameraType.SPRING);
120
121                        if (stage) init();
122                        else addEventListener(Event.ADDED_TO_STAGE, init);
123                }
124
125                private function init(e:Event = null):void
126                {
127
128                        // load contributions
129                        var xmlLoader : XMLLoader = new XMLLoader(new URLRequest("http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine="+_domaine))
130                        xmlLoader.addEventListener(Event.COMPLETE, complete)
131
132                }
133
134                //
135
136
137                private function complete(e:Event):void
138                {
139                        // CAMERA
140                        //var camera:SpringCamera3D = SpringCamera3D(camera);
141                        //camera.mass = 15;
142                        //camera.damping = 20;
143                        //camera.stiffness = 1;
144                        //camera.positionOffset = new Number3D(0, 150, -500);
145                        //camera.lookOffset = new Number3D(0, 0, 100);
146                        //camera.culled = true
147                        //camera.useCulling = true
148                        //camera.useClipping = true
149                        //
150                        //var planeMaterial:CompositeMaterial = new CompositeMaterial();
151                        //planeMaterial.addMaterial(new ColorMaterial(0xFFFFFF));
152                        //planeMaterial.addMaterial(new WireframeMaterial(0x484848));
153                        //planeMaterial.doubleSided = true;
154                        //create paperPlane
155                        //paperPlane = new PaperPlane(planeMaterial);
156                        //scene.addChild(paperPlane);
157                        //paperPlane.z= -1000;
158                        //paperPlane.y = 250;
159
160
161                        //camera.z = -2000;
162                        //camera.focus = 15;
163                        //camera.far = 20000;
164                        //camera.target = paperPlane;
165
166                        availability = new Availability (16,8,4,2)
167
168                        year = new ContribsTextCollection(e.target.data..intervalle.(@value == "year"));
169
170                        month = new ContribsTextCollection(e.target.data..intervalle.(@value == "month"));
171                        //trace("month : " + month.getContribution().texte)
172                        //trace(month.empty)
173
174                        day = new ContribsTextCollection(e.target.data..intervalle.(@value == "day"));
175                        //trace("day : " + day.getContribution().texte)
176                        //trace(day.empty)
177
178                        hour = new ContribsTextCollection(e.target.data..intervalle.(@value == "hour"));
179                        //
180                        //trace("hour : " + day.getContribution().texte)
181                        //trace(hour.empty)
182
183                        var timerSynchro:Timer = new Timer( 100) ;
184
185                        timerSynchro.addEventListener( TimerEvent.TIMER,displayed_texte) ;
186                        timerSynchro.start( ) ;
187
188                        //texte3D_0 = new AnimatedText3D("texte_0",scene,viewport,"Sinon, tout \n va \n b\/ien",new HelveticaBold(),0,0,Z,3)
189                        startRendering();
190
191                        // YEAR POOL
192                        year_pool = new ObjectPool(false);
193                        year_pool.allocate(AnimatedText3D, 20);
194                        year_pool.initialize("chargeText3D",[viewport])
195
196                        // MONTH POOL
197                        month_pool = new ObjectPool(false);
198                        month_pool.allocate(AnimatedText3D, 20);
199                        month_pool.initialize("chargeText3D",[viewport])
200
201                        // DAY POOL
202                        day_pool = new ObjectPool(false);
203                        day_pool.allocate(AnimatedText3D, 20);
204                        day_pool.initialize("chargeText3D", [viewport])
205
206                        // hour POOL
207                        hour_pool = new ObjectPool(false);
208                        hour_pool.allocate(AnimatedText3D, 20);
209                        hour_pool.initialize("chargeText3D",[viewport])
210
211                        // present POOL
212                        present_pool = new ObjectPool(false);
213                        present_pool.allocate(AnimatedText3D, 20);
214                        present_pool.initialize("chargeText3D",[viewport])
215
216                        //
217                        font = new Arial() //new HelveticaLight()
218
219                }
220
221                private function displayed_texte(e:TimerEvent):void
222                {
223
224                        //trace("num child : "+scene.numChildren)
225
226                        if (availability.year_available)
227                        {
228
229                                Y++
230                                contrib = year.getContribution()
231                                //trace("- year texte : "+contrib.texte)
232                                //trace("- year date : "+contrib.date)
233                                //
234
235                                if (contrib.texte != "empty" && y_displayList.present(contrib.date) == false )
236                                {
237                                        y_displayList.add(contrib.date)
238                                        availability.new_year_used()
239                                        o = year_pool.object;
240                                        o.start("year",Y,scene,Cesure.to (contrib.texte,50),font, Period.width("year") ,Period.hauteur("year"),Period.deph("year"),Period.duration("year",year.total),contrib.date)
241                                        o.addEventListener("DISPLAY.complete", recycling)
242                                        year_activeObjects.unshift(o);
243                                        //trace("----------------- \n")
244                                }
245                        }
246
247                        if (availability.month_available )
248                        {
249                                M++
250                                contrib = month.getContribution()
251
252
253                                if (contrib.texte != "empty" &&  m_displayList.present(contrib.date) == false)
254                                {
255                                        m_displayList.add(contrib.date)
256                                        availability.new_month_used()
257                                        o = month_pool.object;
258                                        o.start("month",M,scene,Cesure.to (contrib.texte,100),font, Period.width("month") ,Period.hauteur("month"),Period.deph("month"),Period.duration("month",year.total),contrib.date)
259                                        o.addEventListener("DISPLAY.complete", recycling)
260                                        month_activeObjects.unshift(o);
261
262                                }
263                        }
264
265                        if (availability.day_available )
266                        {
267                                D++
268                                contrib = day.getContribution()
269
270
271                                if (contrib.texte != "empty" && d_displayList.present(contrib.date) == false )
272                                {
273
274                                        d_displayList.add(contrib.date)
275                                        availability.new_day_used()
276                                        o = day_pool.object;
277                                        o.start("day",D,scene,contrib.texte,font, Period.width("day") ,Period.hauteur("day"),Period.deph("day"),Period.duration("day",day.total),contrib.date)
278                                        o.addEventListener("DISPLAY.complete", recycling)
279                                        //o.addEventListener("MOVE.camera", move)
280                                        day_activeObjects.unshift(o);
281
282                                }
283                        }
284
285
286                        //trace("available ?"+availability.hour_available)
287                        if (availability.hour_available)
288                        {
289                                H++
290                                contrib = hour.getContribution()
291
292                                //trace("hour texte"+contrib.texte)
293
294
295
296                                if (contrib.texte != "empty"  && h_displayList.present(contrib.date) == false)
297                                {
298                                        h_displayList.add(contrib.date)
299                                        availability.new_hour_used()
300
301                                        o = hour_pool.object;
302                                        o.start("hour",H,scene,Cesure.to(contrib.texte,50),font, Period.width("hour") ,Period.hauteur("hour"),Period.deph("hour"), Period.duration("hour",hour.total),contrib.date)
303                                        o.addEventListener("DISPLAY.complete", recycling)
304                                        //o.addEventListener("MOVE.camera", move)
305
306                                        hour_activeObjects.unshift(o);
307
308                                }
309                        }
310                }
311
312
313                private function largeur (texte:String):Number
314                {
315                        var test :Number = 0;
316                        if (texte.length>40) test = -800
317                        if (texte.length<=40) test = -texte.length*10
318                        return test
319
320                }
321
322
323                private var contribPresent: XML;
324
325                public function writePresent(texte:String,alphabet:String):void
326                {
327                        //contribPresent = new XML (texte)
328                        //trace("\n \ntexte: "+texte)
329
330                        //trace("présent reçu"+texte)
331
332                        o = present_pool.object
333                        o.start("present",P,scene,texte,font,largeur(texte),0,-600,3,0)
334                        o.addEventListener("DISPLAY.complete", recycling)
335                        present_activeObjects.unshift(o);
336                        hour.addContribution(new Contribution(texte, new Date().time, alphabet, texte.length))
337                        availability.new_hour_available()
338                }
339
340                private function recycling(e:*):void
341                {
342                        //trace("---------------------------")
343                        //trace("::: recycle ::: from "+e.currentTarget.name)
344
345                        switch (e.currentTarget.period)
346                        {
347                                case "year":
348                                y_displayList.remove(e.currentTarget._date)
349                                year_pool.object = year_activeObjects.pop();
350                                availability.new_year_available()
351                                Y--
352                                break;
353
354                                case "month":
355                                m_displayList.remove(e.currentTarget._date)
356                                month_pool.object = month_activeObjects.pop();
357                                availability.new_month_available()
358                                M--
359                                break;
360
361                                case ("day"):
362                                d_displayList.remove(e.currentTarget._date)
363                                day_pool.object = day_activeObjects.pop();
364                                availability.new_day_available()
365                                D--
366                                break;
367
368                                case ("hour"):
369                                h_displayList.remove(e.currentTarget._date)
370                                hour_pool.object = hour_activeObjects.pop();
371                                availability.new_hour_available()
372                                e.currentTarget.removeEventListener("DISPLAY.complete", recycling)
373
374
375
376                                H--
377                                break;
378
379                                case ("present"):
380                                trace("recycle present ")
381                                present_pool.object = present_activeObjects.pop();
382                                P--
383                                break;
384
385                                default:
386                                trace("Error when try to recycling a Object from period:"+ e.currentTarget.period )
387
388                        }
389                }
390
391                private var moveX : Number;
392                private var moveY : Number;
393                private var moveZ : Number;
394
395                import com.greensock.*
396                //import flash.ui.Keyboard
397                //import flash.events.KeyboardEvent
398
399
400                //private function move(e:*):void
401                //{
402                        //
403                        //_camera = new SpringCamera3D(60,10,5000,true)
404                        //camera.z += e.currentTarget.zDirection
405                        //TweenLite.to (camera, 2, { z:e.currentTarget.zDirection, onComplete:display } );
406                //}
407
408                private function display(e:*):void
409                {
410                        trace("complete")
411
412                }
413
414                public function focus(e:String):void
415                {
416                        switch (e)
417                        {
418                                case "in":
419
420                                focusMouse = true
421                                //trace ("ok, motion 3D");
422                                break;
423
424                                case "out":
425                                focusMouse = false
426                                //trace ("ok, center display renderer")
427                                break;
428                        }
429                }
430
431                private var easeOut     :Number = 0.8;
432                private var reachX      :Number = 0.8
433                private var reachY      :Number = 1
434                private var reachZ      :Number = 0.25;
435
436
437                public function cameraUP(e:uint):void
438                {
439                        trace("up" + e)
440                        setting = false
441                        if (e == 38 ) keyForward = false;
442                        if (e == 40 ) keyBackward = false;
443                        if (e == 37 ) keyLeft = false;
444                        if (e == 39 ) keyRight = false;
445
446                }
447
448
449                public function cameraDOWN(e:uint):void
450                {
451                        trace("down" + e)
452                        setting = true
453
454                        trace("Z "+_camera.z)
455                        trace(_camera.moveForward)
456                        if (e == 38 ) keyForward = true;
457                        if (e == 40 ) keyBackward = true;
458                        if (e == 37 ) keyLeft = true;
459                        if ( e == 39 ) keyRight = true;
460
461
462                }
463
464                public function zoomage(mouseDown:Boolean):void
465                {
466
467                        if (mouseDown) _camera.moveForward(60)
468                        else {
469                                _camera.moveForward(0)
470                                }
471                }
472
473
474                private function moveObject():void
475                {
476                        // move
477
478                        if(keyForward)
479                        {
480                                //trace("keyforward")
481                                if (_camera.z < -50)    _camera.moveForward(40)
482                                //paperPlane.moveForward(60);
483                        }
484                        else if(keyBackward)
485                        {
486                                _camera.moveBackward(60)
487
488                                //paperPlane.moveBackward(60);
489                        }
490
491                        // rotate
492                        if(keyRight)
493                        {
494
495                                //paperPlane.localRotationY -=5;
496                        }
497                        else if(keyLeft)
498                        {
499                                //paperPlane.localRotationY +=5;
500                        }
501                }
502                private var focusMouse : Boolean = true
503
504                override protected function onRenderTick(e:Event = null):void
505        {
506                //moveObject();
507                        if (focusMouse)
508                        {
509                                if (!setting)
510                                {
511                                        var xDist:Number = mouseX - stage.stageWidth * 0.5;
512                                        var yDist:Number = mouseY - stage.stageHeight * 0.5;
513
514                                        camera.x += (xDist - camera.x * reachX) * easeOut;
515                                        camera.y += (yDist - camera.y * reachY) * easeOut;
516                                        camera.z += ( ( -mouseY * 2 - camera.z ) * reachZ) - 200
517
518
519                                }
520                                else
521                                {
522                                        moveObject()
523                                        //camera.x = 0
524                                        //camera.y = 0
525                                        //camera.z = 0
526                                        //
527                                }
528                        } else
529                        {
530                                camera.x = 0
531                                camera.y = 0
532                                camera.z = -1000
533
534
535                        }
536
537            super.onRenderTick(e);
538        }
539        }
540}
Note: See TracBrowser for help on using the repository browser.