[GroupLoad] CasaFramework AS3
Lundi 11 août 2008CasaFramework 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();

