Perhaps with this architecture you could invert the control on some of the behaviors, for example:
engine = new SpriterEngine(Assets.getText('assets/test.scml'), lib);
timeline = new SpriterTimeline(engine);
movieClip = MovieClip.fromTimeline(timeline);
movieClip.x = x;
movieClip.y = y;
movieClip.name = "uniqueId";
movieClip.gotoAndPlay("run");
On the dev side, we can re-use logic to handle playback, frame scripts, loops, scenes (etc) and the client side the difference between a SWF MovieClip and Spriter/Spine/DragonBones/Spritesheet/etc MovieClip would be at construction time but not in its use