Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: UNLOAD IN as3

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    UNLOAD IN as3

    Ho due mc: in quello "padre" scrivo

    var myrequest:URLRequest=new URLRequest("asccanzoni.swf");
    var myloader:Loader = new Loader();
    myloader.load(myrequest);
    myloader.contentLoaderInfo.addEventListener(Event. COMPLETE, movieLoaded);
    function movieLoaded(event:Event):void {
    myloader.x=203.6;
    myloader.y=0.0;
    stage.addChild(myloader);
    myloader.content.addEventListener('killMe', killLoadedClip);
    }
    function killLoadedClip(event:Event):void{
    event.target.removeEventListener('killMe', killLoadedClip)
    stage.removeChild(myloader);
    myloader.unload();
    }


    In quello figlio (asccanzoni), in un frame finale

    dispatchEvent(new Event("killMe", true));


    Quando la timeline del frame padre arriva al frame contenente il primo AS, si carica il swf figlio e tutto funziona bene

    I problemi sorgono quando cerco di ritornare al swf padre : nel frame finale dell swf figlio l'AS chiude il movie e dovrebbe ridare la piena funzionalità al movie padre
    E invece non avviene : nonostante i miei tentativi l'audio finale presente nel movie figlio si sente anche dopo che questi non è più visibile sullo stage e nel movie principale i button non funzionano, sembra tutto bloccato

    Dove sbaglio ?
    Volendo avviare il load e l'unload da pulsante e non da frame/target avrei meno problemi ? E come fare ?

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    A prima vista mi pare che il problema possa essere localizzato più sull'swf figlio che suk codice del padre. Per caso nel filmato figlio c'è un video?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    nessun video

    nel movie figlio non ci sono video, solamente file sonori caricati dinamicamente.
    Comunque credo non abbia molte speranze di fare un buon lavoro così.
    Il problema è che fino al Flash cs3 il file figlio viene solamente rimosso dallo stage, ma non dalla memoria. Te ne accorgi quando hai un file sonoro nel movie figlio che continua la sua riproduzione anche quando il swf è stato rimosso
    Ho letto che la soluzione è finalmente arrivata con il Flash CS4 e il comando unloderAndStop che rimuove il swf figlio sia dallo stage che dalla memoria.
    eh ma chi non ha il CS4 che fa ? Si appende al tram ? Ah. Adobe, Adobe ...

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    A chi non ce l'ha mi sa che gli tocca fare prima il close() di ogni Sound nel filmato esterno e poi fare l'unload :/

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    eppure ...

    Eppure in AS2 io non ho mai avuto di questi problemi: l'unloadmovienum cancella tutto dallo stage, non capisco perchè in as3 hanno peggiorato quanto di buono c'era nell'as2. Problemi di sicurezza ? Ci sono altre strade che non conosciamo ? Ma se anche fosse, comunque significa aver reso più difficile la situazione, con quale scopo ? Non poteva rimanere l'unloadmovienum ?
    Bah ...

  6. #6
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Se in un filmato .swf caricato all'interno di un altro filmato mandi in esecuzione un brano in mp3 non lo stoppi semplicemente rimuovendo il filmato "figlio" dal "padre" perchè di fatto, si tratta di 2 istanze diverse.

    In AS2 si usava : stopAllSound(); e in AS3 si usa: SoundMixer.stopAll();

    Il più recente: nomeLoader.unloadAndStop(); è ancora più potente e semplificato perchè in un'unica riga ti rimuove dalla memoria del FlashPlayer, il loader, eventuali istanze della classe Sound in esecuzione e tutti i listener contenuti nel filmato caricato.

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    spesso non funziona

    In AS2 non mi serve nemmeno stopAllSound per stoppare il suono in esecuzione sul swf figlio. Mi basta unloadMovieNum che carica un altro swf e tutto scompare dallo stage e dalla memoria.
    Il nuovo loader.unloadAndStop è per me un ritorno all'unloadMovieNum, ma purtroppo spesso non funziona. Ho scaricato dalla rete un esempio di una programmatrice che utilizza il comando nuovo inserito per la prima volta in CS4.
    Nel suo file, dove tutto è dinamico, perfino le forme presenti sullo stage, il comando funziona egregiamente.
    Se invece sullo stage hai dei pulsanti o dei movie il comando non funziona più e il Flash comunica che il comando non funziona con risorse static type.
    Io ci ho provato in più modi ma non ci sono riuscito a farlo funzionare nei miei movie.
    Addirittura sto riscrivendo il programma in AS2 perchè, come già detto, per quanto riguarda il load e l'unload dei file mi pare molto più semplice ed efficiente.
    Ma io non sono un programmatore esperto, parlo da dilettante :-)

  8. #8
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    ...Si hai ragione, con il loadMovieNum si stoppa anche un eventuale oggetto Sound in esecuzione.

    Ricordavo di aver avuto bisogno dello stopAllSound perchè passando su un altro frame un mp3 caricato su un frame precedente rimaneva in esecuzione.

    Il fatto è che la gestione dello stage con AS3 è completamente diversa e il controllo di tutto il filmato può essere fatto su un unico fotogramma con filmati esterni.
    A mio parere il tutto risulta più gestibile ed efficace e si evita di creare filmati intricatissimi con codice disseminato in movieClip, pulsanti o fotogrammi.

    Chi è abituato a AS2 tende a usare AS3 utilizzando le stesse logiche di programmazione e finisce col crearsi problemi che non esisterebbero se si usasse AS3 nel modo adeguato.

    ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    adesso no ...

    Nei miei primi lavorio con AS2 è vero : disseminavo il codice sui pulsanti, nei frame, nei mc. Alla fine se cercavi uno script per modificarlo era un casino.
    Poi sono passato a AS3. Onestamente ? Non mi piace. E' complicato, è inutilmente logorroico, è contorto, quando, ad esempio, Java è di una semplicità mostruosa in confronto. Per non dire del VB !!!
    Però con questo mio nuovo lavoro in Flash sto imparando una cosa bellissima : lavorare in AS2, ma con l'accortezza di AS3 di scrivere il codice solamente in un frame di un solo livello.
    Si può lavorare benissimo con AS2 e avere gli stessi risultati di pilizia e professionalità nello scripting che si hanno nell'AS3.
    Non dico che no ci fosse bisogno di AS3,... piuttosto mi pongo una domanda e vorrei porla sia alla Macromedia che alla Adobe : perchè inventare un linguaggio come Action Script quando c'era già Java ? In Flash si è sempre potuto usare anche Java, così come in Director : e allora quale necessità c'era di insistere su AS ?
    Misteri del marketing ?
    Fatto sta che se adesso Flah verrà mandato in pensione come sui dispositivi mobile, succede che avrò buttato a mare anni di studio e di lavoro.
    Chi invece ha sempre studiato e lavorato con Java si trova una ben altra eredità
    Ciauz

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Forse parli di javascript, non ho mai visto usare java su flash, e in realtà nemmeno javascript, seppur le prime versioni di as gli siano molto simili.
    Sicuramente le scelte di Adobe non sono state dettate esclusivamente da questioni tecniche, ma in ogni caso trovo che abbiano fatto un ottimo lavoro con AS3, l'hanno reso più simile ai linguaggi oop moderni abbandonando quella parte un po' più ludica che aveva comunque fatto il successo di una piattaforma. Hanno fatto la scelta di crescere verso un sistema integrato che rende possibile la creazione di applicazioni multipiattaforma con la conoscenza di un solo linguaggio.
    Tu dici che il flash player verrà presto abbandonato sul web oltre che sul mobile. Potrebbe essere ma prima che si possa affermare l'alternativa passeranno ancora diversi anni, considerato che il diretto concorrente della tecnologia shockwave sul web dovrebbe essere html5 che ancora non ha una specifica definitiva (annunciata per il 2014).
    In ogni caso Flash, o meglio actionscript, si presta a più utilizzi da non relegare prettamente al web. Tempo fa è nato AIR, con il quale posso in una sola volta creare applicazioni "desktop" per windows, mac, ios, android, cosa che prescinde il web anche dal lato mobile e che da la possibilità a chi conosce il linguaggio actionscript di non doverne imparare uno nuovo se si vogliono realizzare app per le piattaforme più diffuse.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.