• User Attivo

    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,1

    😞

    come 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,1

    Secondo voiPotrebbe funzionare?? Spero aver esposto il mio problema o almeno reso l'idea..:yuppi:


  • Super User

    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);
    }
    
    

  • User Attivo

    umm pure con listener... onloadInit viene definito dopo onloadcomplete, capi flep??
    cmq provo a riordinare il tutto.
    grazie per ora..


  • Super User

    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 🙂


  • User Attivo

    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