But they do supoprt switching sprites at runtime.
I mentioned the runtimes, because that's what allows you to interact with the animations by e.g. swapping out textures.
It's probably not 100% the same for all three, but I implemented a runtime for DragonBones a while ago and here's how it worked:
The base object is an armature (like a model). That has a list of bones, which by themselves are not visible. The bones have a transformation associated with them. Animations can change these transformations. Each bone can have a collection of slots attached to it. Slots can have a transform too, which is applied on top of the bone transform (so slots have a position relative to the bone their attached too, this makes them animate when the bone is animated). A slot has a list of Displays and a display index which determines what display it is currently showing. A Display can be one of three things. It can be a texture, a texture mesh (allows for free form deformation of a texture), or a nested armature.
You can change what's displayed by simply changing the display index. So if you want swappable equipment, you can put some textures in displays and associate them with the relevant slots, then at runtime change the display index