2011-08-31 16 views
6

La pregunta simple es, ¿cómo puedo detectar en ActionScript si el usuario ha bloqueado la escritura de datos en el objeto compartido?Flex: Cómo detectar si el usuario ha bloqueado el objeto compartido de la escritura

sharedObj = SharedObject.getLocal("rememberme"); 

Este objeto de devolución siempre compartido pero su tamaño es 0, incluso he bloqueado el objeto compartido.

Cuando intento guardar datos en un objeto compartido y eliminarlos, me arroja un error porque la escritura está bloqueada. Entonces, ¿cuál sería la forma correcta de verificar si la escritura en el objeto compartido está desactivada?

Error: Error #2130: Unable to flush SharedObject. 

Respuesta

10
var my_so:SharedObject = SharedObject.getLocal("mySpace"); 
var flushStatus:String = null; 
try { 
    flushStatus = my_so.flush(); 
} catch (error:Error) { 
    trace("Error...Could not write SharedObject to disk\n"); 
} 
if (flushStatus != null) { 
    switch (flushStatus) { 
     case SharedObjectFlushStatus.PENDING : 
      trace("Requesting permission to save object...\n"); 
      my_so.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus); 
      break; 
     case SharedObjectFlushStatus.FLUSHED : 
      trace("Value flushed to disk.\n"); 
      break; 
    } 
} 
function onFlushStatus(event:NetStatusEvent):void { 
    trace("User closed permission dialog...\n"); 
    switch (event.info.code) { 
     case "SharedObject.Flush.Success" : 
      trace("User granted permission -- value saved.\n"); 
      break; 
     case "SharedObject.Flush.Failed" : 
      trace("User denied permission -- value not saved.\n"); 
      break; 
    } 
my_so.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus); 
} 

Si se bloquea objeto compartido u puede catch el informe de errores más si se va a 0 SharedObjectFlushStatus.PENDING.

SOURCE

+0

Gracias por esto! –

+0

Oye, sé que esta es una respuesta antigua, pero he estado usando esencialmente el mismo código exacto que este y noté que nunca parece llegar a la devolución de llamada onFlushStatus, ¿alguna idea? Mi código está aquí: https://github.com/nfriedly/Javascript-Flash-Cookies/blob/master/src/Storage.as#L213 –

Cuestiones relacionadas