1 person found this helpful
Nope, you aren't asking anything dumb.
So with the Flex 4 containers (including s:Application), the compiler no longer generates UIComponentDescriptors representing each node in your MXML document.
Why is this meaningful?
In Flex 3 the compiler would generate a UIComponentDescriptor representation of each component tag in your document. At runtime these component descriptors would be realized into actual instances. See Container::createComponentFromDescriptor ... In this method the 'name' would be set (copied) from the id of the component.
In Flex 4 the compiler instead generates factory methods for each component tag in your document. These are a bit faster. In this case we don't go through the step of copying the id to the name field (if name is unspecified).
You can compile your sample with '-keep' to contrast the difference in code generation to see for yourself what I'm referring to.
Feel free to file an enhancement request in JIRA (I believe it would be valuable to address) - http://bugs.adobe.com/flex/. But for now you'll need to assign a meaningful name yourself if you wish to your name to reflect the id moniker.
Thanks very much! This information is gold!
PS. When you've sorted them out please start a new thread with the issue(s) you are seeing with events and groups. I'm eager to hear.
Also...if you look in FlexSprite (the basis for all flex components), you'll see that the toString method calls NameUtil.displayObjectToString() to generate that long name string. It would be fairly trivial to write your own utility that looks at ids if they exist instead of names.
But I agree with Corey, it shouldn't be too difficult to address, so please log an ECR.