Pregunta

Tengo una aplicación de partes que se basa en Flex 3 y tengo un problema con la lista de partes. La lista de piezas utiliza dos objetos:

  • Parte
  • ArrayOfPart

Almaceno en caché la lista de piezas localmente en un SharedObject. Esto ha estado funcionando bien durante un par de meses . Agregué una nueva propiedad booleana a la clase de Parte y reimporté servicios web (que no deberían haber afectado nada) y ahora, puedo guardar la multa de ArrayOfPart SharedObject, pero cuando intento recuperar el SharedObject, obtengo " ArgumentError: Error # 1063: Discrepancia en el recuento de argumentos en ArrayOfPart. Esperaba 1, obtuve 0. Y luego ELIMINA mi archivo SOL completamente.

(Utilicé RegisterClass on Part y ArrayOfPart, por lo que ambos se pueden serializar en SharedObjects)

Estos son los pasos que seguí para obtener el error:

Guarda el objeto compartido:

so = SharedObject.getLocal("PartsList");
so.data.AllParts = AllParts;
so.flush();

Verifique el objeto compartido:

  • El SharedObject PartsList.sol existe donde debería
  • Abrí el archivo SharedObject y los datos de ArrayOfPart parecen válidos

Reinicie la aplicación y recupera la lista de piezas del SharedObject. Esta es la línea que lanza el Error # 1063 y hace que se elimine el archivo sol:

so = SharedObject.getLocal("PartsList");

¿Parece que los datos no están bien formados cuando se guardan en SharedObject? ¿Es esto posible?

¿Fue útil?

Solución

Resolví mi propio problema.

El ArrayOfPart tenía un constructor con un parámetro. Cuando quité el constructor, el error desapareció.

Por cierto, esto fue Flash 9.

Otros consejos

Esto parece difícil.

No creo que sea un problema de formación o serialización. ¿Tal vez algo más en su código esté escribiendo en el objeto compartido?

¿Hay alguna forma de compartir tu fuente? Esto ayudaría, ya que personalmente no tengo suficiente información para diagnosticar lo que está pasando sin ver el resto del código :(

También ....

¿Hay algo más que esté escribiendo o cambiando este objeto compartido?

¿Se crearon todos mis objetos en AS3 o algunos en MXML? (Me he dado cuenta de que el compilador Flex no siempre hace un buen trabajo para descifrar MXML).

¿Qué versión de Flash tengo?

¿Si su Flash 10 tiene el mismo problema en Flash 9?

¿Ocurre esto en todos los navegadores y en todas las plataformas?

Solo una corazonada, pero desde que instalé Flash Player 10, estoy viendo muchos errores con los Objetos Compartidos al navegar. ¿Podría estar relacionado con las nuevas restricciones de seguridad / recinto de seguridad?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top