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.
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.codice:for (var elemento in tuoMc) { tuoMc[elemento].enabled = false; }
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.
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.codice:for (var elemento in tuoMc) { if (typeof (tuoMc[elemento]) == "object") { tuoMc[elemento].enabled = false; } }
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...
Sinceramente non ho mai visto in giro questo sistema.codice:tuoMc.onRollOver = tuoMc.enabled=false;
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.
Non conosco altri modi..codice:delete tuoMc.onRollOver
![]()


Rispondi quotando