Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Livelli e AS3

  1. #1

    Livelli e AS3


    Ho una serie di swf che vengono caricati dentro 1 swf principale, il loro caricamento viene fatto da questo script
    codice:
    try {
    	var _root:MovieClip = MovieClip(this["parent"]["parent"]["parent"]);
    //swf del menu che deve essere caricato
    	_root["m"].addChildAt(new Loader(), 0);
    	_root["m"].getChildAt(0).load(new URLRequest("menu.swf"));
    //swf dei contenuto che deve essere caricato
    	_root["cont"].addChildAt(new Loader(), 0);
    	_root["cont"].getChildAt(0).load(new URLRequest("contenuto.swf"));
    	
    	} catch (err:Error) {
    	trace (err);
    }
    lo script di per se funziona.... solo che una volta caricati i primi 2 non so poi come "scaricarli" per poi caricarne altri 2
    --------------------------------
    sperando di essere stato chiaro

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Senza scaricarli, basta che lanci solo la riga:

    _root["m"].getChildAt(0).load(new URLRequest("menu.swf"));

    cambiando il nome del file da caricare.

    Mentre se li vuoi scaricare puoi usare la funzione unload()

    root["m"].getChildAt(0).unload();

  3. #3
    ...ciao And80 ...mi hai salvato 1 volta, lo stai per fare una seconda...
    Il sito è sempre quello :P

    ora mi trovo ad avere i pulsanti che devono caricare alcuni swf sempre al livello zero..

    Inizialmente c'è questo codice che carica N swf
    codice:
    try {
    	var _root:MovieClip = MovieClip(this["parent"]["parent"]["parent"]);
    	_root["s"].addChildAt(new Loader(), 0);
    	_root["s"].getChildAt(0).load(new URLRequest("si.swf"));
    	
    	_root["f"].addChildAt(new Loader(), 0);
    	_root["f"].getChildAt(0).load(new URLRequest("fi.swf"));
    	
    	_root["l"].addChildAt(new Loader(), 0);
    	_root["l"].getChildAt(0).load(new URLRequest("li.swf"));
    	
    	_root["m"].addChildAt(new Loader(), 0);
    	_root["m"].getChildAt(0).load(new URLRequest("mhomei.swf"));
    	
    	_root["cont"].addChildAt(new Loader(), 0);
    	_root["cont"].getChildAt(0).load(new URLRequest("homei.swf"));
    	
    	_root["mf"].addChildAt(new Loader(), 0);
    	_root["mf"].getChildAt(0).load(new URLRequest("mfi.swf"));
    
    } catch (err:Error) {
    	trace (err);
    }
    stop ();

    poi ho un pulsante con questo scrip
    codice:
    try {
    	var _root:MovieClip = MovieClip(this["parent"]["parent"]["parent"]);
    //swf del menu che deve essere caricato
    	_root["m"].addChildAt(new Loader(), 0);
    	_root["m"].getChildAt(0).load(new URLRequest("menu.swf"));
    //swf dei contenuto che deve essere caricato
    	_root["cont"].addChildAt(new Loader(), 0);
    	_root["cont"].getChildAt(0).load(new URLRequest("contenuto.swf"));
    	
    	} catch (err:Error) {
    	trace (err);
    }
    ora... i 2 swf vengono caricati...ma vengono caricati sotto a quelli caricati precedentemente...

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Se non sbaglio, facendo un addChildAt in un determinato livello, non vai a sostituire l'oggetto che si trova in quel livello, lo fai semplicemente scalare di posto. Nel tuo caso non hai nessuna necessità di aggiungere un altro loader, basta quello che c'è

    try {
    _root["m"].getChildAt(0).load(new URLRequest("menu.swf"));
    _root["cont"].getChildAt(0).load(new URLRequest("contenuto.swf"));
    } catch (err:Error) {
    trace (err);
    }


    Ho tolto anche la dichiarazione di _root, perchè arrivato a quel punto dovrebbe già essere dichiarata, quindi utilizzabile senza ridichiararla. Ovviamente è fondamentale che i percorsi siano rispettati come in origine, altrimenti non funziona nulla.

  5. #5
    Grazie And
    ho capito...tu dirai ...meno male...

    Ora ...mamma mia la storia infinita...quando maiiii....

    keyframe 1
    play();

    keyframe 15 pulsante sullo stage
    codice:
    pv1.addEventListener(MouseEvent.CLICK, clickHandler);
    function clickHandler (evt:MouseEvent) {
    	this.gotoAndPlay("HOME");
    }
    
    stop();
    keyframe 16 (HOME)
    codice:
    stop();
    try {
    _root["m"].getChildAt(0).load(new URLRequest("a.swf"));
    _root["cont"].getChildAt(0).load(new URLRequest("b.swf"));
    } catch (err:Error) {
    trace (err);
    }
    ..perchè non rispetta lo stop sul keyframe 15 :berto: ?

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non saprei, prova a mettere lo stop come prima riga

  7. #7
    Ho provato...
    http://www.nextou.it/mhomei.zip

    scusa And è che sono 2 settimane che sono fermo a sta cosa e non ne posso +!!!


  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    C'è un'azione su un pulsante che devi togliere, in più se fai "gotoAndPlay mandi in loop il filmato e si ripete daccapo.
    Voglio sperare che non ci sia un filmato esterno per ogni pulsante del menù...

  9. #9
    purtroppo la struttura è fatta tutta così ...caricamenti vari di swf ....

    ma quale azione devo togliere?

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ti ho spedito il file modificato. L'azione è quella che sta sul pulsante e che tu hai commentato, non va commentata, va tolta proprio, e anche lì tra l'altro c'è uno stop che sballa il parser. Poi ho cambiato gotoAndPlay in gotoAndStop e ho messo tutto il codice in un solo frame, che è meglio :quattrocchi:

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.