package { import flash.net.*; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; public class LumbarLog { // The user id that must be provided after // user has successfully logged in. public static var USER_ID:String; // Can be 0 = lumbar anat // or 1 = ultrasound public static var APP:uint; // This var holds state of logging. If true, then user is logged in private static var IS_LOGGING:Boolean = false; // private static var url:URLRequest = new URLRequest('http://opennet-33-65.uhnres.utoronto.ca/~michaelcorrin/Experiments/interServer/lumbarLogTest.php'); LumbarLog.url.method = URLRequestMethod.POST; // private static var urlLoader = new URLLoader(); LumbarLog.urlLoader.addEventListener(Event.COMPLETE, onLoaderComplete); LumbarLog.urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onLoaderError); LumbarLog.urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); // CONSTRUCTOR public function LumbarLog() { // constructor code } // initialization function. Sets up user_id and app for // communication with DB. public static function initialize($userId:String, $app:uint) { if ($userId.length != 8 || ($app < 0 || $app > 1)) { throw new Error("Error: LumbarLog initialize fail. Check length of user id. App argument can only be 0 or 1"); } else { // if login is successful... LumbarLog.USER_ID = $userId; LumbarLog.APP = $app; LumbarLog.IS_LOGGING = true; // automagically add login entry to the DB addEvent('login'); } } // function addEvent communicates with DB public static function addEvent($eventName:String) { trace ('addEvent called'); var urlVar:URLVariables; if (LumbarLog.IS_LOGGING == false) { throw new Error("addEvent failed. User not successfully initialized."); } else { trace ('logged in ' + LumbarLog.urlLoader); // User is logged in. Send data to PHP script urlVar = new URLVariables(); urlVar.eventType = $eventName; urlVar.app = LumbarLog.APP; urlVar.userId = LumbarLog.USER_ID; LumbarLog.url.data = urlVar; LumbarLog.urlLoader.load(LumbarLog.url); } } private static function onLoaderComplete($e:Event) { trace ("Load complete: " + $e.target.data); //feedback_txt.text = $e.target.data; } private static function onLoaderError($e:IOErrorEvent) { trace ("Load error: " + $e.target.text); //feedback_txt.text = $e.target.data; } private static function securityErrorHandler($e:SecurityErrorEvent) { trace ("securityErrorHandler: " + $e); } } }