Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    intermittenza alpha con action script

    ciao, qualcuno mi sà dire come potrei creare una intermittenza di un movie clip con l'alpha di questo tramite as? cioè vorrei che il movieclip abbassasse a 0 e alzasse a 100 la sua alpha in modo intermittente..
    quello che in pratica realizzerei se mettessi due keyframe in questo movieclip uno con alpha 100 e uno con alpha 0..

  2. #2
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    che idiota, mi bastava un ciclo:
    codice:
      for (i=0; i<100; i++) {
        this._alpha=this._alpha + i
    }
    però adesso ho un altro problema.. il movieclip si muove sempre tramite action script da un valore _x ad un altro valore x_ con una espressione di incremento.. io vorrei che finchè non arriva al valore _x predefinito, questa intermittenza non iniziasse.. ho provato con una semplice condizione.. ma poi non mi funziona lo spostamento..
    vi faccio vedere:
    codice:
    onClipEvent(load){
    speed = 4;
    this.x = -136;
    this.xscale=134
    }
    onClipEvent(enterFrame){
    	_x += (this.x - _x)/speed ;
    this._xscale=xscale
      
    if(this._x=this.x){
      for (i=0; i<100; i++) {
        this._alpha=this._alpha + i
      }
    }
    }

  3. #3
    codice:
    onClipEvent(load){
    speed = 4;
    this.x = -136;
    this.xscale=134
    }
    onClipEvent(enterFrame){
    	_x += (this.x - _x)/speed ;
    this._xscale=xscale
      
    if(this._x==this.x){
      for (i=0; i<100; i++) {
        this._alpha=this._alpha + i
      }
    }
    }
    era quello il problema?

  4. #4
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    bhè mi sà di si ma adesso non mi fà + l'intermittenza

  5. #5
    Beh, il codice che hai scritto te non è mica giusto (secondo me ).
    Per come funziona flash, al posto del ciclo for potresti scrivere solo
    this._alpha = 100;
    e l'effetto sarebbe lo stesso.
    Questo perché i cicli for in flash vengono eseguiti interamente prima di mostrare il risultato.
    Ma tu vuoi un effetto alpha intermittente o graduale?? Perché, anche ammesso che il for lavorasse come vuoi tu, non avresti comunque un'intermitenza ma una modificazione graduale da 0 a 100 per una sola volta. Ecco allora come puoi modificare il tuo script:
    codice:
    onClipEvent(load)
    {
       speed       = 4;
       this.x      = 136;
       this.xscale = 134;
       fall        = 1;
       alpha_speed = 3;
       i           = 0;
    }
    
    onClipEvent(enterFrame)
    {
       _x += (this.x - _x)/speed ;
       this._xscale = xscale;
      
       if(Math.abs(this._x - this.x) < 0.1)
       {
    	  i++;
          fall         = ((i % Math.round(100 / alpha_speed)) == 0) ? 1-fall : fall;
          this._alpha += (fall == 1) ? -alpha_speed : alpha_speed;
       }
    }

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.