source: Collectif_Otra/global.reflet-web.net/lib/reflet_swf/src/Application.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: 15.2 KB
Line 
1package
2{
3        import adobe.utils.CustomActions;
4
5        import andromeda.config.Config;
6        import andromeda.config.ConfigResource;
7        import andromeda.events.LocalizationEvent;
8        import andromeda.i18n.*;
9        //import andromeda.i18n.EdenLocalizationLoader;
10        //import andromeda.i18n.Lang;
11        //import andromeda.i18n.Locale;
12        //import andromeda.i18n.Localization;
13        import andromeda.ioc.core.ObjectDefinition;
14        import andromeda.ioc.net.ObjectResourceInfo;
15        import andromeda.ioc.io.ObjectResource;
16        import andromeda.net.XMLLoader;
17
18        import asgard.display.*;
19        import asgard.media.*;
20        import asgard.net.ECMAObjectLoader;
21        import asgard.text.*;
22
23        import com.hybrid.ui.ToolTip;
24        import com.ths.utils.sharedObject.Cookies;
25
26        import display.Display;
27        import display.Wallpaper;
28        import display.Footer;
29        import display.MyPopUpTexte;
30        import display.MyPopUpSon;
31        import display.Rendu;
32
33        import flash.display.*;
34        import flash.events.Event;
35        import flash.events.IOErrorEvent;
36        import flash.events.MouseEvent;
37        import flash.events.ProgressEvent;
38        import flash.events.TimerEvent;
39        import flash.geom.Rectangle;
40        import flash.net.URLRequest;
41        import flash.system.*;
42        import flash.text.*;
43        import flash.ui.Mouse;
44
45        import lunas.display.button.FrameLabelButton;
46
47        import objet.Preloader;
48
49        import pegas.display.DisplayObjects;
50        import pegas.draw.Align;
51        import pegas.draw.FillStyle;
52        import pegas.transitions.Timer;
53
54        import system.eden;
55        import system.evaluators.EdenEvaluator;
56        import system.events.ActionEvent;
57        import system.events.EventDispatcher;
58        import system.events.FrontController;
59        import system.formatters.DateFormatter
60        import system.logging.LoggerLevel;
61        import system.logging.targets.SOSTarget;
62        import system.logging.targets.TraceTarget;
63        import system.Reflection;
64        import system.text.html.HTML;
65
66        import vegas.ioc.factory.ECMAObjectFactory;
67        import vegas.ioc.factory.ObjectConfig;
68
69        //[SWF(width="800", height="800", frameRate="24", backgroundColor="#666666")]
70
71        /**
72         * The main Application class of the application.
73         */
74        public class Application extends ApplicationDisplay
75        {
76                //connection au socket XML
77                Security.loadPolicyFile("xmlsocket://88.191.102.232:843" );
78
79                private var production : Boolean = false
80                /**
81                 * Creates a new Application instance.
82                 */
83                public var localization:Localization;
84
85                /**
86                 * Objet xml de configuration
87                 */
88
89                public var url                  :       String = root.loaderInfo.url;//"http://kent1.reflet-web.net"//
90
91
92                public var regexp               :       RegExp = /^http:\/\/(.+?)\./i
93                public var DOMAINE              :       Array = url.match(regexp);
94
95                public var factory              :       ECMAObjectFactory = ECMAObjectFactory.getInstance()
96                public var definition   :       ObjectDefinition;
97                public var preloader    :       Preloader = new Preloader("http://global.reflets.org/local/cache-vignettes/L150xH150/siteon0-8be3d.png",new TextFormat( "Verdana", 12,0xFFFFFF),false,0xFFFFFF)
98                public var delay                :       int = 3000
99                public var timer                :       Timer = new Timer( delay, -1);
100                private var langue_label_defaut : String
101                private var conf                :       Config = Config.getInstance() ;
102                private var contributions : String ;
103                private var groupe               : String
104                private var source_des_contributions             : String  = "domaine" // groupe // global
105
106                public function Application()
107                {
108                        //var date:Date = new Date().getTime
109
110
111                        if (new Cookies("reflet_user").read("user_reflet") == "") new Cookies("reflet_user").write("user_reflet", new Date().getTime());
112
113                        stage.align     = StageAlign.TOP_LEFT ;
114                        stage.scaleMode = StageScaleMode.NO_SCALE ;
115
116                        localization  = Localization.getInstance() ;
117
118                        // logging
119                        var traceTarget:TraceTarget = new TraceTarget() ;
120                        traceTarget.filters         = ["*"] ;
121                        traceTarget.level           = LoggerLevel.ALL ;
122                        traceTarget.includeLines    = true  ;
123                        traceTarget.includeTime     = true  ;
124
125                        var sosTarget:SOSTarget         = new SOSTarget( Reflection.getClassPackage(this) , 0xFFD9A2 ) ;
126                        sosTarget.filters               = ["*"] ;
127                        sosTarget.level                 = LoggerLevel.ALL ;
128                        sosTarget.includeLines          = true  ;
129                        sosTarget.includeTime           = true  ;
130
131                        //loader
132                        this.addChild(preloader)
133                        preloader.field.autoSize = TextFieldAutoSize.LEFT ;
134                        DisplayObjects.align( preloader , new Rectangle( 0, 0 , this.stage.stageWidth, this.stage.stageHeight) , Align.LEFT);
135
136
137                        //execution
138                        charger_xml_conf()
139
140                        //listeners
141                        timer.addEventListener( TimerEvent.TIMER_COMPLETE , delay_expired);
142                }
143
144                /**
145                 * Cette méthode charge automatiquement le XML de configuration du domaine.
146                 */
147                private function charger_xml_conf():void
148                {
149                        var url_xml: String;
150                        if (production) { url_xml ="http://global.reflets.org/spip.php?action=reflet_charger_conf&domaine=ths" }
151                        else
152                        {
153                                if (flashVars.getValue("domaine") != null)
154                                {
155                                        url_xml = "http://global.reflets.org/spip.php?action=reflet_charger_conf&domaine=" + flashVars.getValue("domaine")
156                                        new Cookies("reflet_domaine").write("domaine", flashVars.getValue("domaine"));
157
158                                }
159                                else url_xml = "http://global.reflets.org/spip.php?action=reflet_charger_conf&domaine="+DOMAINE[1]
160                        }
161
162                        var chargeur_xml:XMLLoader=new XMLLoader(new URLRequest(url_xml))
163                        chargeur_xml.addEventListener(Event.OPEN,preload_start)
164                        chargeur_xml.addEventListener(ProgressEvent.PROGRESS,preload_progress)
165                        chargeur_xml.addEventListener(Event.COMPLETE, map_config)
166                        chargeur_xml.addEventListener(IOErrorEvent.IO_ERROR,preload_error)
167                }
168
169                /**
170                 * Méthode invoquée pour mapper en objet CONFIG les paramètres XMl dans la pile ioc.
171                 */
172                private function map_config(e:Event ):void
173                {
174                        var xml:XML = new XML ( HTML.decode( e.currentTarget.data) )
175                        // mappage xml
176
177                        if ( xml.reflet_en_pause == "oui") { affichage_en_pause(xml.langue_label_defaut) }
178                        else
179                        {
180
181                                groupe  = xml.groupe
182                                langue_label_defaut             = xml.langue_label_defaut ;
183
184                                //source_des_contributions = xml.source_des_contributions ;  ---------------------------------------------  CORRIGER
185
186                                var xmlconfig:Object =
187                                        {
188                                                configuration :
189                                                {
190                                                        domaine                                                         : xml.domaine,
191                                                                presentation                                            : xml.presentation,
192                                                                titre                                                           : xml.titre,
193                                                                source_des_contributions                        : xml.source_des_contributions,
194                                                                wallpaper                                                       : xml.wallpaper,
195                                                                wallpaper_position                                      : xml.wallpaper_position,
196                                                                lien_global                                                     : xml.lien_global,
197                                                                langue_label_defaut                                     : xml.langue_label_defaut,
198                                                                langue_label_disponible                         : xml.langue_label_disponible,
199                                                                langue_label_disponible_long            : xml.langue_label_disponible_long,
200                                                                langue_ecriture_defaut                          : xml.langue_ecriture_defaut,
201                                                                langue_ecriture_disponible                      : xml.langue_ecriture_disponible,
202                                                                langue_ecriture_disponible_long         : xml.langue_ecriture_disponible_long,
203                                                                langue_description                                      : xml.langue_description,
204                                                                langue_audio_defaut                                     : xml.langue_audio_defaut,
205                                                                langue_audio_disponible                         : xml.langue_audio_disponible,
206                                                                langue_audio_disponible_long            : xml.langue_audio_disponible_long,
207                                                                reflet_en_pause                                         : xml.reflet_en_pause,
208                                                                panneau                                                         : xml.panneau,
209                                                                contribution_son                                        : xml.contribution_son,
210                                                                contribution_fichier_son                        : xml.contribution_fichier_son,
211                                                                contribution_texte                                      : xml.contribution_texte,
212                                                                nbr_de_caracteres_max                           : xml.max_texte,
213                                                                max_son                                                         : xml.max_son,
214                                                                censure_active                                          : xml.censure_active,
215                                                                moderation_active                                       : xml.moderation_active,
216                                                                contenu                                                         : xml.contenu,
217                                                                moderation_revelation_nv                        : xml.moderation_revelation_nv,
218                                                                censure_revelation_nv                           : xml.censure_revelation_nv,
219                                                                censure_liste                                           : xml.censure_liste,
220                                                                wallpaper_url                                           : xml.wallpaper_url
221
222                                                }
223                                        }
224                                conf.map(xmlconfig)
225                                charger_application_eden()
226                        }
227                }
228
229                //private function charger_contributions_textes () : void
230                //{
231                //
232                //var url_contribs: String;
233                //
234                //if (production) url_contribs = "xml/contributions_textes.xml"
235                //else
236                //{
237                //trace("chargement des contributions ")
238                //switch(source_des_contributions)
239                //{
240                //case "domaine":
241                //trace("--> par domaine")
242                //if (flashVars.getValue("domaine") != null) url_contribs = "http://global.reflet-web.net/spip.php?action=reflet_charger_contribs&domaine="+flashVars.getValue("domaine")
243                //else url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine="+DOMAINE[1]
244                //break;
245                //
246                //case "groupe":
247                //trace("--> par groupe")
248                //if (groupe !="") // si la balise groupe est présente.
249                //{
250                //var liste_des_groupes : String=new String("")
251                //groupe.split(",").forEach (function navigate(element:*, index:int, arr:Array):void {liste_des_groupes += "&id_groupe[]"+element       });
252                //}
253                //else url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine=" + DOMAINE[1]
254                //break;
255                //
256                //case "global":
257                //trace("--> global")
258                //url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine=global"
259                //break;
260                //
261                //default:
262                //trace("erreur")
263                //break;
264                //}
265                //}
266                //
267                //
268                //
269                //var chargeur_xml2:XMLLoader=new XMLLoader(new URLRequest(url_contribs))
270                //chargeur_xml2.addEventListener(Event.COMPLETE, charger_application_eden ) //charger_contributions_sonores
271                //
272                //}
273                //
274                //private function charger_contributions_sonores () : void
275                //{
276                //
277                //var url_contribs: String;
278                //
279                //if (production) url_contribs = "xml/contributions_textes.xml"
280                //else
281                //{
282                //switch(source_des_contributions)
283                //{
284                //case "domaine":
285                //if (flashVars.getValue("domaine") != null) url_contribs = "http://global.reflet-web.net/spip.php?action=reflet_charger_contribs&domaine="+flashVars.getValue("domaine")
286                //else url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine="+DOMAINE[1]
287                //break;
288                //
289                //case "groupe":
290                //if (groupe !="") // si la balise groupe est présente.
291                //{
292                //var liste_des_groupes : String=new String("")
293                //groupe.split(",").forEach (function navigate(element:*, index:int, arr:Array):void {liste_des_groupes += "&id_groupe[]"+element       });
294                //}
295                //else url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine=" + DOMAINE[1]
296                //break;
297                //
298                //case "global":
299                //url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine=global"
300                //break;
301                //
302                //default:
303                //trace("erreur")
304                //break;
305                //}
306                //}
307                //
308                //
309                //
310                //var chargeur_xml2:XMLLoader=new XMLLoader(new URLRequest(url_contribs))
311                //chargeur_xml2.addEventListener(Event.COMPLETE, charger_application_eden)
312                //
313                //}
314
315
316                /**
317                 * Cette méthode est invoquée à la suite de la method "map_config". Elle charge le fichier "application.eden" avec la classe ECMAPbjectLoader.
318                 */
319                private function charger_application_eden():void
320                {
321
322                        if (flashVars.getValue("url_libs") == null) (preloader.error(" ... no url_libs found."))
323
324                        //Localization.getInstance().get(langue_label_defaut).get("footer.invitation_label")
325                        var chargeur_application:ECMAObjectLoader = new ECMAObjectLoader( "application.eden" , "http://"+DOMAINE[1]+".reflets.org/lib/reflet_libs/context/") ;
326                        chargeur_application.addEventListener( ActionEvent.START  , preload_start  ) ;
327                        chargeur_application.resourceInfo.addEventListener( ProgressEvent.PROGRESS , preload_progress_eden ) ;
328                        chargeur_application.addEventListener( ActionEvent.FINISH , preload_finish ) ;
329                        chargeur_application.addEventListener( IOErrorEvent.IO_ERROR , preload_error ) ;
330
331                        chargeur_application.root = this ;
332                        chargeur_application.run();
333                }
334
335                private function preload_start(e:Event):void
336                {
337                        preloader.start()
338
339                }
340
341                private function preload_progress(e:ProgressEvent):void
342                {
343                        preloader.progress("Loading ...")
344                }
345
346                private function preload_progress_eden(e:ProgressEvent):void
347                {
348                        var info:ObjectResourceInfo = e.target as ObjectResourceInfo ;
349                        if ( info != null )
350                        {
351                                switch (info.resource.type)
352                                {
353                                        case "config":
354                                                preloader.progress("Loading configuration ...")
355                                                break;
356
357                                        case "i18n":
358                                                preloader.progress("Loading languages ...")
359
360                                                break;
361
362                                        case "context":
363                                                preloader.progress("Loading scripts ...")
364                                                break;
365
366                                        case "assembly":
367                                                preloader.progress("Loading graphics ...")
368                                                break;
369
370                                        case "font":
371                                                preloader.progress("Loading fonts ...")
372                                                break;
373
374                                        case "style":
375                                                preloader.progress("Loading styles ...")
376                                                break;
377
378                                        default:
379                                                preloader.progress("Loading ....")
380                                }
381                        }
382                }
383
384                private function preload_error(e:IOErrorEvent):void
385                {
386                        preloader.error("Loading failed. Try reload or alert an administrator.")
387                }
388
389                private function preload_finish(e:ActionEvent):void
390                {
391                        logger.info( this + " " + e) ;
392                        preloader.finish("Load finish",delay)
393                        timer.start();
394                        localization.current = langue_label_defaut
395                }
396
397                public function delay_expired(event:TimerEvent):void
398                {
399                        removeChild(preloader) ;
400                        //preloader = undefined ;
401                        //timer.removeEventListener(TimerEvent.TIMER_COMPLETE,delay_expired)
402                        //this.dispatchEvent(new Event("loaded"))
403                }
404
405                // var progressColor    :       Number  = ( flashVars.getValue("progressColor", new EdenEvaluator()) || 0x666666 ) as Number  ;
406
407                /**
408                 * Invoquée lorsqu'un évenement LocalisationEvent arrive !
409                 */
410                public function changeLocalization( e:LocalizationEvent ):void
411                {
412                        //trace ("current lang="+e.current);
413                        //trace("getLocal = " + e.getLocale().footer.invitation_label );
414                        //trace()
415                }
416
417                private function affichage_en_pause(langue:String):void
418                {
419                        trace("pause"+langue)
420                        var conteneur_logo:Sprite = new Sprite()
421                        var loader : Loader  = new Loader();
422                        loader.load(new URLRequest("images/logo.png"));
423                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function completeLoad(e:Event):void{trace("pof")});
424
425                        this.addChild(conteneur_logo)
426                        conteneur_logo.addChild(loader);
427                        DisplayObjects.align( conteneur_logo , new Rectangle( 30 , 0 , this.stage.stageWidth , this.stage.stageHeight ) , Align.LEFT );
428
429                        conteneur_logo.addEventListener(MouseEvent.ROLL_OVER, function(e:Event):void
430                        {
431                                var tf:TextFormat = new TextFormat();
432                                tf.size = 10;
433                                tf.color = 0x000000;
434
435                                var tt:ToolTip = new ToolTip();
436                                tt.hook = true;
437                                tt.cornerRadius = 10;
438                                tt.tipWidth = 80;
439                                //tt.tipHeight = 200;
440                                tt.titleEmbed = false;
441                                tt.align = "center";
442                                tt.titleFormat = tf;
443                                tt.contentFormat=tf
444                                tt.show( conteneur_logo, "Administrator of this Reflet local:"+DOMAINE[1]+ "put this Reflet on stand-by.");
445                        })
446                        removeChild(preloader)
447                }
448
449                ////// LINKAGE ENFORCER
450
451                // display
452                Display;
453                Wallpaper;
454                Footer;
455                MyPopUpTexte;
456                MyPopUpSon;
457                Rendu;
458
459                // DisplayObject
460                DisplayObjects;
461
462                // pegas.draw
463                FillStyle ;
464
465                // lunas.display.button
466                FrameLabelButton ;
467
468                CoreBitmap;
469                CoreSound;
470                //////// Authorized classpath and class in the eden deserialization
471                eden.addAuthorized
472                        (
473                                "flash.filters.*" ,
474                                "pegas.draw.*",
475                                "flash.display.*",
476                                "asgard.text.*",
477                                "asgard.display.*"
478                        ) ;
479        }
480}
Note: See TracBrowser for help on using the repository browser.