Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195

    [AS3] mandare in play SWF esterno

    Salve.

    Non capisco proprio perchè non mi riesce di mandare in play un swf caricato all'interno di un container, ma devo mandarlo in play in un secondo momento.
    Mi spiego meglio:

    1 - Carico l'SWF e va in play fino ad uno STOP()
    2 - al click di un btn nello stage devo riuscire a mandare dinuovo in play l'SWF caricato

    Ecco lo script:
    "prova" è un oggetto MovieClip all'interno dello Stage
    al click di un altro oggetto richiamo playMyMovieExit();
    var movLoad:Number = 1;//swf da caricare
    loadMyMovie(movLoad);
    function loadMyMovie(movLoad){
    prova.removeChildAt(0);
    var requestUrl:URLRequest = new URLRequest("sezioni/swf" + movLoad + ".swf");
    var loaderMovie:Loader = new Loader()
    loaderMovie.load(requestUrl);
    prova.addChild(loaderMovie);
    }

    function playMyMovieExit(){
    prova..loaderMovie.gotoAndPlay("close");
    }
    Ma non capisco effettivamente come richiamare l'oggetto caricato in "prova"

    Grazie

    P.S. ottime potenzialità AS3, ma il tempo che ci si perde!
    mamma mia che bestia

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    il loader in as3 funge solo da contenitore, per accedere al contenuto, una volta che questo è stato caricato (Event.INIT) bisogna richiamare la proprietà del loader "content", in questo modo si accede direttamente all'oggetto che è una rappresentazione della timeline del file esterno, perciò:

    function playMyMovieExit(){
    loaderMovie.content.gotoAndPlay("close");
    }

    ah, la funzione non riconoscerà l'esistenza di loaderMovie, perchè si trova creato in un'altra funzione e il runtime non riesce a individuarlo, perciò ti conviene scrivere la funzione con un parametro "target" da usare al posto di loaderMovie, poi al richiamo della funzione gli passi loaderMovie

    function playMyMovieExit(target:Loader){
    target.content.gotoAndPlay("close");
    }
    // richiamo:
    playMyMovieExit(loaderMovie);

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    ...dunque se sta dentro a prova
    dovrei fare nella funzione

    function playMyMovie(target:Loader){
    prova[target.content].gotoAndPlay("close");
    }

    playMyMovie(loaderMovie);
    mi da errore: 1120: Accesso alla proprietà non definita loaderMovie

    potrei creare la variabile loaderMovie:Loader fuori dalla prima funzione di caricamento in modo che sia disponibile anche per le altre funzioni giusto?

    Codice PHP:
    var loaderMovie:Loader = new Loader();
    function 
    loadMyMovie(movLoad){
      var 
    request:URLRequest = new URLRequest("sezioni/swf" movLoad ".swf");
      
    prova.removeChildAt(0);
      
    loaderMovie.load(request);
      
    prova.addChild(loaderMovie);
    }
    loadMyMovie(1);

    function 
    playMyMovieExit(target:Loader){
      
    //non sò la se la sintassi è giusta_________
      
    prova[target.content].gotoAndPlay("close");
    }
    playMyMovieExit(loaderMovie); 
    Eppur "non" si muove
    Non funziona errore: 1061: Chiamata a un metodo non definito gotoAndPlay mediante un riferimento con tipo statico flash.displayisplayObject.

    Grazie
    mamma mia che bestia

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    no, l'accesso agli oggetti non avviene come in AS2, se fai "prova.loaderMovie" stai cercando di accedere ad un'istanza che non esiste, perchè "loaderMovie" non è stato creato dentro "prova", è stato aggiunto nella sua "display list" attraverso il metodo "addChild", ma come istanza appartiene alla timeline principale, mentre è una buona idea quella di creare l'oggetto fuori dalla prima funzione, in questo modo avrai l'oggetto disponibile in tutte le funzioni e si annullerebbe il discorso di prima, con il parametro da passare alla funzione

    io il tuo codice lo vedrei così:

    Codice PHP:
    var loaderMovie:Loader = new Loader();
    var 
    request:URLRequest = new URLRequest();
    prova.addChild (loaderMovie);
    function 
    loadMyMovie (movLoad) {
        
    request.url "sezioni/swf" movLoad ".swf";
        
    loaderMovie.load (request);
    }
    function 
    playMyMovieExit () {
        var 
    cont:MovieClip loaderMovie.content as MovieClip;
        
    cont.gotoAndPlay ("close");
    }
    loadMyMovie (1); 

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    Dato che comunque le funzioni controllano il caricamento e l'eventuale unload in movimento di SWF diversi secondo la scelta dell'utente, dovrei aver risolto così
    Credo però che sia una soluzione un pochino spartana o magari no

    Codice PHP:
    var loaderMovie:Loader = new Loader();
    var 
    loaderMovieContent:LoaderInfo = new LoaderInfo;
    function 
    loadMyMovie(movLoad){
        var 
    request:URLRequest = new URLRequest("sezioni/swf" movLoad ".swf");
        
    prova.removeChildAt(0);
        
    loaderMovie.load(request);
        
    loaderMovieContent loaderMovie.contentLoaderInfo;
        
    prova.addChild(loaderMovie);
    }
    loadMyMovie(1);//1, 2, 3, 4 etccc......
    function playMyMovie(){
        var 
    ciccio loaderMovieContent.content;
        
    ciccio.gotoAndPlay("close");
    }
    playMyMovie(); 
    Vedo che anche tu hai trovato la soluzione.
    Grazie per l'interessamento and80 come sempre

    :berto:
    mamma mia che bestia

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    la funzione non ti da un warning sul gotoAndPlay? a me se non lo dichiaro come movieclip, lo da...

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    ora devo staccare, ma provo a vedere e domani ti dico.

    Grazie and80
    mamma mia che bestia

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.