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 :
Code:
on (release) {
_root.x +=2;
_root.pinguin1.swapDepths(_root.x);
play();
}



main_mc code :
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();
    }
}