This is a discussion on Trucco del giorno - MovieClip.dropTarget within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Durante lo sviluppo del puzzle mi sono accorto di una cosa alquanto strana che riguarda la proprietà dropTarget della Classe ...
Durante lo sviluppo del puzzle mi sono accorto di una cosa alquanto strana che riguarda la proprietà dropTarget della Classe MovieClip.
Per chi andasse a vedere sulla guida Flash, troverebbe la proprietà dropTarget inserita nella classe Sprite. Dato che la classe MovieClip eredita dalla Sprite, allora la si può utilizzare.
E' una proprietà che permette di sapere in fase di startDrag, le informazioni sull' oggetto sottostante.
La guida Flash definisce la proprietà dropTarget con le seguenti parole: Specifica sopra quale oggetto la Sprite è stata trascinata dal mouse oppure sopra quale oggetto è stata rilasciata.
Ebbene, personalmente ho avuto qualche difficoltà perchè pare che non si comporti proprio come la guida descrive.
Vediamo cosa mi è successo...
Mi sono accorto del problema quando ho assegnato una proprietà in runtime a due MovieClip e trascinandone una sopra l' altra dovevo confrontare i valori di quella proprietà di entrambe le MovieClip.
Come potete vedere dall' esempio quì sotto, se trascinate il quadratino grigio sulla MovieClip contenente l' immagine, a rigor di logica e da quello che dice la guida Flash, se chiediamo a Flash un trace della proprietà dropTarget del quadratino
trace(quadratino.dropTarget );
al momento che lo rilasciamo dovremmo ottenere [object MovieClip] , invece non è così.
Otteniamo [object Shape].
Quindi mi sono trovato impossibilitato di confrontare le due proprietà che avevo assegnato alle MovieClip. Per cui
quadratino.dropTarget.nomeProprietà mi resituiva ' undefined '.
Dopo vari tentativi, mi è venuto il dubbio che Flash si stava riferendo al contenuto della MovieClip su cui rilasciavo la MovieClip trascinata.
In effetti usando questa sintassi:
quadratino.dropTarget.parent
ho raggiunto il mio scopo,come potete vedere dall' esempio seguente:
Adesso mi restituisce [object MovieClip] e potrei recuperarne la proprietà che gli avevo assegnato in runtime.
Se qualcuno di voi ha idee migliori o ha risolto in altre maniere e ha voglia di condividerle, naturalmente è il benvenuto.
Ciao Big flep sarebbe possibile avere il fla di questo trucchetto del giorno? te ne sarei molto grato. grazie ancora per tutto il mondo che hai dentro il tuo sito.
ciao big
MarcoZ