0

我有一个用来存储对象集合的数组。我的应用程序允许用户向数组中添加新对象并编辑对象的内容。数组中的所有对象都是相同的类型,我遇到的问题是,如果我添加一个新对象或编辑一个现有对象,那么数组中包含的所有对象都将成为新添加对象的精确副本。有没有办法阻止这种情况?

在我的应用程序中,我有一个存储 ArrayCollection 的对象:

public class MyArray
{
    public var array:ArrayCollection = new ArrayCollection;
}

我有一个对象,我希望在这个数组中存储它的实例:

public class MyObject
{
    public var things:String;
}

我的主 mxml 文件在一个数据网格中显示 MyArray 中的所有项目,该数据网格保存在一个 actionscript 文件中:

<App xmlns:par="http://spicefactory.org/parsley">
    <fx:Declarations>
        <par:ContextBuilder config="MainContext"/>
        <par:Configure/>
        <par:FastInject property="mainpm" type="{MainPM}"/>
    </fx:Declarations>
    <fx:Script>
         [Inject][Bindable]
         public var mainpm:MainPM;
    <fx:Script>

然后是动作脚本文件:

public class MainPM
{
    [inject][Bindable]
    public var thearray:MyArray;

    public function addNew(thingtoadd:MyObject):void
    {
        thearray.addItem(thingtoadd);
    }
}

我试图包含相关代码,因为应用程序非常大,但如果需要更多信息,我可以提供。

4

1 回答 1

0

好的,解决这个问题的方法是创建一个 MyObject 的新实例并将其添加到 MyArray 中。

public function addNew(thingtoadd:MyObject):void
{
    var addobj:MyObject = new MyObject;
    addobj.things = thingtoadd.tings;
    thearray.addItem(addobj);
}
于 2014-02-27T11:30:46.757 回答