1. i don't see any problem when assigning an instance name to a child movieclip. what do you see?
2. i don't understand that statement.
1- If you have several MovieClip symbols exported for Actionscript, using auto-generated Classes, extending the same base-class, and they share children with the same instance name, Flash generates an error like this one:
Warning: All instances named 'head' will be automatically declared as JessHead in symbols that use Character as their base class. In symbols that are linked to user-defined base classes, instances with the same name must be of the same type.And then the runtime error:TypeError: Error #1034: Type Coercion failed: cannot convert EmilyHead@3a0d1e81 to JessHead.at flash.display::Sprite/constructChildren()at flash.display::Sprite()at Character()2 MovieClips extending a base-class don't have Object level access to the classes which the base-class import. It makes sense on a technical level, but is a definite obstacle if your timeline uses code, and you don't want to import the code on the timeline itself ( which becomes redundant & more difficult to manage with over a dozen Symbols ).
why do you have children with the same name and not the same data type?
Because the child Symbols extend a base-class, and the Class must be unique in Flash. I suppose I should add that condition to the 1st limitation, and note that it's only an issue when using more than one Symbol in this manner.
If the Symbols have children which also extend a base-class, you cannot give the children instance-names, else the compiler gives an error related to automatically declaring stage instances.
"Please enter a unique class name that is not associated with other library symbols."
cast the children as base class objects.
How? This is all being done "behind the scenes" by the IDE. Flash auto-generates a class for both objects, which extends the base-class. It also auto-declares stage instances.
The only reasonable solution I can see is Adobe creating a resolution for this so that instances of the same name must only be of the same super type. So the instance named "head" is declared as it's super class "Head" instead of it's auto-generated class "JessicaHead".
Warning: All instances named 'head' will be automatically declared as JessicaHead in symbols that use Character as their base class. In symbols that are linked to user-defined base classes, instances with the same name must be of the same type.
Vote for this idea at ideas.adobe.com Flash Professional: http://tinyurl.com/2bxew2x
Using the Library to export Symbols for Actionscript hits a severe wall when Symbols use auto-generated classes + base-classes. Child instances are declared as their auto-generated class type instead of their base-class. The result is that you cannot create 2 Library Symbols with auto-generated classes which inherit from a user-defined base-class which have named child instances with auto-generated classes & a user-defined base-class.
Steps to Reproduce:
1. Create 2 Library Symbols, export for Actionscript with base-class "Character" which extends Sprite. Let Flash auto-generate Class names "Character1" & "Character2".
2. Create 2 more Library Symbols, export for Actionscript with base-class "Head" which extends Sprite. Let Flash auto-generate Class names "Character1Head" & "Character2Head".
3. Place an instance of Character1 on the stage, and give it a child instance of "Character1Head" named "head".
4. Place an instance of Character2 on the stage, and give it a child instance of "Character2Head" named "head".
5. Test Movie or Publish
Warning: All instances named 'head' will be automatically declared as "Character1Head" in symbols that use "Character" as their base class. In symbols that are linked to user-defined base classes, instances with the same name must be of the same type.
Flash should declare all instances named "head" as their base-class type "Head" when using auto-generated Classes. Save this workflow!!!