#actionscript-3
#actionscript-3
Вопрос:
Во время загрузки мне нужно отключить все кнопки на сцене, кроме одной, чтобы отменить процесс загрузки. Я пробовал это, но «mybutton» продолжает отключаться:
stage.mouseChildren = false;
mysection.mybutton.mouseChildren = true
Как это сделать?
Комментарии:
1. Установка
mouseChildren
наfalse
будет подавлять все события мыши, происходящие от любого дочернего элемента конкретногоDisplayObject
. Когда вы применяете это кstage
, вы эффективно подавляете все события мыши во всем вашем SWF. Вам нужно явно отключить необходимые кнопки или найти способ сгруппировать их так, чтобы вы могли отключить их за один вызов.2. У вас не может быть СТОЛЬКО кнопок, почему бы просто не отключить их одну за другой?
Ответ №1:
Вам может помочь что-то вроде приведенного ниже. но вам нужно проверять синтаксические ошибки, у вас нет времени на проверки… Задайте любой вопрос, если вы не можете разобраться.
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 amp;amp; 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 amp;amp; btn.numChildren > 0){
findMyButton(btn , n);
}
btn.mouseEnabled = b;
}
}
Комментарии:
1. Ваш код неверен. У DisplayObject не может быть дочерних элементов. Другими словами. do.numchildren<<< неверно. Вы понимаете наследование слоя DisplayObject? запустив свой собственный код, вы заметите дерьмовый код.
2. SimpleButton является интерактивным. У InteractiveObject также не может быть дочерних элементов… var btn:DisplayObjectContainer = this.getChildAt(i) как DisplayObjectContainer; <<< что это значит? возможно, btn — это simplebutton. итак, почему вы принудительно преобразовали SimpleButton в DisplayObjectContainer??? ваш код недоступен…
3. Есть ли какие-либо упоминания о том, что кнопки являются SimpleButton? я не вижу никакой информации об этом.