Ciao..
Non so se esista una singola proprietà per disabilitare tutti gli elementi all'interno di un'istanza.
Io ti propongo due metodi..
- Primo metodo:
Puoi utilizzare un ciclo "for in" per ottenere, in modo dinamico, tutti gli elementi presenti sul target specificato e renderne falsa la proprietà enabled.
codice:
for (var elemento in tuoMc) {
tuoMc[elemento].enabled = false;
}
Questo metodo è abbastanza versatile perchè gli elementi vengono comunque ciclati uno per uno, per cui potrebbe tornare utile se devi identificare dei gruppi di elementi.
Ad esempio puoi mettere una condizione per individuare solo i pulsanti, identificati come "object" tramite la funzione typeof.
Metti magari il caso che vuoi fare una distinzione tra istanze di pulsanti e istanze di clip filmato, queste ultime identificate dal valore "movieclip" restituito dalla funzione typeof, in modo da disattivare solo i pulsanti.
codice:
for (var elemento in tuoMc) {
if (typeof (tuoMc[elemento]) == "object") {
tuoMc[elemento].enabled = false;
}
}
Utilizzando questo metodo avrai quindi un controllo mirato degli elementi che vuoi disabilitare considerando anche eventuali elementi annidati a più livelli dentro il mc principale.
Infatti nello script sopra saranno disattivati solo gli elementi presenti sullo stage del mc principale ma non eventuali elementi all'interno dei primi.
- Secondo metodo:
Puoi "commuttare" il mc principale in una istanza di pulsante, semplicemente attribuendole un evento mouse, e rendere quindi disattiva questa istanza.
In una riga...
codice:
tuoMc.onRollOver = tuoMc.enabled=false;
Sinceramente non ho mai visto in giro questo sistema.
In effetti non è un metodo tanto "pulito" perchè l'evento onRollOver serve in questo caso solo per rendere l'istanza come pulsante in modo da dare a questa la priorità dell'area clicabile e di conseguenza disattivarla rendendo inattivi anche tutti gli elementi (che non avranno più priorità) al suo interno.
Potremo dire però che il fine giustifica i mezzi.
Per riattivare il mc e tutti gli elementi interni basterà eliminare la funzione onRollOver in modo che l'istanza torni a comportarsi come clip filmato e non più come pulsante.
codice:
delete tuoMc.onRollOver
Non conosco altri modi..