在上传过程中,我需要禁用舞台上的所有按钮,除了取消上传过程的按钮。 我试过,但“myButton的”不断被禁用:AS3 - 禁用除一个按钮外的所有按钮
stage.mouseChildren = false;
mysection.mybutton.mouseChildren = true
怎么办呢?
在上传过程中,我需要禁用舞台上的所有按钮,除了取消上传过程的按钮。 我试过,但“myButton的”不断被禁用:AS3 - 禁用除一个按钮外的所有按钮
stage.mouseChildren = false;
mysection.mybutton.mouseChildren = true
怎么办呢?
下面的东西可能会帮助你。但你必须检查语法错误,没有时间检查...如果你不能理清,请提出任何问题。
function findMyButton(doc:DisplayObjectContainer , n:String):void{
for(var i:int=0; i<doc.numChildren; i++)
{
var btn:DisplayObjectContainer = this.getChildAt(i) as DisplayObjectContainer;
if(btn && btn.numChildren > 0){
findMyButton(btn , n);
}
if(btn.name =="btn_upload")
{
btn.mouseEnabled = true;
}
else
{
btn.mouseEnabled = false;
}
}
}
// This ll allow you to disable or enable all your objects
// so you can activate the button you like after you call this method.
function conrolmyButtons(doc:DisplayObjectContainer , b:Boolean):void{
for(var i:int=0; i<doc.numChildren; i++)
{
var btn:DisplayObjectContainer = this.getChildAt(i) as DisplayObjectContainer;
if(btn && btn.numChildren > 0){
findMyButton(btn , n);
}
btn.mouseEnabled = b;
}
}
您的代码错误。 DisplayObject不能有任何子项。 换句话说。 do.numchildren <<<是不正确的。 你是底层DisplayObject层的继承吗? 运行你自己的代码,你会注意到蹩脚的代码。 –
SimpleButton是InteractiveObejct。 InteractiveObject也不能有任何子... var btn:DisplayObjectContainer = this.getChildAt(i)as DisplayObjectContainer; <<<是什么意思? 也许btn是简单的按钮。所以,为什么你强制将SimpleButton转换为DisplayObjectContainer?你的代码不可用... –
有没有提到按钮是SimpleButton?我无法看到有关它的任何信息。 – ymutlu
将'mouseChildren'设置为'false'将会禁止所有来自特定DisplayObject的子节点的鼠标事件。当你将它应用到'stage'时,你可以有效地抑制整个SWF中的所有*鼠标事件。您需要明确禁用必要的按钮,或者找到一种方法将它们分组,以便您可以在一次调用中禁用它们。 – Peter
你不能有那么多的按钮,为什么不只是一个一个禁用它们呢? – danii