79 lines
2.8 KiB
ActionScript
79 lines
2.8 KiB
ActionScript
import flash.events.*;
|
|
import flash.net.*;
|
|
import flash.system.*;
|
|
import flash.utils.*;
|
|
|
|
private var qaLoader:URLLoader = null;
|
|
private var qaPerfString:String = "PERF_";
|
|
private var oldIrrelevantNumber:Number = 0;
|
|
private var newIrrelevantNumber:Number = 0;
|
|
|
|
// If/when we test on mobile, these will need to be set dynamically.
|
|
// Maybe we can generate this file on the fly right before compiling,
|
|
// filled in with the needed values, like we did for Flex.
|
|
private var server:String = "localhost";
|
|
private var port:String = "31671";
|
|
|
|
|
|
public function sayHello():void{
|
|
trace("hello");
|
|
}
|
|
|
|
/**
|
|
* Sends info. to the server. Pass in an array of objects. Each object
|
|
* needs to have a field called "key" and a field called "value".
|
|
**/
|
|
public function qaSendInfo( key:String, value:String, done:Boolean ):void{
|
|
|
|
// Only on Windows, we have to add something irrelevant, but different, to the URL or else the
|
|
// player won't send it.
|
|
// Sometimes the number is the same (e.g. after uploading the last result, getting a complete
|
|
// event, then sending another request telling the server everything is done) so loop until it's
|
|
// different.
|
|
do{
|
|
newIrrelevantNumber = new Date().getTime();
|
|
}while( newIrrelevantNumber == oldIrrelevantNumber );
|
|
|
|
var req:URLRequest = new URLRequest( "http://" + server + ":" + port + "?irrelevantNumber=" + newIrrelevantNumber.toString() );
|
|
var headers:Array = new Array();
|
|
var i:int;
|
|
|
|
if( qaLoader == null ){
|
|
qaLoader = new URLLoader();
|
|
qaLoader.addEventListener( flash.events.IOErrorEvent.IO_ERROR, QAHandleError );
|
|
qaLoader.addEventListener( flash.events.SecurityErrorEvent.SECURITY_ERROR, QAHandleError );
|
|
qaLoader.addEventListener( flash.events.Event.COMPLETE, qaHandleComplete );
|
|
}
|
|
|
|
// When the final data has been successfully sent, we'll send a final "complete" event to the server.
|
|
if( done ){
|
|
qaLoader.addEventListener( flash.events.Event.COMPLETE, qaHandleCompleteDone );
|
|
}
|
|
|
|
// Create the array of URLRequestHeaders to send.
|
|
var key:String = escape( key );
|
|
var value:String = value;
|
|
headers.push( new URLRequestHeader( key, value ) );
|
|
|
|
req.requestHeaders = headers;
|
|
req.method = "POST";
|
|
req.data="";
|
|
trace( "request url: " + req.url + ", key: " + key + ", value: " + value );
|
|
qaLoader.load( req );
|
|
oldIrrelevantNumber = newIrrelevantNumber;
|
|
}
|
|
|
|
private function QAHandleError( e:Event ):void{
|
|
trace("QAHandleError");
|
|
}
|
|
|
|
private function qaHandleComplete( e:Event ):void{
|
|
trace("QAHandleComplete");
|
|
}
|
|
|
|
// When the final data has been successfully sent, we'll send a final "complete" event to the server.
|
|
private function qaHandleCompleteDone( e:Event ):void{
|
|
qaSendInfo( [ {key:qaPerfString + "TestingComplete", value:1}], true );
|
|
qaLoader.removeEventListener( flash.events.Event.COMPLETE, qaHandleCompleteDone );
|
|
}
|