Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272

    Assegnare nome sequenziale a variabili in ciclo for

    Ho un paio di problemini...
    Innanzitutto descrivo il caso: ho tre movie clip sullo stage, vorrei farli "lampeggiare" per 5-6 secondi portando la proprietà alpha da alternativamente da 100 a 10 e viceversa. Trascorso questo tempo vorrei arrestare il lampeggio quando la proprietà alpha è su 100.
    Per farli lampeggiare adopero la classe Tween.
    Primo problema in un ciclo come quello sotto non so come nominare in modo sequenziale (tw0, tw1, tw2) le variabili (come ho fatto per obj). Mi serve perché poi per ciascuna devo dare il comando di stop

    codice:
    for(i = 0; i <= 2; i++)  {
    	tw = new mx.transitions.Tween(_root["obj"+i], "_alpha", mx.transitions.easing.None.easeNone, 100, 10, 15, false);
    	tw.onMotionFinished = tw.yoyo;
    }
    Una volta risolto il problema, invece di calcolarsi il numero di fotogrammi impiegati dall'animazione, c'è un modo di dare il comando di stop ed essere sicuri che l'animazione si fermerà con alpha 100?
    Spero di essere stato chiaro, sono ai primi passi.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    per quanto riguarda l'assegnazione progressiva delle tween, puoi fare allo stesso modo dell'obj

    codice:
    for(i = 0; i <= 2; i++)  {
    	_root['tw'+i] = new mx.transitions.Tween(_root["obj"+i], "_alpha", mx.transitions.easing.None.easeNone, 100, 10, 15, false);
    	_root['tw'+i].onMotionFinished = _root['tw'+i].yoyo;
    }
    per il secondo "problema", non ho provato, ma a primo impatto mi verrebbe in mente di usare un intervallo con un indice che verifichi il passaggio dei 5-6 secondi e, con un if che verifichi il momento in cui l'indice è uguale a 6, bloccare l'esecuzione dell'onMotionFinished


    codice:
    for(i = 0; i <= 2; i++)  {
    	_root['tw'+i] = new mx.transitions.Tween(_root["obj"+i], "_alpha", mx.transitions.easing.None.easeNone, 100, 10, 15, false);
    	_root['tw'+i].onMotionFinished = _root['tw'+i].yoyo;
    }
    var index = 0;
    var a = setInterval(function(){
    	index++;
    	if(index > 5){
    		clearInterval(a);
    		for(i = 0; i <= 2; i++)  {
    			_root['tw'+i].onMotionFinished = undefined;
    		}
    	}
    }, 1000);

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    Grazie funziona perfettamente, sono sempre più in debito

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.