Help with set register point class

Hey folks!
I could use some help here, been stuck for a while and cant really understand what goes wrong :bored:

Im buidling a class that I will use to offset the register point in a movieclip, so it will scale or rotate around that new point. To do this, I wrap it in a container clip, moves the mc within the container, and then moves the container back so the mc ends up at the same coordinates as it had before. Then I use the container to “fake” a new register point.

The problem is; it works great the first time the method is run but the next time the container starts getting wrong offsets and “jumps” on the stage. I want my red dot (drawn by devPoint method) wich represents the new register point to just move to where I click, and nothing else.

It´s probably overlooking something simple, but I cant seem to get my head around it…


    import flash.display.MovieClip;
    import flash.display.Shape;
    public class McRegisterPoint extends MovieClip{
        private var _mc:MovieClip // movieclip to get a new register point
        private var _container:MovieClip;
        private var ox:Number //original x pos
        private var oy:Number // original y pos
        public function McRegisterPoint(mc:MovieClip){
            trace("new McRegisterPoint created for: " +
            _mc = mc;
        public function setRegister(regX:Number, regY:Number, dev:Boolean = false):MovieClip{
               // first time
                ox = _mc.x;
                oy = _mc.y;
                _container = new MovieClip();
                // puts the new container with the _mc in it at the original coords
                _container.x = ox;
                _container.y = oy;
            //all times
                // moves _mc to the new coords, within container
                _mc.x = regX;
                _mc.y = regY;
                // moves container negative to how mc was moved
                _container.x += regX * -1;
                _container.y += regY * -1;
            if (dev){
            return _container;
        //draws a red dot to show the new register point
        private function devPoint(){
            var circle:Shape = new Shape( ); 
   0xff0000 , 1 );
   0 , 0 , 2 );
            _container.addChild( circle ); 

On main timeline, I have mc called “box”.

var fixedBox = new McRegisterPoint(box);
box.addEventListener(MouseEvent.CLICK, handleClick);

function handleClick(evt:MouseEvent){
    var myClip:MovieClip = fixedBox.setRegister( * -1, * -1, true);
    myClip.rotation = 45;