Director: creare sprite dinamici.

Ciao a tutti, è un po' di tempo che mi sto divertendo con Director e volevo sapere se era possibile creare degli Sprite tramite lingo in maniera dinamica o duplicare quelli esistenti (come fa Flash con i movieclip), oppure se esiste una soluzione per portare sullo Stage n immagini o testi senza aver prima creato n sprite.
Spero di essere stato chiaro.

P.S. Penso che questo forum rappresenti lÂ’unica risorsa italiana per Director... Complimenti e grazie.

 mirko, N.D.

Inizio con una precisazione e cioè gli sprite non vengono né creati né eliminati, duplicati ecc. questi sono i canali sulla Timeline che usiamo per inserire i vari elementi nel nostro movie, dico questo per farti capire che non è possibile creare degli sprite, ma solo utilizzarli.

Questo script:
channel(N).makeScriptedSprite(member(M), point(35, 35))
ti permette di istanziare un Cast member dinamicamente, dove N è il numemero dello sprite usato, M rappresenta il tuo Cast member e point sono le coordinate sullo Stage.

Se vuoi creare dinamicamente un testo sullo Stage puoi usare questo script:
set pippo = new(#text)
pippo.text = "Ciao sono pippo"
sprite(1).puppet = TRUE
sprite(1).member = pippo

Poi ci sarebbe tutta la parte relativa agli ancestor, liste, ecc. argomento piuttosto avanzato.
Per quest’ultimo caso c’è solo da studiare!

 goku, N.D.

Grazie mille, sei stato chiarissimo era proprio quello che volevo sapere.
Se non chiedo troppo volevo un consiglio su come procedere per creare un movie che una volta prelevati dei dati da database (nomi e percorsi di immagini) li carichi nel movie e poi li visualizzi sullo stage con possibilità di navigazione.
Per quanto riguarda i dati da db ho gia risolto (utilizzo ADOxtra), per caricare le immagini avrei pensato a importFileInto, per la visualizzazione sullo stage utilizzo uno dei metodi che mi hai postato (c' è un metodo per verificare se un channel è vuoto o meno?) e per la navigazione non saprei...

p.s. come faccio a sapere quanto sarà lungo (quanti fotogrammi dura) lo sprite su cui ho istanziato il cast member?

 mirko, 28 Mar 2011

Per verificare se uno sprite (canale) è vuoto o meno, potresti usare questo script:
mia_variabile = sprite(2).membernum
se mia_variabile è uguale a 0 allora è vuoto, questo funziona se nel canale è posizionato un elemento presente fisicamente nel cast, se invece il canale lo riempi dinamicamente, puoi usare il comando puppetSprite() per fare la verifica.
Per quanto riguarda la "durata" di uno sripte dinamico, non ne sono sicuro perché non ho verificato, ma credo che, considerato il fatto che l'istanziamento è fatto con lo script, questo sia sempre presente indipendentemente dal frame in cui ti trovi, quando non ti serve più devi rimuoverlo.
Per rimuoverlo puoi usare sempre il comando puppetsprite:
puppetSprite(n°sprite, false)

 goku, N.D.

Grazie ancora per le risposte, adesso provo.

 mirko, N.D.
001design.it ® è un marchio registrato.
© 2004-2017 Molfese Paolo - P.Iva: 03430820617 - All rights reserved | Tutti i diritti sono riservati.