0

オブジェクトのコレクションを格納するために使用している配列があります。私のアプリケーションでは、ユーザーは新しいオブジェクトを配列に追加し、オブジェクトの内容を編集できます。配列内のすべてのオブジェクトは同じタイプであり、私が抱えている問題は、新しいオブジェクトを追加するか既存のオブジェクトを編集すると、配列に含まれるすべてのオブジェクトが新しく追加されたオブジェクトの正確なコピーになることです。これを止める方法はありますか?

私のアプリケーションには、ArrayCollection を格納するオブジェクトがあります。

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

この配列にインスタンスを格納したいオブジェクトがあります:

public class MyObject
{
    public var things:String;
}

My Main mxml ファイルは、actionscript ファイルに保持されているデータグリッド内の MyArray 内のすべてのアイテムを表示します。

<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 に答える