Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458

    [Flash MX] - Scurisci i puntini

    Vorrei creare un giochino tipo "scurisci le zone con il puntino".
    Per ora ho creato il disegno e tutti i pezzetti, ma mi rimane il problema più grande: come gestire il click su ogni zona?
    Pensavo di trasformarle tutte in mc e poi gestire in un qualche modo (che non so) il click in modo dinamico. Quando clicco su mc(1) dovrebbe con una piccola dissolvenza impostare l'alpha di mc(1) su 0.
    Per la dissolvenza pensavo di mettere questo codice:

    setInterval(function(){mc1._alpha-=0.1},1);

    ma poi questo lo devo mettere in ogni mc? Si potrebbe fare, perchè le zone non sono molte...in ogni caso mi consigliate come procedere? A quale evento lo associo?

  2. #2
    senza averlo provato penso così:
    mettiamo hai vari movie clip tutti con alpha 0
    nel primo frame metti:
    Movieclip.prototype.vedi= function() {
    if(this._alpha<100){
    this._alpha+=10;
    }
    }

    e in tutti i movie:
    onClipEvent(enterFrame){
    if(this.hitTest(_root._xmouse, _root._ymouse,true)){
    vedi();
    }
    }

  3. #3
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458
    1) non ho capito un accidente
    2) io vorrei un metodo per non dover scrivere del codice in tutti i movieclip...non è possibile?

  4. #4
    ma infatti scrivi una funzione sul frame e poi richiami la funzione!

  5. #5
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458
    vabbè...ci provo...
    cmq anche nel tuo caso "metti" del codice nei mc

  6. #6
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458
    Effettivamente il tuo codice non è male, ma avrei bisogno di un paio di aiuti per fare in modo che:

    1) l'evento dev'essere il click, non il semplice passaggio con il mouse
    2) quando clicco, c'è la dissolvenza (l'alpha diminuisce nel mio caso perchè ho il disegno sotto e le caselle che lo coprono sopra)
    3) La dissolvenza si fermi ad alpha = 0 e non vada sottozero (semplicemente per non affaticare inutilmente il computer)
    4) Quando una casella viene scurita, dovrebbe esserci un incremento di una variabile che mi serve per verificare quando tutte le caselle sono annerite. Naturalmente l'incremento deve avvenire al click ma solo quando l'alpha è a 100, cioè prima della dissolvenza...

    Mi potresti aiutare a sviluppare la tua funzione in questo senso?
    Ci ho provato ma non non mi funziona....:

    nel mc :
    on (release){
    vedi();
    }

    Nella funzione:
    Movieclip.prototype.vedi= function() {
    if(this._alpha=100){
    setInterval(function(){this._alpha-=1},0.5);
    i = i+1
    }
    }

    l'incremento funziona ma la dissolvenza no...

  7. #7
    non credo che setInterval accetti numeri decimali come intervallo di tempo, e cmq 0.5 millesimi di secondo mi sembrano pochi :P

    prova a fare

    codice:
    Movieclip.prototype.vedi= function() { 
      if(this._alpha==100){ 
        ID = setInterval(function(){
          this._alpha--; 
          if (this._alpha<=0) {
             clearInterval(ID)
          }
        },20); 
        i = i+1 
      } 
    }
    In questo modo impiega circa 2 secondi (2000 millisecondi) per portare l'alpha da 100 a 0.
    In oltre una volta che l'alpha è minore o uguale a 0 viene cancellato il setInterval ... cosi risparmi risorse della cpu

    ps: negli if devi usare il doppio uguale (==) per il confrondo, quello singolo (=) serve solo per l'assegnazione dei valori

  8. #8
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458
    devo stare più attento quando leggo i manuali :-D
    Cmq non funziona...cioè l'incremento si, ma l'alpha no...
    ho provato con trace(this._alpha) e mi restituisce sempre 100..

    In ogni caso setInterval mi pare funzionasse con 0.5 come parametro

  9. #9
    prova con

    this._alpha -= 1

    anziche

    this._alpha--

  10. #10
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458
    Non era quello il problema...era che la funzione "setInterval" non accettava "this." (non so perchè) ma funzionava invece con il nome dell'istanza. Quindi adesso passo il nome dell'istanza come parametro nella funzione vedi e funziona.
    In ogni caso il clear non funziona, forse perchè è dentro l'ID stesso...
    Dici che è un problema? Tanto non dovrebbe essere molto "faticoso" per la cpu...

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.