2

AS3 Javascript Call Sequencer + Omniture + Google Analytics


Here's a little utility that I did for multiple Omniture calls to a javascript in the html page. It will also accept another call, such as an iFrame refresh. It delays each call a tiny bit to make sure that events are fired off. Also has a runtime environment detection so your browser window doesnt keep popping up during publishing. Source file below as well.

Usage:

_oSendJavascript = SendJavascript.getInstance();
// Genric Javascript
function clickHandler(event:MouseEvent):void {
	_oSendJavascript.addEvent(
		"AutoReloadIFrame();"
	);
}
 
//or…
 
// Omniture call
function clickHandler(event:MouseEvent):void {
	_oSendJavascript.addEvent(
		"var x = new Object(); x.pageName = 'Primary Section - Secondary Section';trackPageView(x);"
	);
}
 
//or…
 
// Google Analytics call
function clickHandler(event:MouseEvent):void {
	_oSendJavascript.addEvent(
		"_uacct = 'YOURGOOGLEACCOUNTNUMBER-000000-1'; urchinTracker();"
	);
}
 
// And of course you can stack calls
_oSendJavascript.addEvent("AutoReloadIFrame();");
_oSendJavascript.addEvent("function1();");
_oSendJavascript.addEvent("function2();");

The class:

package com.hydrotik.utils {
 
	/**
	 * @author Donovan Adams
	 * @version September 28, 2007
	 *
	 * @description SendJavascript Tracking Utility. Queues up SendJavascript events that fire off incrementally.
	 *
	 * @usage Example:
	 	<code>
			// This should only be called once! THe SendJavascript class is a Singleton pattern
			_oSendJavascript = SendJavascript.getInstance();
 
			// Called whenever an even needs to be triggered.
			function clickHandler(event:MouseEvent):void{
				_oSendJavascript.addEvent("AutoReloadIFrame();");
			}
		</code>
	 */
 
    import flash.events.Event;
    import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	import flash.system.Capabilities;
 
    public class SendJavascript {
 
		private static const DELAY:Number = .1; // Time in seconds
 
		private static var _oSendJavascript : SendJavascript;
 
		private static var _queueArray:Array;
 
		private static var _queueTimer:Timer;
 
		private static var _count:int;
 
		public static function getInstance() : SendJavascript{
			if (_oSendJavascript == null) _oSendJavascript = new SendJavascript();
			return _oSendJavascript;
		}
 
		public function SendJavascript():void {
			trace('\n\n\n\n======== SendJavascript Initializing '+(new Date()).toString()+'=========\n\n');
			_queueArray = [];
			_count = 0;
			_queueTimer = new Timer(DELAY*1000, 0);
			_queueTimer.addEventListener(TimerEvent.TIMER, sendEvent);
			_queueTimer.addEventListener(TimerEvent.TIMER_COMPLETE, queueComplete);
		}
 
		public function addEvent(p:String):void{
			trace("\t>> SendJavascript :: addEvent() - _count: "+_count);
			_queueArray.push("javascript: " + p);
			_queueTimer.repeatCount++;
			if(!_queueTimer.running) sendQueue();
			trace(_count);
			_count++;
		}
 
		private function sendQueue():void{
			trace("\t>> SendJavascript :: sendQueue()");
			_queueTimer.reset();
			_queueTimer.start();
		}
 
		private function sendEvent(event:TimerEvent):void{
			trace("\t>> SendJavascript :: sendEvent() - currentCount: "+_queueTimer.currentCount, _queueTimer.repeatCount);
			/* you can add any other variables you want to track above x.sprop2, x.channel, etc; */
 
			var playerType:String = Capabilities.playerType;
			if (playerType == "External" || playerType == "StandAlone") {
				trace("\t\tnavigateToURL("+_queueArray[_queueTimer.currentCount - 1]+"),'_self');");
			} else {
				navigateToURL(new URLRequest(_queueArray[_queueTimer.currentCount - 1]),'_self');
			}
 
		}
 
		private function queueComplete(event:TimerEvent):void {
			trace("\t>> SendJavascript - queueComplete() - type: "+event.type);
			flush();
           _queueTimer.reset();
 
        }
 
		private function flush():void{
			trace("\t>> SendJavascript :: flush()");
			_queueArray = [];
			_count = _queueTimer.repeatCount = 0;
		}
 
 
	}
 
}

Javascript Call Utility Source

  • Viagra ordre
  • Cialis en ligne
  • Levitra en ligne
  • Propecia acheter
  • Viagra acheter
  • Acheter cialis
  • Ordre levitra
  • Ordre propecia
  • En ligne viagra
  • Vente cialis
  • Levitra bon marche
  • Propecia en ligne
  • Viagra online
  • Buy cialis
  • Order Levitra
  • Buy propecia
  • Buy viagra
  • Cheap cialis
  • Cheap Levitra
  • propecia online
  • Viagra prescription
  • Cialis online
  • Buy Levitra
  • Order propecia