0 Replies Latest reply on Dec 8, 2009 1:22 PM by flairjax

    Bug in ByteArray or ???

    flairjax Level 1

      So I have some code (below) that clones an arrayCollection. It works the first time through doesn't work the next time through.  The objects that are getting cloned are a custom object called "Node". So my AC has a list of Nodes in it.  The first time the clone returns an Object of type:Object (so pass in Nodes out comes Objects).  The second time through I pass in another list of Nodes and out comes Nodes. Not what I want.

       

      Why would the code below spit out two different things?  I have debugged this and walked it through and yes I know nodes are going in each time.

       

      private function clone( source:Object ) :*
                  {
                      var myBA:ByteArray = new ByteArray();
                      myBA.writeObject( source );
                      myBA.position = 0;
                      return( myBA.readObject() );
                  }
                 
                 
                  private function buildTreeCollection( ac:ArrayCollection ) : void
                  {
                      var newAC:ArrayCollection = new ArrayCollection( clone( ac.source ) );
                      // add checked to all leaf objects
                      for each( var o:Object in newAC ){
                          o.checked = 0;
                      }
                     
                      _sortedTreeCollection = new TreeCollection( newAC );
                      // add checked to all folder objects
                      for each ( var ob:Object in _sortedTreeCollection ) {
                          ob.checked = 0;
                      }
                      trace('');
                      //myTree.dataProvider = tree;
                      if( _sortedTreeCollection.length > 0 ) {
                          typeTree.visible = true;
                          typeTree.includeInLayout = true;
                      }
                      //this.height = Math.max( 150, typeTree.measureHeightOfItems(0, _sortedTreeCollection.length) + this.height );
                     
                  }