   [web] Flash CS4 circular reference problems
  Hello,My paranoia is pretty high now regarding the fact that the Flash GC seems to completely leak any object with a circular reference, including a MovieClip who has a child or maybe somehow SoundChannels, due to a very naive reference counting algorithm. Here's some questions that I can't find detailed answers for:1. When is the code from a closure generated?2. When is the code from a closure garbage collected?3. When are objects that are referred to from a dead closure garbage collected?4. It seems like a very big oversight that a basic type of object like a MovieClip has exactly the kind of circular reference problem that the garbage collector chokes on when it contains an also unused child (parent and presumably hidden field children cause parent and child DisplayObjects to point to each other circularly). Do all experienced Flash developers already know this, or am I doing something really stupid in my AS3 code?5. Eventually my game starts getting null return values from anySoundInstance.play(), but the game is able to play way more than 32 sounds (I have to run it for a few hours in an autoplay mode before I see the problem when I come back to my PC). My sound playing function sets up a sound.complete event (which removes itself from the SoundChannel when triggered) and returns a function that takes a fade out time in milliseconds and adjusts the channel's volume very 50 milliseconds. I'm wondering if closures can cause memory leaks.6. I can't find any reference to the parent SoundChannel in SoundTransform or SoundChannels in Sound, so I really cannot find any circular references in the class heirarchy. If you have any insight, please share.For SoundChannels that come from soundInstance.play() calls, it seems that even though I null all references to that soundchannel, they do seem to eventually accumulate over time until all 32 are used up.   