Hi Spiros,

Could you use for-each on an ArrayList in Flex?  I didn't think it would work.  
I thought it only worked on ArrayCollection in Flex.

What is the output JavaScript for your sample code when you use 
ArrayCollection?  In Royale if you interate on XML, or a Proxy like 
ArrayCollection you have to make sure the compiler knows it is XML or a Proxy 
subclass.  If it thinks items is an Object it will not generate the right code.

HTH,
-Alex

On 4/10/19, 6:01 AM, "spiros" <agg...@novusnet.gr> wrote:

    Hi, 
    
     
    
    I am trying to  make an iteration using the for each. The property class is
    a simple class with two fields.  
    
    I test the iteration with this classes :
    
     
    
     
    
    1.       org.apache.royale.collections.ArrayList error message: TypeError:
    propertyClass is undefined
    
    2.       mx.collections.ArrayList error message TypeError: propertyClass is
    undefined
    
    3.  mx.collections.ArrayCollection error  message TypeError:
    foreachiter0_target.propertyNames is not a function
    
     
    
     
    
     
    
     
    
    the as3 code is:
    
                  
    
    private function iteration():void
    
    {
    
    var object:Object = new Object;
    
           for each (var propertyClass:PropertyClass in items)
    
           {
    
                  object[propertyClass.name] = propertyClass.index;
    
           }
    
    }
    
     
    
    Thanks in advanced 
    
     
    
     
    
    Spiros 
    
     
    
     
    
     
    
     
    
     
    
    ps: The js generated code for this 3 classes 
    
     
    
    (1)
    
    /**
    
    * @private
    
    */
    
    com.novusnet.jsTests.ArrayCollectionIteration.prototype.com_novusnet_jsTests
    _ArrayCollectionIteration_iteration = function() {
    
      var /** @type {Object} */ object = new Object();
    
      var foreachiter0_target =
    this.com_novusnet_jsTests_ArrayCollectionIteration_items;
    
      for (var foreachiter0 in foreachiter0_target) 
    
      {
    
      var propertyClass = foreachiter0_target[foreachiter0];
    
      {
    
        object[propertyClass.name] = propertyClass.index;
    
      }}
    
      
    
    };
    
    (2)
    
     
    
    /**
    
    * @private
    
    */
    
    com.novusnet.jsTests.ArrayCollectionIteration.prototype.com_novusnet_jsTests
    _ArrayCollectionIteration_iteration = function() {
    
      var /** @type {Object} */ object = new Object();
    
      var foreachiter0_target =
    this.com_novusnet_jsTests_ArrayCollectionIteration_items;
    
      for (var foreachiter0 in foreachiter0_target) 
    
      {
    
      var propertyClass = foreachiter0_target[foreachiter0];
    
      {
    
        object[propertyClass.name] = propertyClass.index;
    
      }}
    
      
    
    };
    
     
    
    (3)
    
     
    
     
    
    /**
    
    * @private
    
    */
    
    com.novusnet.jsTests.ArrayCollectionIteration.prototype.com_novusnet_jsTests
    _ArrayCollectionIteration_iteration = function() {
    
      var /** @type {Object} */ object = new Object();
    
      var foreachiter0_target =
    this.com_novusnet_jsTests_ArrayCollectionIteration_items;
    
      for (var foreachiter0 in foreachiter0_target.propertyNames()) 
    
      {
    
      var propertyClass = foreachiter0_target.getProperty(foreachiter0);
    
      {
    
        object[propertyClass.name] = propertyClass.index;
    
      }}
    
      
    
    };
    
     
    
          
    
    

Reply via email to