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

    Problemi con ripetizione creazione mc

    Salve.. ho un problema con una ripetizione fastidiosa di creazione di un mc in modo dinamico, ed essendo alle prime armi non so cosa sbaglio:.

    Praticamente io ho un elevatore, ad una certa altezza yf si deve bloccare, caricare un carrello esterno all'altezza yf, eseguirlo e poi riiniziare la salita verso un altro yf..
    beh potrebbe essere anche il caso di un ascensore che scarica persone.. stessa cosa..

    il problema è che una volta che si ferma, mi crea infinite istanze del carrello esterno...

    dove sbaglio?? vi allego il codice ovviamente dell'unico frame della linea temporale principale: (ovviamente solo quello utile):

    codice:
     stop(); 
     i=0;
     altezze= new Array(400,300,200,100);
     numpiani=altezze.length;
    
     function muovicarrello(yf)
     { 
      _root.Elevatore.stop(); 
      var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
      mc.attachMovie("CarrelloExt","carrello",50, {_x: 0, _y: yf});  
     };
     
    this.onEnterFrame=function(){
     if ( (yf== altezze[i]) && (i < numpiani) ) {   muovicarrello(yf);   };
    i++;
    Elevatore.play();
    };
    Non è forte colui che non cade, ma è forte colui che quando cade ha la forza di rialzarsi (Jim Morrison)

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    non ho ben chiara la situazione, ma le infinite istanze si creano perchè richiami la funzione muovicarrello dentro un enterFrame che ripete le azioni contenute al suo interno in un tempo equivalente a quello di scorrimento del filmato

  3. #3
    esatto...

    ma come posso fare per farlo eseguire una sola volta??
    mettere delle variabili flag??
    Non è forte colui che non cade, ma è forte colui che quando cade ha la forza di rialzarsi (Jim Morrison)

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    in realtà non mi è chiaro il codice, perchè usando enterFrame le azioni si svolgerebbero troppo velocemente, almeno mi da quest'impressione e sempre che il codice sia tutto qui
    comunque tenterei di creare una "routine" richiamabile con un evento, del tipo "quando arriva al piano richiama questa funzione" ed in effetti forse l'unica è farlo dentro l'enterFrame, ma dovresti creare delle condizioni più "ferree" per farlo eseguire una sola volta

  5. #5
    si ci sono riuscito..
    c'è una variabile globale che viene impostata una volta eseguita l'operazione..

    risolto!

    grazie cmq della pazienza... pensavo che ci fosse un altra strada, ma aggiunstandola mi so accorto che era l'unica possibile.. lameno a quanto mi dici anche tu..
    Non è forte colui che non cade, ma è forte colui che quando cade ha la forza di rialzarsi (Jim Morrison)

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    magari l'unica possibile no, ma in caso di un'altra soluzione probabilmente sarebbe stato necessario ripensare completamente il codice
    diciamo che può essere l'unica soluzione in base al codice proposto

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.