Percorsi relativi, assoluti, target dinamici.

Di: Pablito | 26/09/2020 18:43:26
Ogni volta che scriviamo del codice, abbiamo bisogno di specificare un target di riferimento,
ovvero un percorso a cui applicare il nostro script, per fare questo si specifica un indirizzo.
Esistono due tipi di percorsi: relativi ed assoluti.
Entrambi permettono di puntare un Target e di salire e scendere di livello come nel caso dei Clip nidificati,
solo che lo fanno in modo diverso.
I percorsi relativi richiedono l’uso di _parent e this, dove _parent indica il MC padre, che contiene il Movie Clip nel quale ci troviamo (sale di un livello), this invece indica il Clip stesso in cui ci troviamo.
Se abbiamo sullo Stage un MC dentro un altro, lo script lo associamo alla Timeline principale (_root),
e vogliamo puntare al MC più interno, allora scriveremo:
this.Clip1.Clip2
Se invece lo script è associato al MC più interno e vogliamo puntare al MC che lo contiene, scriveremo:
_parent.nostroscript
Nel caso dei percorsi assoluti, bisogna sempre specificare l’indirizzo completo,
partendo dalla Timeline principale, cioè da _root.
Se associamo lo script al MC più interno, e puntiamo al Clip1 che lo contiene, scriveremo:
_root.Clip1
Se invece associamo lo script alla Timeline principale, e vogliamo puntare al Clip2 interno al Clip1, scriveremo:
_root.Clip1.Clip2
Se usiamo loadMovie, e il nostro target è l’swf caricato su un livello diverso da 0
(che rappresenta la _root del file principale) dobbiamo indicare il nome del livello, come segue:
_level1.Clip1.ecc.
_level2.Clip1.ecc.
Se invece ci troviamo sul file caricato e vogliamo puntare ad un MC sulla _root del file principale, scrivermo:
_level0.Clip.ecc.
Infine, se nei percorsi non viene specificato _root, _parent o this, quest’ultimo è sottinteso, pertanto verrà interpretato come riferimento relativo.
Iniziando a programmare in Actionscript, presto o tardi si avrà l’esigenza di utilizzare dei riferimenti dinamici.
Essi permettono di puntare più target con un solo riferimento che è variabile.
Se abbiamo un pulsante e vogliamo che ogni volta che viene cliccato attivi un MC differente, possiamo farlo
in diversi modi. Possiamo ad esempio farlo con una sequenza di if seguiti da riferimenti relativi o assoluti che puntano ai nostri Clip, oppure usando un riferimento dinamico.
Supponendo che sullo Stage abbiamo posizionato n Clip (con nome istanza Clip1, Clip2, ecc.) ed un pulsante,
e che cliccando n volte sul pulsante i MC, uno per volta devono scomparire, possiamo scrivere:
on (release) {
n++;
this[“Clip”+n]._visible=false; oppure _root [“Clip”+n]._visible=false;
}
anzichè:
on (release) {
n++;
if (n == 1) {
_root.Clip1._visible = false; oppure this.Clip1._visible = false;
}
if (n == 2) {
_root.Clip2._visible = false; oppure this.Clip2._visible = false;
}
………
………
}
La spiegazione è molto semplice, innanzitutto si specifica il percorso di destinazione (this, _root, _root.Clip1 ecc.), poi seguono le parentesi quadre, dove all’interno scriveremo una stringa che Flash cercherà di trovare come nome istanza di un clip, con il percorso specificato, infine aggiungeremo qualsiasi codice o istruzione da eseguire.
Nel nostro caso, la stringa tra parentesi quadre sarà Clip1 al primo clic, Clip2 al secondo clic, ecc.
L’incremento come si può vedere viene effettuato dalla variabile n++, che viene poi concatenata alla stringa Clip,
in modo da formare la stringa Clip1, Clip2, ecc. che sono i nostri target dinamici.

Risposte


Nessuna risposta trovata!