переопределил SimpleButton под свои нужны, но всплыла ошибка, кнопка не воспринимает нажатия, в чем может быть трабл, событие доходит до контейнера и затыкается, у контейнера mouseChildren указан

Код AS3:
package libraries.ui
{
import flash.display.DisplayObject;
import flash.display.SimpleButton;
import flash.display.Sprite;
public class CustomButton extends SimpleButton
{
public static const ROUND_LEFT:String = 'left';
public static const ROUND_RIGHT:String = 'right';
public static const ROUND_LEFT_RIGHT:String = 'left right';
public static const ROUND_NONE:String = 'none';
/**
*
* @param button объект типа SimpleButton, из которого кнопка возьмет все стейты
* @param leftRight указатель, ROUND_LEFT - закругление слева, ROUND_RIGHT - закругление справа, ROUND_LEFT_RIGHT - закругление и слева и справа, если оставить пустым то без закруглений
*
*/
public function CustomButton(button:SimpleButton, leftRight:String = ROUND_NONE)
{
var result:Object = this.init(button, leftRight);
super(result.upState, result.overState, result.downState, null);
}
private function init(button:SimpleButton, leftRight:String = ROUND_NONE):Object
{
var obj:Object = {
upState: null,
downState: null,
overState: null
};
var l:DisplayObject, r:DisplayObject, b:DisplayObject;
if(leftRight == ROUND_NONE) {
obj.upState = button.upState;
obj.downState = button.downState;
obj.overState = button.overState;
} else if(leftRight) {
var prefs:Array = ['upState', 'downState', 'overState'];
l = (leftRight == ROUND_LEFT || leftRight == ROUND_LEFT_RIGHT) ? new LeftSideBut : null;
r = (leftRight == ROUND_RIGHT || leftRight == ROUND_LEFT_RIGHT) ? new RightSideBut : null;
b = button;
for each(var pref:String in prefs) {
var sp:Sprite = new Sprite;
var bp:DisplayObject = b[pref];
sp.addChild(bp);
if(l) {
var lp:DisplayObject = l[pref];
sp.addChild(lp);
bp.x = lp.width;
}
if(r) {
var rp:DisplayObject = r[pref];
sp.addChild(rp);
rp.x = bp.x + bp.width;
}
obj[pref] = sp;
}
}
return obj;
}
}
}