Hi all,
I’m working on a project where I have 3 options of SWF to be loaded according to the URL parameter.
// this code is for the parameters
package
{
import flash.external.*;
public class QueryString
{
private var _queryString:String;
private var _all:String;
private var _params:Object;
public function QueryString(url:String='')
{
readQueryString(url);
}
public function get getQueryString():String
{
return _queryString;
}
public function get url():String
{
return _all;
}
public function get parameters():Object
{
return _params;
}
private function readQueryString(url:String=''):void
{
_params = new Object();
try
{
_all = (url.length > 0) ? url : ExternalInterface.call("window.location.href.toString");
_queryString = (url.length > 0) ? url.split("?")[1] : ExternalInterface.call("window.location.search.substring", 1);
if(_queryString)
{
var allParams:Array = _queryString.split('&');
//var length:uint = params.length;
for(var i:int=0, index=-1; i < allParams.length; i++)
{
var keyValuePair:String = allParams*;
if((index = keyValuePair.indexOf("=")) > 0)
{
var paramKey:String = keyValuePair.substring(0,index);
var paramValue:String = keyValuePair.substring(index+1);
_params[paramKey] = paramValue;
}
}
}
}
catch(e:Error)
{
trace("sem parametros para ler!");
}
}
}
}
// i’m using this code to open the external SWF
import flash.display.Loader;
import flash.net.URLRequest;
import flash.external.ExternalInterface;
var urlNavegador = ExternalInterface.call ( "window.location.search.toString")
var meuCaminho:QueryString = new QueryString(urlNavegador);
var loadPlayer = new Loader;
addChild (loadPlayer);
if (meuCaminho.parameters.intro == "sm") {
loadPlayer.load ( new URLRequest ("introSM.swf"));
}
if (meuCaminho.parameters.intro == "colecao") {
loadPlayer.load ( new URLRequest ("introSerProtagonista.swf"));
}
if (meuCaminho.parameters.intro == "anima") {
loadPlayer.load ( new URLRequest ("main.swf"));
}
this works great o Firefox but when I test it on Safari it doesn’t work any ideias?