0

我想要的是?将我的项目保存在使用 Air Application 创建的编辑器中

要保存什么?1个对象->类型ArrayCollection->包含->来自自己类的对象...

我的第一次尝试是什么?

var stream :FileStream = new FileStream();
stream.writeObject(myArrayCollection);

问题是什么?myArrayCollection 内部的对象具有以下结构:

public class MyClass1
    {
        public var title:String;
        public var description:String;
        public var kindOf:String = "...";
        public var thumbnail:String;
        public var children:ArrayCollection
...}

每个公共变量都由 FileStream 保存.... 工作正常在子数组集合中是来自此类的对象:

public class MyClass2 extends XMLDocument implements IExternalizable
    {

        public const kindOf:String = "Seite";

        [Bindable]
        public var title:String;
        public var contenBox:OwnClass; //extended spark Group

public function get childrens():ArrayCollection
        {
            var childs: ArrayCollection = new ArrayCollection();

            var i:int = 0;
            while(i > (contenBox.container as spark.components.Group).numElements)
            {
                childs.addItem((contenBox.container as spark.components.Group).getElementAt(i));
                i--;
            }

            return childs;
        }

        public function readExternal(input:IDataInput):void
        {
            trace("hello i'am reading");
        }

        public function writeExternal(output:IDataOutput):void
        {
            trace("hello i'am writing");
            output.writeObject(children);
        }

现在的问题...... fileStream 包含我的 MyClass2 对象与 var “title” 但没有孩子 ArrayCollection... 控制台不显示痕迹:-/

4

1 回答 1

1

您是否尝试过序列化您的对象?您可以将其序列化为 XML,然后在阅读时再次返回。Flexxb似乎是一个很好的库

另一种方法是使用 Bytearray 将文件写为原始二进制文件,如此处所述

希望能帮助到你!

于 2011-12-15T11:25:52.963 回答