Ciao Ragazzi,
sto cercando di fare uno slideshow utilizzando le proprietà di mx.transitions.Tween. In particolare vorrei funzionasse così: carico i dati da un file XML e faccio il parsing, creo dinamicamente i miei contanier e applico alle foto in entrata un effetto di movimento tramite:
accompagnato da un effetto di sfocatura (blur):codice:mx.transitions.easing.Regular.easeOut
fino a qui ci sono ma quando entra la foto successiva, però, vorrei fare in modo che quella precedente non venga semplicemente "coperta" ma scompaia con i medesimi effetti di entrata, prima che l'altra arrivi al suo posto. Io ho scritto:codice:new flash.filters.BlurFilter
Logicamente non funziona e mi rendo conto che, essendo abbastanza inesperto in AS, il codice potrebbe essere una mezza papocchia in più di qualche punto ma se qualcuno più esperto di me riesce a darmi una dritta ve ne sarei grato davvero.codice:function createLoader(i,data,num) { //richiamo la funzione x farlo andare via basedata=data //trace("data"+data[num].path) ritorna() thisLoader=eval("container_mc.loader"+i+"_mc"); thisLoader._alpha=100; thisLoader.loadMovie(data[num].path); watcher_mc.onEnterFrame=function () { var picLoaded = thisLoader.getBytesLoaded(); var picBytes = thisLoader.getBytesTotal(); if (isNaN(picBytes) || picBytes < 4) { return; } if (picLoaded / picBytes >= 1) { swapPlace("container_mc.loader2_mc",1); starter = - container_mc._x; playerXT = new mx.transitions.Tween(thisLoader, "_x", mx.transitions.easing.Regular.easeOut, starter, 149 - container_mc._x, 1, true); playerBT = new mx.transitions.Tween(thisLoader, "blur", mx.transitions.easing.Regular.easeOut, 80, 0, 1, true); playerBT.onMotionChanged = function () { thisLoader.filters = [new flash.filters.BlurFilter(thisLoader.blur, 0, 1)]; }; timerInterval = setInterval(imageGen,_global.numPause,data); delete this.onEnterFrame; var oldfoto_mc = Root.containermc.fotosmc["container_mc.loader" + i - 2) + "_mc"]; oldfotoXT = new mx.transitions.Tween(oldfoto_mc, "_x", mx.transitions.easing.Regular.easeOut, starter, 149 - container_mc._x, 1, true); oldfotoBT = new mx.transitions.Tween(oldfoto_mc, "blur", mx.transitions.easing.Regular.easeOut, oldfoto_mc.blur, 20, 1, true); oldfotoBT.onMotionChanged = function () { oldfoto_mc.filters = [new flash.filters.BlurFilter(oldfoto_mc.blur, 0, 1)]; }; oldfotoBT.onMotionFinished = function () { oldfoto_mc.removeMovieClip(); }; scendi() } } }
Un grazie anticipato a tutti.

Rispondi quotando