- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- classe MovieClip Loader, piccolo imprevisto..
-
classe MovieClip Loader, piccolo imprevisto..
usando il costrutto movieclipload mi rendo conto che il metodo onloadinit, che servirebbe a tener traccia del primo frame caricato di un filmato esterno o la gestione delle proprietà in caso si trattasse di immagine esterna, viene definito subito dopo l'evento onloadComplete. E non durante il progresso o L'inizializzazione del caricamento.
mcloader = new MovieClipLoader()
mcloader.loadClip("file.swf",mymc)
mcloader.onLoadInit = function() {
mcsarray = new Array()
mcsarray.push(0)
mcsarray.push(1)
trace(mcsarray)
}mcloader.onLoadComplete = function() {
trace(mcsarray )
}risultato in sequenza
undefined
0,1come mai?? A me servirebbe richiamare una funzione e gestire l'array generato da onloadinit, solo a caricamento completo. Ma ritornandomi undefined mi diventa impossibile. Qualcuno di voi ha Possibili idee risolutive??
Avevo io pensato ad un intervalo di mezzosecondo che andasse a pescare l'array generato da onloadinit e conseguente gestione dell'array a caricamento completato. ma non lo messo in pratica per non sprecare tempo es:
mcloader = new MovieClipLoader()
mcloader.loadClip("file.swf",mymc)
mcloader.onLoadInit = function() {
mcsarray = new Array()
mcsarray.push(0)
mcsarray.push(1)
trace(mcsarray)
}mcloader.onLoadComplete = function() {
trace(mcsarray)
pescaarrayInt = setInterval (function() {
if(mcsarray!==undefined) {
trace(mcsarray)
// gestione array
clearInterval(pescaarrayInt)
}
}, 500)
}Il risultato atteso sarebbe
risultato in sequenza
undefined
0,1
0,1Secondo voiPotrebbe funzionare?? Spero aver esposto il mio problema o almeno reso l'idea..
-
Devi aggiungere un listener o tuoi eventi non funzionano
Questo è corretto:
var clip:MovieClip=_root.createEmptyMovieClip('clip_mc',_root.getNextHighestDepth()); var loader:MovieClipLoader=new MovieClipLoader(); var obj:Object=new Object(); loader.addListener(obj); loader.loadClip('my.swf',clip); obj.onLoadInit=function(m:MovieClip):Void { trace(m); }
-
umm pure con listener... onloadInit viene definito dopo onloadcomplete, capi flep??
cmq provo a riordinare il tutto.
grazie per ora..
-
onLoadInit viene sempre eseguito dopo onLoadComplete, questo perchè onLoadComplete serve a sapere quando il tuo swf esterno è completamente caricato (in qual caso tu volessi far eseguire dell'altro codice come ad esempio una funzione solo quando l'swf è completamente caricato).
Invece onLoadInit ti permette di interagire con l'swf esterno che hai caricato come se fosse una movieclip che già avevi nello Stage, quindi puoi utilizzare tutti i suoi metodi in quanto all'onLoadInit l'swf esterno diventa una MovieClip, quindi ad esmpio puoi dirgli play(), o stop() o giocare con la sua _alpha ecc ecc
-
flep ti ringrazio se sempre disponibile e gentile.
ho risolto con l'intervallo come temevo, se rileggi già dal mio primo post.Da onloadcomplete sotto intervallo controllo che l'array sia stato creato da onloadInit e non appena è stato creato lo gestisco con serenità senza ulteriori fastidi.
Spero sia cosa giusta. eheh