我有一个基于Flex 3的零件应用程序,我的零件清单有问题。零件清单使用两个对象:
我将部件列表本地缓存在SharedObject中。 这已经好几个月了。我向Part类添加了一个新的Boolean属性并重新导入了Web服务(它不应该影响任何东西)现在,我可以保存ArrayOfPart SharedObject,但是当我尝试检索SharedObject时,我得到了“ArgumentError:错误#1063:ArrayOfPart上的参数计数不匹配。预期为1,得到0.然后它完全删除我的SOL文件。
(我在Part和ArrayOfPart上使用了RegisterClass,因此它们都可以序列化为SharedObjects)
以下是我为获取错误而采取的步骤:
保存共享对象:
so = SharedObject.getLocal("PartsList");
so.data.AllParts = AllParts;
so.flush();
验证SharedObject:
重新启动应用程序,它从SharedObject中检索部件列表。这是抛出错误#1063并导致sol文件被删除的行:
so = SharedObject.getLocal("PartsList");
当它保存在SharedObject中时,数据看起来可能不是很好吗?这可能吗?
答案 0 :(得分:1)
我解决了自己的问题。
ArrayOfPart有一个带参数的构造函数。当我删除构造函数时,错误就消失了。
顺便说一下,这是Flash 9。
答案 1 :(得分:0)
这看起来很艰难。
我认为这不是形成或序列化问题。您的代码中可能还有其他内容正在写入共享对象吗?
您有什么方法可以分享您的来源吗?这将有所帮助,因为我个人没有足够的信息来诊断发生了什么而没有看到其余的代码:(
另外......
是否还有其他任何内容正在写入或更改此共享对象?
我的所有对象是在AS3中创建的还是MXML中的一些(我注意到Flex编译器并不总能很好地搞清楚MXML)。
我有哪个版本的Flash?
如果它的Flash 10在Flash 9中出现同样的问题吗?
这是否会在所有浏览器和所有平台上发生?
答案 2 :(得分:0)
只是预感,但是,自从我安装了Flash Player 10后,我在浏览时看到了很多共享对象的错误。它可能与新引入的沙箱/安全限制有关吗?