Código

// registramos los eventos de ratón

registerMouse();

// colocamos 4 zonas fijas que serán donde los iconos podrán estacionarse

registerFix("inicio1", 50, 10, 48, 48);
registerFix("inicio2", 150, 10, 48, 48);
registerFix("nodo1", 50, 100, 48, 48);
registerFix("nodo2", 150, 100, 48, 48);

// cremos un objeto que pueder moverse
// para ello creamos un objeto ObjectMovable pasándole como parámentro
// al constructor el identificador de la capa que queremos convertir

var o1 = new ObjectMovable("gnome");
// establecemos que la capa sólo se puede mover en el rectángulo formado por
// las posiciones del parámetro: (x1, y1) (x2, y2)
o1.setMoveRect(0, 0, 250, 200);
// establecemos que las 4 zonas fijas registradas antes sean zonas fijas
// de el objeto
o1.addFixRect("inicio1");
o1.addFixRect("inicio2");
o1.addFixRect("nodo1");
o1.addFixRect("nodo2");
// colocamos "pointer" como cursor cuando el objeto se mueva
o1.setCursor("pointer");
// establecemos como lugar de partida la zona fija "inicio1"
o1.setFixSelectedName("inicio1");
// por último registramos el objeto
registerObjectMovable(o1);

// hacemos lo mismo para la otra capa

var o1 = new ObjectMovable("gimp");
o1.setMoveRect(0, 0, 250, 200);
o1.addFixRect("inicio1");
o1.addFixRect("inicio2");
o1.addFixRect("nodo1");
o1.addFixRect("nodo2");
o1.setCursor("pointer");
o1.setFixSelectedName("inicio2");
registerObjectMovable(o1);