as3: Wie kopieren Sie ein Objekt von Wert

Brauche ich, um eine Instanz von einem gemeinsamen Objekt jedes andere Objekt, das ich habe. Ich mache änderungen, die auf den Werten dieses Objekt in jeder sub-Objekt, das ich habe.

Zum Beispiel. Ich habe eine Karte von Fliesen, und eine bot, die sich über Ihnen in der spezifischen Reihenfolge. Jeder bot ist die Kennzeichnung Fliesen, die war schon von ihm besucht=true. Aber im Allgemeinen möchte ich nicht Hauptkarte geändert werden...

Ich habe versucht, ein Beispiel:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
    applicationComplete="complete()">
    <mx:Script>
        <![CDATA[
            private var array:Array = new Array( 1, 2, 3, 4);
            public function complete():void
            {
                trace("here " + array);
                var a:Array = array;
                a[0] = 100;
                trace("here " + array);
            }
        ]]>
    </mx:Script>
</mx:Application>

Kann mir jemand helfen zu verstehen, wie kopiere ich z.B. das array per value, nicht per reference)

  • Funktioniert der bot Notwendigkeit zu ändern, etwas anderes als das Boolean Feld zum abhaken, dass es seinen Abschluss besuchen?
  • Nicht nur das boolean Feld in der Kachel... Das Problem ist, dass ich das Klonen der Karte von static-variable definiert, in Consts Datei... Und nichts hilft mir, es zu tun Wert... E. g. meine clone-Methode nicht helfen... ich sehe jeden bot poluting der main var
  • Würde es ausreichen, wenn Sie ein multi-dimensionales array von booleans, dass Sie existiert unabhängig von den Fliesen? Es scheint nur, wie viele unnötige Redundanz, multiplizieren Sie die Anzahl der Kacheln durch die Anzahl der bots.
  • Nicht sicher, wie es sein kann, unabhängig auf Fliesen? Ich meine, ich bin mit isVisited Attribut zu vermeiden, bot die Navigation zu gleichen Kachel 2 mal... Nicht sicher, wie ich vermeiden kann das kopieren...
Schreibe einen Kommentar