Friday, October 14, 2011

Developing AR Using Flex - Passing parameters to a loaded SWF application

Flex


var loader:SWFLoader = new SWFLoader();
loader.addEventListener(Event.COMPLETE, function(event:Event):void {
    var content:DisplayObject = loader.content;
    uicomponent.addChild(content);
});
loader.load("SWFLoaderApp.swf"); //load external swf



To pass parameter


loader.load("SWFLoaderApp.swf?test=hi");


Code in external swf


if (application.loaderInfo != null) {
    var url:String = application.loaderInfo.url;
    var qm:int = url.lastIndexOf("?");
    if (qm != -1) {
        var query:String = url.substr(qm + 1);
        var params:Array = query.split("&");
        for (var i:int = 0; i < params.length; i++) {
            var param:String = params[i];
            var nameValue:Array = param.split("=");
            if (nameValue.length == 2) {
                var key:String = nameValue[0];
                var val:String = nameValue[1];
                trace(key + "=" + val);
            }
        }
    }
}



ref: 
http://flexdevtips.blogspot.com/2009/02/passing-parameters-to-loaded-swf.html
http://rahulmainkar.blogspot.com/2007/11/swfloader-and-nested-application.html