All,
Is it possible to have several DIFFERENT custom classes use the same shared asset in the library at runtime?

For example, if I have a super class called Ball, the class file might look like this:

Actionscript Code:
package my.custom.classes{
   
    import flash.display.MovieClip;

    public class Ball extends MovieClip {
       
        BallGraphic_mc:MovieClip; // The graphical illustration of a round ball.
       
        public function Ball() {
            BallGraphic_mc.x = 0;
            BallGraphic_mc.y = 0;
        }
    }
}

Essentially, there will simply be a MovieClip in my shared library (called Assets.swf) that will contain another MovieClip that is an illustration of a round ball.
Now, as I understand it, in order for me to use the shared asset in other custom classes, the properties for the clip in the Library should be set like:

Class: Ball
Base class: my.custom.classes.Ball

And I should also check the "Export for runtime sharing" check box.

So, in order to access the Ball class and graphic in another class, called Main, it would look something like this:

Actionscript Code:
package my.custom.classes{
   
    public class Main extends MovieClip {
       
        public function Main() {
           
            // Load the shared library
            var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
            var loader:Loader = new Loader();
            var req:URLRequest = new URLRequest("Assets.swf");
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onAssetsLoaded);
            loader.load(req, context);
           
        }
       
        private function onAssetsLoaded(_event:Event):void{
            // the name of the shared asset
            var assetName:String = "Ball";
           
            // get the MovieClip class of the asset
            var assetClass:Class = getDefinitionByName("Ball") as Class
           
            // create an instance of the shared asset
            var sharedAsset:MovieClip = new assetClass();
           
            // position the asset
            sharedAsset.x = 100;
            sharedAsset.y = 100;
           
            // add asset to the stage
            addChild(sharedAsset);
        }
    }
}

First, I have to load the Assets.swf to access the the shared assets.
Now, my question becomes, what if I want a 2nd, 3rd, etc. Ball type class that do something slightly different than Ball, but use the same Library asset.
For example, a BouncingBall class and a TwirlingBall class that look like:
Actionscript Code:
package my.custom.classes{
   
    public class BouncingBall extends Ball {
       
        public function BouncingBall() {
           
            // Some script that makes the BallGraphic_mc bounce around goes here.
           
        }
    }
}
Actionscript Code:
package my.custom.classes{
   
    public class TwirlingBall extends Ball {
       
        public function TwirlingBall() {
           
            // Some script that makes the BallGraphic_mc twirl around goes here.
           
        }
    }
}

Now I could just duplicate the Ball MovieClip in the Assets.swf Library a couple of times and give the duplicates these properties:

Class: BouncingBall
Base class: my.custom.classes.BouncingBall

Class: TwirlingBall
Base class: my.custom.classes.TwirlingBall

However, I'd rather not have 3 different things in the Library, because they are exactly the same, just with different linkage properties set.
Is there a way to create an instance of BouncingBall and TwirlingBall without having to have an object in the Library with those specific identifiers?