
Untitled
By: a guest on
Aug 9th, 2011 | syntax:
None | size: 1.90 KB | hits: 351 | expires: Never
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.external.*;
public class Cram extends Sprite {
private var _so:sharedobject = null;
private var _flushEnabled:boolean = false;
public function Cram(){
super();
try {
_so = sharedobject.getlocal("cramjs");
_flushEnabled = true;
_so.addEventListener(NetStatusEvent.NET_STATUS, handleNetStatus);
} catch(e:error) {
_so = null;
};
if (((ExternalInterface.available) && (_so))){
ExternalInterface.addCallback("get", soGet);
ExternalInterface.addCallback("set", soSet);
ExternalInterface.addCallback("remove", soRemove);
};
}
private function soRemove(_arg1:string):void{
delete _so.data[_arg1];
flush();
}
private function flush():void{
if (!_flushEnabled){
return;
};
try {
if (SharedObjectFlushStatus.FLUSHED != _so.flush()){
_flushEnabled = false;
};
} catch(e:error) {
_flushEnabled = false;
};
}
private function handleNetStatus(_arg1:NetStatusEvent):void{
if (_arg1.info.level == "error"){
_flushEnabled = false;
};
}
private function soGet(_arg1:string):string{
var _local2:object = _so.data[_arg1];
if (_local2){
return (_local2.tostring());
};
return (null);
}
private function soSet(_arg1:string, _arg2:string):void{
_so.data[_arg1] = _arg2;
flush();
}
}
}//package