Note that there are some explanatory texts on larger screens.

plurals
  1. POCustom AS3 class is null after being added to Array
    primarykey
    data
    text
    <p>I'm a C# developer who is trying to learn some AS3, so this is going to be a pretty newbie question.</p> <p>I'm getting confused with regards to scope and GC, as I have a custom MovieClip-extending class (Slide) which I create instances of within a loop and push() into an Array, but afterwards the items are null when I pull them out of the collection.</p> <pre><code>var ldr:URLLoader = new URLLoader(); ldr.load(new URLRequest("presentation.xml")); ldr.addEventListener( Event.COMPLETE, function(e:Event):void { config = new XML(e.target.data); for (var i:Number = 0; i &lt; config.slides.slide.length(); i++) { var node = config.slides.slide[i]; var slide:Slide = new Slide(); slides.push(slide); addChild(slide); // Works fine } } ); slides.forEach(function(e:*, index:int, array:Array):void { addChild(e); // Causes "Parameter child must be non-null" exception } ); </code></pre> <p>I would like to be able to references the slides later in order to toggle them as needed - how can I keep the reference to my new objects?</p> <p><strong>Update:</strong> It appears there were two problems with this. The forEach call was being made before the URLLoader's complete event was called, and also forEach doesn't seem to work as expected. Here is the final working code:</p> <pre><code>var ldr:URLLoader = new URLLoader(); ldr.load(new URLRequest("presentation.xml")); ldr.addEventListener( Event.COMPLETE, function(e:Event):void { config = new XML(e.target.data); for (var i:Number = 0; i &lt; config.slides.slide.length(); i++) { var node = config.slides.slide[i]; var slide:Slide = new Slide(); slides.push(slide); } for each (var sl in slides) { addChild(sl); } } ); </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload