00001 import flash.external.ExternalInterface;
00002
00003 import gugga.utils.DebugUtils;
00004
00008 class gugga.utils.BrowserCommunicationUtility
00009 {
00010 public static function openUrl(aUrl : String, aTarget : String) : Void
00011 {
00012 if(aUrl.indexOf("javascript:") == 0)
00013 {
00014 var functionCallExpression : String = aUrl.substring(11);
00015 makeWeakJSFunctionCallByExpression(functionCallExpression);
00016 }
00017 else
00018 {
00019 getURL(aUrl, aTarget);
00020 }
00021 }
00022
00023 public static function makeWeakJSFunctionCall(aFunctionName : String, aArguments : Array) : Void
00024 {
00025 var functionCallExpression : String = aFunctionName + "(";
00026 for (var i : Number = 0; i < aArguments.length; i++)
00027 {
00028 var arg : Object = aArguments[i];
00029 if(arg instanceof Number)
00030 {
00031 functionCallExpression += arg.toString();
00032 }
00033 else
00034 {
00035 functionCallExpression += ("'" + arg.toString() + "'");
00036 }
00037
00038 if(i < aArguments.length - 1)
00039 {
00040 functionCallExpression += ",";
00041 }
00042 }
00043 functionCallExpression += ");";
00044
00045 makeWeakJSFunctionCallByExpression(functionCallExpression);
00046 }
00047
00048 public static function makeWeakJSFunctionCallByExpression(aFunctionCallExpression : String) : Void
00049 {
00050 if(ExternalInterface.available)
00051 {
00052 ExternalInterface.call("window.setTimeout", aFunctionCallExpression, 10);
00053 }
00054 else
00055 {
00056 getURL("javascript:" + aFunctionCallExpression);
00057 }
00058 }
00059 }