Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    106

    LoadMovie in un determinato frame

    Ciao a tutti. Ho un’esigenza particolare con il LoadMovie. Questa è la situazione:
    in uno dei tanti SWF che compongono il mio progetto è presente una lista; per semplificare poniamo che nella lista ci sono tre elementi (Oggetto1, Oggetto2 e Oggetto3 che poi sono tre pulsanti). Cliccando su Oggetto1carico in un clip vuoto un SWF esterno col metodo LoadMovie. L’SWF deve mostrarmi una clip contenente appunto l’Oggetto1. Nella stessa clip, in frame diversi si trovano anche le clip di Oggetto2 e Oggetto3. Vorrei che cliccando sui pulsanti Oggetto2 o Oggetto3 presenti nella lista venisse caricata la relativa clip spostandomi sulla linea temporale. La clip dell’Oggetto1 si trova al frame n. 10, quella dell’Oggetto2 al frame n. 20 ecc.
    Non sono molto pratico e ho provato associando al pulsante Oggetto1 questo codice:

    on (release) {clip_vuoto.loadMovie("mio_clip_esterno.swf", 10);
    }


    ... sperando che quel 10 mi porti al decimo frame dell’SWF esterno dove si trova la clip dell’Oggetto1 ma nulla da fare. Cosa posso fare?

    Sempre su questo caso vorrei sapere se l’SWF esterno che sto caricando mi carica tutti i clip contenuti all’interno. In realtà vorrei che caricasse di volta in volta solo quelli che l’utente decide di visualizzare. Gli oggetti in realtà sono più di tre… Ho scelto questa strada perché nell’ SWF esterno sono presenti i pulsanti “VAI AL SUCCESSIVO OGGETTO… VAI AL PRECEDENTE OGGETTO” che fanno spostare in avanti e indietro la linea temporale.

    Chi mi da una mano? Spero di essermi spiegato bene… Grazie in anticipo.

  2. #2
    l'istruzione loadMovie carica un filmato esterno (un altro .swf) dentro un movieclip presente sullo stage.

    Il caricamento è totale, per cui vengono caricati tutti i frames (naturalmente, se il filmato è piuttosto "pesante", andrà inserito anche un "preloading" per evitare comportamenti indesiderati)

    Una volta caricato, il filmato esterno è referenziabile tramite il nome istanza assegnato al movieclip che lo contiene: in questo modo lo si può "manipolare" esattamente come se fosse un movieclip "interno".

    P.es.:
    > movieclip "contenitore" di nome istanza "cont".
    > filmato esterno di nome "esterno.swf"
    > si carica con: cont.loadMovie("esterno.swf")
    > si "gestisce" con: cont.istruzioni

    per cui, per andare al frame n. 10 scriverai:
    cont.gotoAndPlay(10)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    106
    Ciao e grazie per la risposta. Non sono però ancora riuscito a spostare la linea temporale al frame 10. Ho associato al pulsante questo codice:

    on (release) {clip_vuoto.loadMovie("mio_clip_esterno.swf");
    }
    on (release) {clip_vuoto.gotoAndStop(10)
    }


    Sto pensando di rivedere il tutto creando un singolo SWF per ogni oggetto per evitare di appesantire la clip esterna. Secondo te è meglio in questo modo? Intendo, è possibile che nella clip esterna io mi carichi un SWF per ogni oggetto solo a richiesta dell'utente evitando cosi' di creare un'unica clip pesante? Ovviamente ogni singola clip avrebbe il suo preloader.
    Mi piacerebbe ad esempio poter cliccare sul pulsante Oggetto1, fare partire la clip esterna e fare in modo di caricare al suo interno (in un determinato frame appunto) solo la clip dell'Oggetto1. Se poi clicco sul pulsante VAI AL SUCCESSIVO OGGETTO vorrei che mi caricasse la clip dell'oggetto successivo (con il suo bel preloader). Come posso fare?
    Ah, dimenticavo. Tento e ritento ma non ci riesco. Vorrei che la clip esterna, prima di caricare al suo interno l'SWF relativo all'oggetto, facesse una piccola animazione di ingresso. Ma non riesco a fare convivere questo con lo spostamento della linea temporale a un determinato frame. HEEEEELP!
    Ciao e grazie in anticipo

  4. #4
    Originariamente inviato da luigiluigi
    Ho associato al pulsante questo codice:
    on (release) {clip_vuoto.loadMovie("mio_clip_esterno.swf");
    }
    on (release) {clip_vuoto.gotoAndStop(10)
    }
    Hai associato quelle istruzioni allo stesso pulsante?
    Allora è chiaro che NON VA.
    Le istruzioni da eseguire al verificarsi di un evento vanno raggruppate assieme.
    Inoltre NON puoi impartire, subito dopo aver lanciato il lodMovie, il goto perché per quanto piccolo il filmato esterno impiegherà sempre qualche istante in più del ciclo di memoria: così facendo il frame 10 NON è ancora disponibile e quindi il comando viene ignorato.
    Originariamente inviato da luigiluigi
    Sto pensando di rivedere il tutto creando un singolo SWF per ogni oggetto per evitare di appesantire la clip esterna. Secondo te è meglio in questo modo?
    Sì, è decisamente meglio.
    Originariamente inviato da luigiluigi
    Mi piacerebbe ad esempio poter cliccare sul pulsante Oggetto1, fare partire la clip esterna e fare in modo di caricare al suo interno (in un determinato frame appunto) solo la clip dell'Oggetto1. Se poi clicco sul pulsante VAI AL SUCCESSIVO OGGETTO vorrei che mi caricasse la clip dell'oggetto successivo (con il suo bel preloader). Come posso fare?
    Ricorda che il loadMovie "rimpiazza" completamente il contenuto di un movieclip, assumendone però le proprietà (dimensioni, colore, alpha ecc.)
    Molto semplicemente avrai:
    1) mc vuoto come contenitore
    2) "enne" filmati esterni (p.es. esterno1.swf, esterno2.swf ecc.)
    3) "enne" pulsanti per caricarli
    Originariamente inviato da luigiluigi
    Ah, dimenticavo. Tento e ritento ma non ci riesco. Vorrei che la clip esterna, prima di caricare al suo interno l'SWF relativo all'oggetto, facesse una piccola animazione di ingresso. Ma non riesco a fare convivere questo con lo spostamento della linea temporale a un determinato frame. HEEEEELP!
    Ciao e grazie in anticipo
    NON puoifare un'animazione al mc che funge da contenitore perché, come ti ho detto sopra, il load Movie "rimpiazza" il contenuto.
    Dovrai fare un altro mc che fa l'apertura e magari uno che fa la chiusura.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    106
    Grazie ancora per la risposta. Non mi è chiara ancora una cosa. Come faccio a lanciare la stessa animazione di ingresso indipendentemente dal pulsante che premo nel filmato principale? Tu dici di crearne un'animazione apposita per l'apertura. Ma poi come porto il filmato al frame desiderato dopo aver lanciato l'animazione d'ingresso? Boh, ammetto che la mia dimestichezza con Flash non sia ancora elevata... Chiedo venia
    E una volta partito il filmato esterno come mi regolo con il pulsante VAI ALL'OGGETTO SUCCESSIVO? Nel senso, faccio anche li un loadmovie o cosa? Ciao e grazie ancora per la pazienza.

  6. #6
    Provo a spiegarti la "ricetta" di come dovrebbe essere strutturato un filmato "main" che richiama altri filmati secondari.
    INGREDIENTI
    > Un filmato "principale"
    > "enne" filmati secondari, uno per ogni sezione, in questo modo la struttura "modulare" consente una nigliore, futura manutenzione e/o implementazione.

    > componenti essenziali del filmato principale:
    => uno o più pulsanti per il caricamento dei filmati secondari
    => un mc "vuoto" con funzione di contenitore (istanza: contenitore)
    => un mc con le animazioni di apertura/chiusura (che saranno sempre uguali per tutti i movie secondari (istanza: mcgo)
    => una variabile dove memorizzare il nome del filmato secondario in esecuzione ("filmato")
    => una funzione che "coordina" il tutto

    LOGICA
    Ipotizzo che la visualizzazione dei vari filmati esterni sia da fare in sequenza per cui necessito di soli due pulsanti: "AVANTI" e "INDIETRO".
    Il pulsante "INDIETRO", all'inizio, sarà ovviamente impostato come invisibile.
    ( istanzapulsante._visible = false; )
    La variabile di cui sopra viene impostata: filmato = "";
    Il movieclip con le animazioni di apertura/chiusura sarà strutturato così:
    (ipotizzo una semplice animazione di un rettangolo che si ingrandisce, in apertura e si chiude, in chiusura)
    - frame 1: (vuoto) stop();
    - frame 2: etichetta "apertura" con key-frame inizio motion-tween rettangolo
    - frame 16: fine motion-tween - stop();
    - frame 17: etichetta "chiusura" con key-frame inizio motion-tween rettangolo
    - frame 31: fine motion-tween - stop();
    I nomi dei filmati esterni saranno "progressivi" per comodità d'uso, tipo: obj01.swf, obj02.swf ecc. ecc.
    Al pulsante "AVANTI" associo un codice che INCREMENTA il nome del file da caricare
    Al pulsante "INDIETRO" associo un codice che DECREMENTA il nome del file da caricare
    Con il nome del nuovo file da caricare così impostato richiama la funzione di controllo.
    Ed ora il "cuore" di tutto, la funzione di controllo:
    se filmato == "" (è la prima volta)
    imposta la variabile filmato col nome del nuovo file
    carica il nuovo file
    richiama l'animazione di apertura
    altrimenti (in tutti gli altri casi ci sarà sempre un'animazione di chiusura)
    richiama l'animazione di chiusura
    una volta finita
    imposta la variabile filmato col nome del nuovo file
    carica il nuovo file
    richiama l'animazione di apertura

    questo è tutto, almeno credo...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    106
    Urgh! Grazie per la gustosa ricetta. Credo di aver capito il concetto ma non so se riesco a tradurre il tutto in action script...
    Dunque, nei pulsanti presenti nel filmato principale devo scrivere del codice che mi apra il "sotto-filmato" all'interno di una clip vuota. Fin qui ok, ma ad ogni pulsante, come faccio a fare apparire l'animazione d'ingresso del "sotto-filmato" (una specie di pop up, un rettangolo che si ingrandisce piano piano e che fa da "cornice" al sotto-filmato) e immediatamente dopo fare apparire il filmato relativo al pulsante cliccato prima?

    Quando clicco su uno dei pulsanti, qual'è il codice esatto da digitare per creare e valorizzare la variabile "filmato"?

    Se ho ben capito, il pulsante "AVANTI" (o INDIETRO) dovrebbe leggere la variabile "filmato" e al click caricare l'SWF che ha nome superiore a quello presente a video. Come faccio a ricavarmi il "valore" del filmato corrente e dirgli di caricare quello successivo?
    So che sono da sclero... Ma intanto grazie lo stesso

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.