Archive pour la catégorie ‘CasaFrameWork’

[GroupLoad] CasaFramework AS3

Lundi 11 août 2008

CasaFramework AS3 -> http://svn.as3.casaframework.org/dev/code/

/*
        casaframework GroupLoad class allows multiple loads (swf/xml/img)
        to be grouped and treated as one larger load.
*/

package fr.manmaru
{
       
        import flash.display.MovieClip;
        import flash.display.Sprite;
       
        import flash.system.ApplicationDomain;
       
        import flash.events.Event;
        import flash.events.SecurityErrorEvent;
        import flash.events.IOErrorEvent;
        import flash.events.HTTPStatusEvent;
       
        import flash.utils.getTimer;
       
        import org.casaframework.events.LoadEvent;
       
        import org.casaframework.load.DataLoad;
        import org.casaframework.load.GraphicLoad;
        import org.casaframework.load.GroupLoad;
       
        import org.casaframework.util.LocationUtil;
       
        public class Main extends MovieClip
        {
               
                protected var groupLoad:GroupLoad;
                protected var groupLoadFileASWF:GraphicLoad;
                protected var groupLoadFileBSWF:GraphicLoad;
                protected var groupLoadFileCSWF:GraphicLoad;
                protected var groupLoadFileSoundSWF:GraphicLoad;
                protected var groupLoadFileAXML:DataLoad;
                protected var groupLoadFileBXML:DataLoad;
               
                public static var _fileA:MovieClip   = new MovieClip();
                public static var _fileB:MovieClip   = new MovieClip();
                public static var _fileC:MovieClip   = new MovieClip();
                public static var _fileSound:Sprite = new Sprite();
               
                public static var domainFileA:ApplicationDomain;
                public static var domainFileB:ApplicationDomain;
                public static var domainFileC:ApplicationDomain;
                public static var domainSound:ApplicationDomain;
               
                public static var onlineLocation:Boolean = new Boolean();

                public function Main():void
                {       
                        stageLoadElements();
                }
               
                protected function stageLoadElements():void
                {
                       
                        groupLoadFileASWF       = new GraphicLoad(’swf/fileA.swf’);
                        groupLoadFileBSWF       = new GraphicLoad(’swf/fileB.swf’);
                        groupLoadFileCSWF       = new GraphicLoad(’swf/fileC.swf’);
                        groupLoadFileSoundSWF = new GraphicLoad(’swf/fileSound.swf’);
                               
                        onlineLocation = LocationUtil.isWeb(root);
                        if(onlineLocation)
                        {
                                groupLoadFileAXML  = new DataLoad(‘xml/fileA.xml?query=’+getTimer());
                                groupLoadFileBXML  = new DataLoad(‘xml/fileB.xml?query=’+getTimer());
                        }
                        else
                        {
                                groupLoadFileAXML  = new DataLoad(‘xml/fileA.xml’);
                                groupLoadFileBXML  = new DataLoad(‘xml/fileB.xml’);
                        }
                       
                        groupLoad = new GroupLoad();
                        groupLoad.addLoad(groupLoadFileASWF);
                        groupLoad.addLoad(groupLoadFileBSWF);
                        groupLoad.addLoad(groupLoadFileCSWF);
                        groupLoad.addLoad(groupLoadFileSoundSWF);
                        groupLoad.addLoad(groupLoadFileAXML);
                        groupLoad.addLoad(groupLoadFileBXML);

                        groupLoad.addEventListener(HTTPStatusEvent.HTTP_STATUS, onGroupLoadHttpStatus);
                        groupLoad.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onGroupLoadSecurityError);       
                        groupLoad.addEventListener(IOErrorEvent.IO_ERROR, onGroupLoadIoError);
                        groupLoad.addEventListener(LoadEvent.PROGRESS, onGroupLoadProgress);
                        groupLoad.addEventListener(LoadEvent.COMPLETE, onGroupLoadComplete);
                        groupLoad.start();
                       
                }
               
                protected function onGroupLoadHttpStatus(event:Event):void{
                        trace(‘httpStatusHandler ->’+ event)
                }
                protected function onGroupLoadSecurityError(event:Event):void{
                        trace(’securityErrorHandler ->’+ event)
                }
                protected function onGroupLoadIoError(event:Event):void{
                        trace(‘ioErrorHandler ->’+ event)
                }
                protected function onGroupLoadProgress(event:LoadEvent):void {
                        trace(‘% ->’+ Math.round(event.progress.percentage))
                }
                protected function onGroupLoadComplete(event:LoadEvent):void
                {
                       
                        domainFileA   = groupLoadFileASWF.loader.contentLoaderInfo.applicationDomain;
                        domainFileB   = groupLoadFileBSWF.loader.contentLoaderInfo.applicationDomain;
                        domainFileC   = groupLoadFileCSWF.loader.contentLoaderInfo.applicationDomain;
                        domainSound = groupLoadFileSoundSWF.loader.contentLoaderInfo.applicationDomain;
                       
                        _fileA     = MovieClip(groupLoadFileASWF.content);
                        _fileB     = MovieClip(groupLoadFileBSWF.content);
                        _fileC     = MovieClip(groupLoadFileCSWF.content);
                        _fileSound = Sprite(groupLoadFileSoundSWF.content);
                       
                        addChild(_fileA);
                        addChild(_fileB);
                        addChild(_fileC);
                        addChild(_fileSound);
                       
                        // use -> groupLoadFileAXML.data in order to get fileA.xml content
                        // use -> groupLoadFileBXML.data in order to get fileB.xml content

groupLoad.removeEventListener(HTTPStatusEvent.HTTP_STATUS, onGroupLoadHttpStatus);
                        groupLoad.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onGroupLoadSecurityError);     
                        groupLoad.removeEventListener(IOErrorEvent.IO_ERROR, onGroupLoadIoError);
                        groupLoad.removeEventListener(LoadEvent.PROGRESS, onGroupLoadProgress);
                        groupLoad.removeEventListener(LoadEvent.COMPLETE, onGroupLoadComplete);
                       
                }
        }
}

/*
  Note applicationDomain
*/

var SoundFileClass:Class = domainSound.getDefinition(“YOUDIDIT”) as Class;
var soundFileObject:Sound = new SoundFileClass();