Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    rimuovere swf quando carichi quello nuovo

    Buon 2011 a tutti
    grazie a questo forum sono riuscito a realizzare un menù che mi richiama degli swf esterni
    questa è l'azione per richiamare home.swf
    codice:
    var loader1:Loader = new Loader(); 
    bt_home.addEventListener(MouseEvent.CLICK, onClick1);  
    function onClick1(event:MouseEvent) {	 	
    loader1.load(new URLRequest("home/home.swf"))  	
    } 
    addChild(loader1) 
    loader1.x=0 
    loader1:y=0
    questa è l'azione per richiamare filosofia.swf
    codice:
    var loader2:Loader = new Loader(); 
    bt_filosofia.addEventListener(MouseEvent.CLICK, onClick2);  
    function onClick2(event:MouseEvent) {	 	
    loader2.load(new URLRequest("filosofia/filosofia.swf"))  	
    } 
    addChild(loader2) 
    loader2.x=0 
    loader2:y=0
    e così via per gli altri bottoni.

    il problema che non mi chiude l'swf chiamato in precedenza.

    Esempio:
    Se clicco sul prottone filosofia si apre l'swf filosofia, ma quando clicco sul bottone home si apre home.swf ma si sovrappone a filosofia.swf.

    Dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    removeChild(loader1)
    loader1=null
    PS non credo ci sia bisogno di caricare ogni swf in un loader diverso se usi un unico loader per tutti gli swf non c'è bisogno di rimuoverli almeno che non abbiano suoni.

  3. #3
    così facendo opo aver aperto cliccato su filosofia che contiene
    removeChild(loader1)
    loader1=null

    non mi apre più home

  4. #4

    Re: rimuovere swf quando carichi quello nuovo

    ciao franco il mio consiglio è quello di non usare tanti loader quanti sono i tuoi filmati ma di usarne solo uno e prendere il suo contenuto in questo modo risparmi molte risorse che nel tuo caso sono superflue.
    inoltre ti consiglio di inserire i tuoi swf esterni in un clip contenitore e non direttamente sullo stage.

    ecco un modo più agevole e con spreco di meno risorse per fare la stessa cosa che fai tu e in questo modo eviteresti anche di fare tanti controlli if per verificare quanti figli sono presenti nel momento che fai il loader sulla displaylist.

    ecco una soluzione che ti consiglio:

    Codice PHP:
    //dichiari un array che conterrà tutti i nomi dei tuoi file swf
    private var sezioni_array:Array=new Array("home.swf","filosofia.swf","pippo.swf","pluto.swf","paperino.swf");
    //dichiari un movieclip contenitore io lo istanzio qui direttamente ma ti suggerisco di istanziarlo
    //nel costuttore
    private var vuoto_mc:MovieClip=new MovieClip();
    //dichiaro una variabile di tipo int che mi servirà per il carico del relativo swf

    // aggiungi gli ascoltatori ai tuoi bottoni

    bt_home.addEventListener(MouseEvent.CLICKsettaId1); 
    bt_filosofia.addEventListener(MouseEvent.CLICKsettaId2); 
    bt_pippo.addEventListener(MouseEvent.CLICKsettaId3); 
    bt_pluto.addEventListener(MouseEvent.CLICKsettaId4); 
    bt_paperinoaddEventListener(MouseEvent.CLICKsettaId5); 

    //ti crei le funzioni che setta un id in base al bottone premuto questa parte potrebbe essere 

    //ulteriormente semplificata solo che non conosco il tuo livello di actionscript quindi cerco di 

    //mantenermi nel più semplice possibile

    private function settaId1(evento:MouseEvent):void{
    id=0;
    caricaSWF(id);
    }

    private function 
    settaId2(evento:MouseEvent):void{
    id=1;
    caricaSWF(id);
    }

    private function 
    settaId3(evento:MouseEvent):void{
    id=2;
    caricaSWF(id);
    }

    private function 
    settaId4(evento:MouseEvent):void{
    id=3;
    caricaSWF(id);
    }
    private function 
    settaId5(evento:MouseEvent):void{
    id=4;
    caricaSWF(id);
    }

    //adesso dichiari la funzione per il caricamento
    private function caricaSWF(id:int):void
            
    {
            
    //qui controlli se il tuo contenitore ha figli    
                    
    if(vuoto_mc.numChildren>0)
                {
                    
                                    var 
    swf:*=vuoto_mc.getChildAt(0);
                                    
    //se ha figli lo rimuovi
                    
    removeChild(swf);
                }
                
                var 
    richiesta:URLRequest=new URLRequest(sezioni_array[id]);
                var 
    caricatore:Loader=new Loader();
                               
    caricatore.contentLoaderInfo.addEventListener(Event.COMPLETE,SWFcaricato);
                
    caricatore.load(richiesta);
            }
            
            private function 
    SWFcaricato(evento:Event):void
            
    {
                
                var 
    swf:*=evento.target.loader.content;
                
    vuoto_mc.addChild(swf);
            } 
    ciao
    www.splashcode.it il blog dedicato ad ogni Web-Master

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    allora la procedura corretta è che dichiari una sola volta il loader e carichi tutti gli swf in un solo loader.
    codice:
    var loader:Loader = new Loader(); 
    bt_home.addEventListener(MouseEvent.CLICK, onClick1);  
    function onClick1(event:MouseEvent) {	 	
    loader.load(new URLRequest("home/home.swf"))  	
    } 
    bt_filosofia.addEventListener(MouseEvent.CLICK, onClick2);  
    function onClick(event:MouseEvent) {	 	
    loader.load(new URLRequest("filosofia/filosofia.swf"))  	
    } 
    
    addChild(loader) 
    loader1.x=0 
    loader1:y=0

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Ecco come dice Mircodj, sicuramente più professionale anche se meno intuitivo per chi sta iniziando.

  7. #7
    purtroppo, per mia incapacità, non sono riuscito a capirci niente.
    Se volete provare a vedere il mio esempio zippato e farmi un esempio ve ne sarei grato.

    www.franco12345678.altervista.org/franco.zip

  8. #8
    ciao franco qui c'è un esempio usando un solo loader in base al tuo progetto
    download
    fammi sapere se è tutto ok.
    Ps: controlla idee che sembra non funzionare
    www.splashcode.it il blog dedicato ad ogni Web-Master

  9. #9
    Grazie
    funziona l'sws ma, purtroppo, quando cerco di aprire il file flash mi dice (formato di file imprevisto) e non riesco ad aprirlo per vedere l'esempio.

  10. #10
    credo che tu hai la versione cs4 di flash io l'ho modificato con la cs5.
    cmq prova ora a scaricare ho sostituito il file ciao
    www.splashcode.it il blog dedicato ad ogni Web-Master

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 © 2025 vBulletin Solutions, Inc. All rights reserved.