Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    126

    ritorno al filmato principare da filmato CHILD in AS3

    buongiorno a tutti
    sono da poco passato ad AS3 per cui ho moltissimi dubbi circa il funzionamento
    per cui tornerò spesso a tediarvi

    il problema di oggi è il seguente:
    da un filmato principale carico un secondo filmato tramite un pulsante con il seguente codice

    arrivare.addEventListener(MouseEvent.CLICK, fl_ClickToLoadUnloadSWF_9);
    var arr:Loader;
    function fl_ClickToLoadUnloadSWF_9(event:MouseEvent):void
    {
    arr = new Loader();
    arr.load(new URLRequest("arrivareas3.swf"));
    addChild(arr);
    arr.x=200;
    }

    il filmato si carica senza nessun problema, però vorrei mettere nel filmato caricato un pulsante che mi permetta di "scaricare" il filmato per tornare a quello principale, una sorta di pulsante "home" per capirsi, a tal proposito ho messo nel filmato principale il seguente codice

    function resettaIndex(event:MouseEvent):void{
    removeChild(arr);
    }

    ho quindi tentato di richiamare la funzione tramite il pulsante "home" del secondo filmato
    con il seguente codice (mi sono ispirato da questo forum)

    home.addEventListener(MouseEvent.CLICK, chiudi);

    function chiudi(event:MouseEvent):void{
    var filmatoIndex:MovieClip = this.parent.parent as MovieClip
    filmatoIndex.resettaIndex();
    }

    purtroppo non ho ottenuto nulla
    come posso rimediare??
    grazie per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Utilizzando un approccio OOP potresti creare una classe statica che raccoglie delle variabili ed è poi utilizzabile nei vari filmati presenti nella tua raccolta. Nel tuo caso potresti creare la variabile "main" consapevole di poterla recuperare in maniera semplice da qualsiasi filmato che faccia parte del progetto.

    La classe andrà salvata nella stessa cartella dei due file swf, con lo stesso nome della classe ed estensione .as e avrà pressappoco questo aspetto:

    Codice PHP:
    package {
        
    dynamic public class Register {
            private static var 
    _instance:Register;
            private static var 
    _allowInstantiation:Boolean;
            public function 
    Register ():void {
                if (!
    _allowInstantiation) throw new Error("Class must be instantiated with Register.getInstance()");
            }
            public static function 
    getInstance ():Register {
                if (!
    _instance) {
                    
    _allowInstantiation true;
                    
    _instance = new Register();
                    
    _allowInstantiation false;
                }
                return 
    _instance;
            }
        }

    Nel tuo codice potrà essere richiamata in questo modo, ad esempio quando vogliamo assegnargli "main" dal filmato principale (per il tuo caso specifico converrà inserire in una variabile anche "arr":
    Codice PHP:
    Register.getInstance().main this;
    Register.getInstance().arr arr// dopo averlo creato 
    Per usarla nel filmato secondario all'interno del pulsante userai un "try...catch" per evitare di vedere errori a schermo:

    Codice PHP:
    home.addEventListener(MouseEvent.CLICKchiudi);

    function 
    chiudi(event:MouseEvent):void{
        try {
            
    MovieClip(Register.getInstance().main).removeChild(Register.getInstance().arr);
        } catch (
    err:Error) {
            
    trace(err);
        }

    Spero di essere stato abbastanza chiaro ed esaustivo.

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.