March 6, 2010

How to access query string arguments with AS3

Category: ActionScript, khadlock at 11:49 am

Found a great blog post with an ActionScript 2 class that parses the current URL and creates accessible properties out of query string arguments: http://blog.circlecube.com/2008/03/20/get-current-url-and-query-string-parameters-to-flash-tutorial/

I needed something to parse any URL, so I made a few adjustments and converted the class to AS3. Here's the updated code:

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[i];
						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("Some error occured. ExternalInterface doesn't work in Standalone player.");
			}
		}
	}
}

Here's an example of how to use the updated version:

 
var myPath:QueryString = new QueryString("http://www.studiosedition.com/?page=articles");
trace(myPath.parameters.page);
 

It's as simple as passing a URL with a query string and then just use the parameters object to access the specific query argument, in this case we're accessing the page argument, which will give us a value of "articles".

Bookmark and Share

 

October 26, 2009

MDM Zinc v2.5 Intrinsic Classes

Category: ActionScript, Tags: , , khadlock at 2:42 pm

I always misplace the URL to the Intrinsic classes for MDM Zinc, which are required by Flash when publishing AS2 classes that use the MDM library. So, I'm posting them here for myself and any

http://www.multidmedia.com/support/exchange/?action=detail&id=116

Bookmark and Share