I'll try to keep this brief and clear, bear with me and please request additional information if it would help. We came across a situation in a very large Flex2 application where we wanted to know the types of items inside of collections at runtime. I can provide more details if desired, but in short we are doing a lot of automatic detection of object and property types to make a "running locally on xml" version of the product work with very little pain and very little extra configuration.
In Java 1.5, you can specify these types like this: List<ContactVO> foo; In Flex2, if you have something like this: var foo : ArrayCollection; There is obviously no way of discovering at runtime, by reading the class definition, what types of objects are meant to be in that ArrayCollection. So we took advantage of the metadata construct in Flex2 to create a sort of annotation, which would make the Flex2 example look like this: [Collection(type="ContactVO")] var foo : ArrayCollection; Now by reading the metadata of the property foo, we are able to determine at runtime both that foo is an ArrayCollection, and that it is meant to contain ContactVO object instances. This doesn't have the Java benefit of actually enforcing the fact that only ContactVOs are in the collection, but it at least allows us to make very useful convention-based assumptions. This is a pretty powerful option in my opinion, unfortunately Flex2 blindly throws out all metadata it doesn't understand. Through some google code searching, we were able to discover an obscure compiler option that looks like this: -keep-as3-metadata+=Collection This option would then make it such that Flex does not throw out [Collection] metadata. The problem is, this compiler option only works in DEBUG mode. In debug mode all of our code affected by this works beautifully and without fault (and would probably be a very useful tool to provide to the community). In RUN mode, it fails miserably. In short, Flex2 is ignoring these extra compiler options when not in DEBUG mode. We are no longer able to see the [Collection] metadata. Does anyone have any idea for working around this? We are using ANT for our builds, and I can guarantee that the -keep-as3-metadata compiler option is being used identically in all cases. It simply gets ignored in RUN mode, and Flex2 goes back to throwing out all metadata it doesn't understand.

