Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Gestione filmati esterni e SetProperty

    La situazione: c'è una root con dei pulsanti che caricano delle sottosezioni tramite LoadMovieNum(1). Alcune di queste sezioni nascondono i pulsanti per accedere alle altre e per chiuderle c'è un pulsante apposito, ma altre sono caricate sopra la scena principale e quindi non nascondono i pulsanti [per cui è possibile che un utente clicchi sui pulsanti proprio quando questa sezione è aperta].

    Ora, a me serve che:

    1- quando, dalla filmato esterno che non nasconde i pulsanti, si clicca su un pulsante, questo filmato esterno esegua una animazione "di smontaggio" e si unloadi.

    2- quando apro questo filmato esterno, un movieclip della root diventi invisibile, e che diventi visibile quando questo filmato viene unloadato.

    E' possibile? spero di aver spiegato bene la situation, non è facile

    Ciao!

  2. #2
    Per disattivare un pulsante in MX ci dovrebbe essere un comando apposta, in Flash 5 (quello che uso io) ciò si può ottenere rendendo invisibile il pulsante stesso (che quindi deve essere incluso in un mc).
    Per rendere invisibile un mc si imposta la proprietà _visible a true oppure a false

    Nel tuo caso direi che potresti fare così:
    on (release) {
    loadMovienum("filmato.swf",1);
    this._visible = false;
    }

    e nel filmato, prima di scaricarlo:
    _root.mcpulsante._visible = true;
    unloadMovie
    ecc. ecc.

  3. #3
    ma a me non interessa rendere invisibile i pulsanti :P

    mi interessa che quando si clicca sugli altri pulsanti il filmato esterno esegua una animazione prima di unloadarsi e che quando c'è aperto questo filmato un mc della root scompaia [è una animazione che disturberebbe la lettura]

    ciao e scusa se non avessi capito bene

  4. #4
    Dico quello che mi viene in mente così "al volo", poi bisognerà provarlo...
    Allora:

    1) Mettiamo che hai 3 pulsanti (sul movie principale), ognuno dei quali controlla un filmato secondario.
    2) E' in esecuzione il filmato 2
    3) Viene premuto il pulsante 1
    4) Il filmato 2 deve chiudersi, ma non bruscamente, bensì facendo una piccola animazione di "chiusura".
    5) Poi, naturalmente si avvierà il filmato n.1

    Allora, direi che ti serve una variabile (sulla _root) che potremmo chiamare mc_corrente dove memorizzare il numero del filmato secondario attualmente attivo (oppure il nome, concettualmente fa lo stesso).

    Quando si preme uno qualsiasi dei pulsanti bisognerà fare questi "test":

    1) Il pulsante premuto è uguale a mc_corrente?
    2) se SI' non si fa nulla, perché significa che si è premuto il tasto corrispondente al filmato che è attualmente in riproduzione.
    3) se NO allora occorre:
    a) mandare il filmato secondario alla fase di "chiusura"
    b) memorizzare in mc_corrente il nuovo identificativo del filmato richiesto
    c) caricare detto filmato

    Il tutto potrebbe essere fatto con una function in maniera tale che il codice lo scrivi una volta sola e andrà bene per tutti i tuoi pulsanti.

    Spero di esser stato chiaro,

  5. #5
    ok, ho capito più o meno, ma come lo si realizza?

    attualmente funziona così:
    quando si clicca su un pulsante

    on (release) {
    salta="media"; //nome del filmato esterno
    gotoAndPlay(120); //porta allo smontaggio della root
    }

    alla fine dello smontaggio della root

    filmato = salta + ".swf" // costruisco il nome del file col valore della variabile
    loadMovieNum(filmato,1); // carico il file
    stop();

    [come mi avevi detto tu ieri ]

    Ah, poi se riesci a suggerirmi qualcosa per nascondere quell'mc...


    Grazie ancora e scusami tantissimo per il disturbo

  6. #6
    Ah, dimenticavo l'mc da rendere invisibile...

    mettiamo che l'istanza di detto mc si chiami uffachepalle :gren:

    Allora all'inizio di ogni file esterno metterai:
    codice:
    _root.uffachepalle._visible = false;
    Oppure lo metti nel filmato principale dopo l'istruzione loadMovieNum
    tale e quale.
    :bubu:

  7. #7
    per maggiori info guarda il mio post precedente [abbiam postato insieme, non so se l'hai visto]

    lo script per far scomparire il mc non funziona O_O

  8. #8
    rettifica, il codice se dato dal filmato principale funziona, ma da quelli esterni no. Forse è il _root che è sbagliato?

    boh...

  9. #9
    Ah, OK
    allora non dovrebbe servire la function, basta implementare il codice già scritto, ci provo "al volo

    Bisogna però considerare anche il caso in cui si preme un tasto mentre non è attivo nessun filmato secondario.
    codice:
    if (mc_corrente != salta) { se filmato diverso
        if (mc_corrente == "") { nessun movie attivo
            filmato = salta + ".swf" // 
            loadMovieNum(filmato,1); // carico il file
            mc_corrente = salta; 
            stop();
        } else {    // c'è un movie attivo
            mc_corrente = salta; 
            _level1.gotoAndPlay("chiusura");
        }
    }
    A questo punto mi manca un'informazione, qual è il punto a cui indirizzi il filmato dopo aver "smontato" un movie secondario?

    Facciamo finta che si chiami "restart".
    Bene, qui dovrai fare il caricamento che prima facevi sopra (questo nel caso di un filmato già attivo)
    Qui ti tornerà utile nuovamente la nuova variabile:

    codice:
    if (mc_corrente != "") { c'era un film attivo
            filmato = mc_corrente+ ".swf"  
            loadMovieNum(filmato,1); // carico il file
            stop();
    }
    prova

  10. #10
    Originariamente inviato da Aries Shion
    rettifica, il codice se dato dal filmato principale funziona, ma da quelli esterni no. Forse è il _root che è sbagliato?

    boh...
    Forse, essendo caricati su un livello, occorreva mettere _level0 al posto di _root

    Però basta che funzioni quello dal movie principale.

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.