i use this to move pluigins it will have to be adapted for hotspots withthe code Zepher provided.
<action name="follow_the_mouse">
if(dragging,
set(plugin[%1].align, topleft);
set(plugin[%1].edge, topleft);
add(plugin[%1].x, mouse.x, 0);
add(plugin[%1].y, mouse.y, 5);
delayedcall(0, follow_the_mouse(%1));
);
</action>
and on the plugin i use
ondown="set(dragging,true); follow_the_mouse(get(name));"
onup="set(dragging,false);"