mouseChildren是sprite的属性。现在用sprite做一个按钮,并且按钮上有文字,代码如下:
var txtfield:TextField=new TextField();
txtfield.text=“MOVE”;
var btnsprite:Sprite=new Sprite();
btnsprite.name=“MOVE”;;
btnsprite.buttonMode=true;
btnsprite.graphics.beginFill(0x00cc00);
btnsprite.graphics.drawRect(0,0,50,30);
btnsprite.graphics.endFill();
btnsprite.addChild(txtfield);
btnsprite.mouseChildren=false;
btnsprite.addEventListener(MouseEvent.CLICK,ClkRotateBtn);
如果没有最后一句,
1)btnsprite.buttonMode看不到效果,因为btnsprite被txtfield覆盖了。
2)在ClkRotateBtn()中想通过Target.name来确定当前被单击的是哪一个btn,就做不到了,因为btn被txtfield覆盖了。也就是btnsprite.name="MOVE"无效了,必须写txtfield.name="MOVE"
因此,btnsprite.mouseChildren=false;这句话很有用,解决了sprite被txtfield覆盖的多种问题。