Странно. У меня вот такой код:

Код AS3:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.setTimeout;
/**
* @author bav
*/
public class Main extends Sprite
{
private var mc:MovieClip;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(event:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
mc = new MovieClip();
mc.graphics.beginFill(0x0000FF);
mc.graphics.drawCircle(stage.stageWidth / 2, stage.stageHeight / 2, 300);
mc.graphics.endFill();
mc.addEventListener(MouseEvent.ROLL_OUT, test);
addChild(mc);
setTimeout(function():void { mc.mouseEnabled = false; trace("done"); }, 1000);
}
private function test(event:MouseEvent):void
{
trace(mc.mouseEnabled);
}
}
}
работает так, как и ожидается. Т.е. mc.mouseEnabled = false; не диспачит события MouseEvent.ROLL_OUT.