Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [MX2004] controllo mc in esecuzione

    bonne soire,
    allora: ho un menu che al clic di ogni pulsante mi deve far partire un mc (diverso a seconda del pulsante) che contiene il nome della sezione del sito.

    avevo intensione di istanziare gli mc con prefissi o suffissi uguali (tipo: camere_mc, bilocali_mc ....)

    gli mc hanno un movimento in entrata, uno stop al fotogramma 20, e dal fotogramma 21 un movimento di uscita.


    vorrei fare una cosa del tipo:

    if(controllo se un mc qualsiasi è già in esecuzione)
    se è in esecuzione vado al frame 21 del mc qualunque e chiudo
    dopo la chiusura mando in play l'mc della sezione cliccata

    else(mando in play il frame 1 del mc della sezione cliccata



    come posso fare per eseguire questa verifica?

    denghiù
    L'uovo ha una forma perfetta anche se è fatto con il culo :-)

  2. #2
    DOvresti mettere una marei di if() per controllare se un clip esiste, e poi controllare se quel clip si trova prima del frame 20. Secondo me fai prima a mettere il play al frame 21 per tutti i clip, tranne quello che ti serve. Se il clip è in esecuzione ti va al frame 21 e poi sparisce, se invece non è in esecuzione, ma invisibile, ti fa l'operazione, ma non lo vedi

  3. #3
    Veramente a me pare più semplice di come la fa jack

    Supponiamo che tu hai 5 movieclip.
    Metti i loro nomi in un array

    mcs = ["camere_mc","bilocali_mc","reggie_mc","castelli_mc ","cantine_mc" ]

    Con un ciclo "for" puoi controllare quale di loro è in esecuzione. Devi trovare la condizione migliore per capire se è in esecuzione: supponiamo che tale condizione sia il fatto che il movieclip non si trovi al frame 1

    for(k=0;k<mcs.length;k++){
    if(_root[k]._currentframe != 1){
    // è in esecuzione
    _root[k].gotoAndPlay(21)
    _root[k].onEnterFrame = function(){
    if(this._currentframe == this._totalframes){
    this.gotoAndStop(1)
    _root[altroclip].gotoAndPlay(1)
    delete this.onEnterFrame
    }
    }
    break
    }
    }

    "altroclip" puoi determinarlo ad esempio al click dell'utente

  4. #4
    ciao, mi sa che non mi sono sppiegato molto bene

    allora, il controllo devo farlo non su un solo movieclip e poi mandare in play uno dei tanti altri mc. praticamente succede questo:

    - ho un menu con 19 voci.

    - ho altrettanti clip che contengono l'animazione in entrata (fino al 20 dove c'è lo atop) e in uscita (dal 21 al 30) del testo che dal nome alla sezione del sito (i numeri dei fotogrammi si intendono sul singolo mc e non sulla root) e che hanno istanza con suffisso uguale (home_mc , camere_mc , monolocali_mc ....)

    - al caricamento del filmato non c'è nessun mc in play; gli mc partono eclusivamente quando si premono i pulsanti.

    - gli mc credo di metterli tutti sullo stesso livello con visible=false; al click il singolo mc diventa visible=true (nell'ultimo fotogramma dell'azione di uscita dei mc metto un visible=false)


    Quindi il controllo devo farlo su un livello predefinito, ma su un istanza generica ( visto che non posso sapere a priori se è in esecuzione un mc o un altro).
    Credo sia logico utilizzare if(condizione)azione else(azione)
    ma non so come fare il tutto.
    Ho bisogno di un comnado (al momento del click di ogni pulsante)che mi controlli se sul livello in questione c'è in play un mc. In caso di play, deve mandare questo mc al suo fotogramma 21 per riprodurre l'animazione di uscita; successivamente, finita l'uscita deve dare il visible=true al mc della sezione cliccata e mandarlo in play.


    Spero di essermi spiegato un pò meglio, purtroppo è facile da pensare ma non da spiegare
    L'uovo ha una forma perfetta anche se è fatto con il culo :-)

  5. #5
    Broly, ora provo il tuo sistema.
    Non avevo visto il tuo post perchè ero impegnato a rispondere all'altro.
    L'uovo ha una forma perfetta anche se è fatto con il culo :-)

  6. #6
    Appunto, il codice che ti ho detto fa esattamente quello , nell'esempio ho scritto slo "5 movieclip" per non dovermi inventare troppo nomi per l'array

    Edit: ho letto ora il tuo secondo post, come non detto

  7. #7
    Ho dato un'occhiata allo script, ma il tutto è riferito sempre alla timeline principale. come puoi vedere dal mio post, il tutto deve essere riferito prima alla timeline del singolo mc già in esecuzione, poi alla timeline dell mc che deve andare in play dopo l'uscita del precedente.

    secondo te conviene utilizzare un array o una variabile String che va unita al suffisso _mc?

    cioè, potrebbe essere utile utilizzare creare una variabile xxx e richiamarla all'interno dell'azione di controllo xxx + "_mc"?
    L'uovo ha una forma perfetta anche se è fatto con il culo :-)

  8. #8
    Originariamente inviato da Baldux
    Ho dato un'occhiata allo script, ma il tutto è riferito sempre alla timeline principale. come puoi vedere dal mio post, il tutto deve essere riferito prima alla timeline del singolo mc già in esecuzione, poi alla timeline dell mc che deve andare in play dopo l'uscita del precedente.
    Hai visto male allora :rollo:
    Lo script va sulla timeline principale, ma il controllo lo fa sulla timeline del livello

    if(_root[k]._currentframe != 1){

    non si riferisce mica alla timeline principale

  9. #9
    il tuo script va messo nel 1 fotogramma della _root ? o sbaglio?

    il valore altroclip come lo inserisco da uno dei pulsanti contenuti nel clip menu?
    L'uovo ha una forma perfetta anche se è fatto con il culo :-)

  10. #10
    Sì, puoi inserirlo nel primo fotogramma della timeline principale.

    Altroclip puoi associarlo anche a tutti i movieclip del menu così (sempre basandoti sull'array contenente i nomi), tra l'altro ho visto ora che nel primo codice avevo dimenticato una cosa, qui c'è quello corretto con l'aggiunta dell'assegnazione dell'onRelease ai pulsanti

    mcs = ["camere_mc","bilocali_mc","reggie_mc","castelli_mc ","cantine_mc" ]

    for(n=0;n<mcs.length;n++){
    _root[mcs[n]].onRelease = function(){
    _root.altroclip = this._name
    }
    }

    for(k=0;k<mcs.length;k++){
    if(_root[mcs[k]]._currentframe != 1){
    // è in esecuzione
    _root[mcs[k]].gotoAndPlay(21)
    _root[mcs[k]].onEnterFrame = function(){
    if(this._currentframe == this._totalframes){
    this.gotoAndStop(1)
    _root[altroclip].gotoAndPlay(1)
    delete this.onEnterFrame
    }
    }
    break
    }
    }

    Considera che ovviamente il secondo ciclo andrà inserito all'interno ad esempio di una funzione, dato che è un ciclo che esegue il controllo sui vari movieclip e quindi va richiamato solo in determinate situazioni

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.