Help. Scroll movieclip doesn't work inside movieclip

Dear All,
Need Help. I create movieclip called ‘pinguin1’ and attached with code. Inside ‘pinguin1’ mc contain scrollable movieclip called ‘main_mc’ with code too.
Problem is when ‘pinguin1’ start ‘main_mc’ won’t work, text won’t getting scrolled up and down. If I build only ‘main_mc’ (outside ‘pinguin1’) it work well.
Is there any wrong code?
Appreciate all. Ty

pinguin1 code :


on (release) {
_root.x +=2;
_root.pinguin1.swapDepths(_root.x);
play();
}

main_mc code :


//editable variables
var scPadding:Number = 5;
var scrollbarOffset:Number = 10; //distance from scPadding
var scrollbarWidth:Number = 2;
var scrollHandleRadius:Number = 5;
var scrollExpand:Number = 6; //scroll face hit area expand
var scrollHandleColor:Number = 0x000000;
var scrollHandleAlpha:Number = 100;
var scrollFaceColor:Number = 0x000000;
var scrollFaceAlpha:Number = 100;
var friction:Number = 1.3;
var projectSpeed:Number = 3.5;
var wheelMultiplier:Number = 15;
//---
var mouseListenersMade:Boolean = false;



createScroller(main_mc, main_mc.myContent, main_mc.myMask, main_mc.myFooter);
main_mc.myContent.myText.mouseEnabled = main_mc.myContent.myText.mouseWheelEnabled = false;
main_mc.myContent.myText.autoSize = true;
main_mc.myContent.myText.wordWrap = true;
main_mc.myContent.myText.multiline = true;


function createScroller(scTargetMC, scTargetContent, scTargetMask, scFooter) {
    var scTargetContentStaticY:Number = scTargetContent._y;
    scTargetMC.createEmptyMovieClip("scroller", scTargetMC.getNextHighestDepth());
    scTargetMC.scroller.createEmptyMovieClip("scrollHandle", scTargetMC.scroller.getNextHighestDepth());
    scTargetMC.scroller.createEmptyMovieClip("scrollFace", scTargetMC.scroller.getNextHighestDepth());
    duplicateMovieClip(scTargetMask, "scFooterMask", scTargetMC.getNextHighestDepth());
    scFooter.setMask(scTargetMC.scFooterMask);
    scTargetContent.setMask(scTargetMask);
    sH = scTargetMC.scroller.scrollHandle;
    sF = scTargetMC.scroller.scrollFace;
    drawCircle(sH, scrollHandleRadius, scrollHandleColor, scrollHandleAlpha);    
    sH._x = scTargetContent._width + scPadding + scrollbarOffset - (scrollHandleRadius/2);
    sF._x = scTargetContent._width + scPadding + scrollbarOffset + (scrollbarWidth/2);
    sF._y = scTargetContentStaticY; //static, so use instead of scTargetContent
    drawScrollFace(sF, scTargetMask);    
    positionScrollHandle(sH, scTargetContentStaticY, scTargetMask, scTargetContent, scFooter);

    wheelSpeed = wheelMultiplier * sF._height / scTargetContent._height;    
    var scrollFrame:MovieClip = scTargetMC.scroller.createEmptyMovieClip("scrollFrame",scTargetMC.scroller.getNextHighestDepth());
    if (!hideScrollbar(scTargetMC, scTargetContent, scFooter, scTargetMask)) {
        sF.useHandCursor = sH.useHandCursor = true;
        sF.onPress = function() {// bar for scrolling - clicking drags handle too        
            drag = true;

            if (this._parent._ymouse>this._y+this._height-sH._height) {
                sH._y = this._y+this._height-sH._height;
            } else {
                sH._y = this._parent._ymouse;
            }
            sH.startDrag(false,sH._x,scTargetContentStaticY,sH._x,scTargetContentStaticY+sF._height-sH._height);
            _root.scrollInfo(scrollFrame);
        };
        sF.onMouseUp = function() {
            sH.stopDrag();
            drag = false;
        };
        scrollInfo = function(targetScroll_mc) {
            targetScroll_mc.onEnterFrame = function() {
                if (drag == false) {
                    delete targetScroll_mc.onEnterFrame;
                }                
                sHPercent = 100*(sH._y-scTargetContentStaticY)/(sF._height-sH._height);
                scTargetContent._y = (sHPercent*(scTargetContent._height + scFooter._height -scTargetMask._height))/-100+scTargetContentStaticY;
                scFooter._y = scTargetContent._height + scTargetContent._y;//scroll scFooter
                //contPercent = 100*(scTargetContent._y-scTargetContentStaticY)/(scTargetContent._height+scFooter._height-scTargetMask._height)*-1;
            };
        };
        setMouseWheel(true, scTargetContentStaticY, sF, scTargetContent, scFooter, scTargetMC); // enable the mouse wheel
        if (!mouseListenersMade) {
            mouseListener = new Object();
            mouseListener.onMouseWheel = function(delta) {
                if (_root.hitTest(_xmouse, _ymouse)) {//to scroll anywhere
                    if (delta<0) moveDragger(1);
                    if (delta>0) moveDragger(-1);
                }
            };
            Mouse.addListener(mouseListener);
            mouseListener = new Object();
            mouseListener.onMouseWheel = function(delta) {
                if (scTargetContent.hitTest(_xmouse, _ymouse, true)) {
                    if (delta<0) {
                        moveDragger(1);    
                    }
                    if (delta>0) {
                        moveDragger(-1);
                    }
                }
            };
            Mouse.addListener(mouseListener);
            MouseWheel.addListener(this);
            function onMouseWheel(delta:Number):Void {
                if (scTargetContent.hitTest(_xmouse, _ymouse, true)) {
                    if (delta<0) {
                        moveDragger(1);    
                    } else {
                        moveDragger(-1);    
                    }
                }
            }
            mouseListenersMade = true;
        }
    }
    else {//reset y position of text & stop scrolling        
        scTargetContent._y = scTargetContentStaticY;
        sH._y = scTargetContentStaticY;
        setMouseWheel(false, scTargetContentStaticY, sF, scTargetContent, scFooter, scTargetMC);
    }
}
function setMouseWheel(stat:Boolean, scTargetContentStaticY, sF, scTargetContent, scFooter, scTargetMC) {
    if (stat) {
        moveDragger = function (delt) {
            sH._y += delt*wheelSpeed;
            if (sH._y>=scTargetContentStaticY+sF._height-sH._height) {//limit bottom
                sH._y = scTargetContentStaticY+sF._height-sH._height;
                scTargetContent._y = scTargetContentStaticY - scTargetContent._height - scFooter._height + scTargetMask._height;
                scFooter._y = scTargetContent._height + scTargetContent._y;//scroll scFooter
            } else if (sH._y<=scTargetContentStaticY) {//limit top
                sH._y = scTargetContentStaticY;
                scTargetContent._y = scTargetContentStaticY;
                scFooter._y = scTargetContent._height + scTargetContent._y;//scroll scFooter
            } else {
                _root.scrollInfo(scTargetMC.scroller.scrollFrame);
                updateAfterEvent();
            }
        };
    }
    else {
        moveDragger = null;
    }
    return moveDragger;
}
function positionScrollHandle(sH, scTargetContentStaticY, scTargetMask, scTargetContent, scFooter) {
    if ((sH._y > (scTargetContentStaticY+scTargetMask._height)) || (scTargetContent._y < (scTargetContentStaticY - scTargetContent._height - scFooter._height + scTargetMask._height)) ) {//limit bottom
        sH._y = sF._height - sH._height + scTargetContentStaticY;
        scTargetContent._y = scTargetContentStaticY - scTargetContent._height - scFooter._height + scTargetMask._height;//scroll text
        scFooter._y = scTargetContent._height + scTargetContent._y;//scroll scFooter
    }
    else if ((sH._y <= scTargetContentStaticY) || (scTargetContent._y >= scTargetContentStaticY)) {//limit top
        sH._y = scTargetContentStaticY;
        scTargetContent._y = scTargetContentStaticY;
        scFooter._y = scTargetContent._height + scTargetContent._y;//scroll scFooter
    }
    else {//scroller is in the middle    
        contPercent = 100*(scTargetContent._y-scTargetContentStaticY)/(scTargetContent._height+scFooter._height-scTargetMask._height)*-1;
        sH._y = (contPercent*(sF._height-sH._height))/100+scTargetContentStaticY;
        //sHPercent = 100*(sH._y-scTargetContentStaticY)/(sF._height-sH._height);
    }
}
function hideScrollbar(scTargetMC, scTargetContent, scFooter, scTargetMask){
    //this checks to see if the scrollbar is needed & hides it if it isn't
    if ((scTargetContent._height + scFooter._height - scPadding-1) > (scTargetMask._height)) {
        scTargetMC.scroller._visible = true;
        return false;
    }
    else {
        scTargetMC.scroller._visible = false;
        return true;
    }
}
function drawScrollFace(sF, scTargetMask) {
    sF.clear();
    sF.moveTo(0, 0);
    sF.beginFill(scrollFaceColor,scrollFaceAlpha);
    sF.lineTo(scrollbarWidth, 0);
    sF.lineTo(scrollbarWidth,scTargetMask._height);
    sF.lineTo(0,scTargetMask._height);
    sF.lineTo(0,0);
    sF.endFill();
    //scroll face hit area
    sF.moveTo(0-scrollExpand, 0);
    sF.beginFill(0x000000,0); 
    sF.lineTo(scrollbarWidth+scrollExpand, 0);
    sF.lineTo(scrollbarWidth+scrollExpand,scTargetMask._height);
    sF.lineTo(0-scrollExpand,scTargetMask._height);
    sF.lineTo(0-scrollExpand,0);
    sF.endFill();
}
function drawCircle(target_mc:MovieClip, radius:Number, fillColor:Number, fillAlpha:Number):Void {
    var x:Number = radius;
    var y:Number = radius;
    with (target_mc) {
        beginFill(fillColor, fillAlpha); 
        moveTo(x + radius, y);
        curveTo(radius + x, Math.tan(Math.PI / 8) * radius + y, Math.sin(Math.PI / 4) * radius + x, Math.sin(Math.PI / 4) * radius + y);
        curveTo(Math.tan(Math.PI / 8) * radius + x, radius + y, x, radius + y);
        curveTo(-Math.tan(Math.PI / 8) * radius + x, radius+ y, -Math.sin(Math.PI / 4) * radius + x, Math.sin(Math.PI / 4) * radius + y);
        curveTo(-radius + x, Math.tan(Math.PI / 8) * radius + y, -radius + x, y);
        curveTo(-radius + x, -Math.tan(Math.PI / 8) * radius + y, -Math.sin(Math.PI / 4) * radius + x, -Math.sin(Math.PI / 4) * radius + y);
        curveTo(-Math.tan(Math.PI / 8) * radius + x, -radius + y, x, -radius + y);
        curveTo(Math.tan(Math.PI / 8) * radius + x, -radius + y, Math.sin(Math.PI / 4) * radius + x, -Math.sin(Math.PI / 4) * radius + y);
        curveTo(radius + x, -Math.tan(Math.PI / 8) * radius + y, radius + x, y);
        endFill();
    }
}