The answer to your question, and I realize you had a problem with scope, because I just answered a question you had on scope, is that you are working with stage. Consider the stage global as it is the canvas in which all of your display objects are drawn.
The following will work anywhere!!!
stage.addEventListener(Event.ENTER_FRAME, setScrollPercent, false, 0, true);
Now, the error that your talking about, IM GUESSING, is that you merely set the above to removeEventListener when you were ready which will not work.
The removeEventListener function DOES NOT accept five parameters like its sibling addEventListener, it only allows three ignoring priority and weak-reference, as the following shows.
//The following removes YOUR stage Event.ENTER_FRAME listener from any scope.
stage.removeEventListener(Event.ENTER_FRAME, setScrollPercent, false);
hope this helps, remember that stage is the global root in a sense, and be careful of root, it actually works how it is supposed to now in the fact that calling root is now relative to the swf you call it from, not the stage, unless the stage is the root of the current scope.
Brian Hodge
hodgedev.com blog.hodgedev.com