This is doable using your first method. When creating your asset bundle, did you set BuildAssetBundleOptions.CollectDependencies?
Alternatively, you can use:
BuildPipeline.BuildAssetBundle( AnimatedSprite_A, new Object[] { AnimatedSprite_A, AnimatedSprite_B, ... } ...);
Don't forget you'll need to add all dependencies manually if you want to do it this way.
There is one more huge advantage of doing it like this - when Unity creates an asset bundle, it will go in and make all assets unique - that means the shader within your asset bundle will be unique compared to the shader in your scene, and materials within the asset bundle will be unique as well, making it really annoying if you want to edit shaders, etc. on loaded assets. The way around this is to "repatch" the shaders correctly after loading the asset bundle in - i.e. keep a dictionary of Material - Shader, and use fix up the Material.shader = Shader.Find("...")
With this method, after creating your asset bundle, use Load("...") to load the object you want.