- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- Sfocatura a seconda del soggetto selezionato
-
Cosa intendi per sfocamento a gradi ?
-
nel codice di prima, lo sfocamento non avveniva "di colpo" ma graduale. Questo perchè il codice dello sfocamento era nel frame generale x cui continuava ad eseguirlo finchè non arrivava ad un dato valore (mi pare 5)..
ora invece lo sfocamento avviene immediatamante appunto xkè il codice è nel singolo eventobasta guardare che è decisamente + facile che spiegarlo
grazie ancora eh!;)
-
Tieni blurX e blurY fuori dalla funzione.
Gli dai valore 0.
Al rollOver della Clip attivi onEnterFrame che chiama la funzione getBlur e aumenta le variabili blurX e blurY
-
mmmm.. avevo fatto la prova ed ero riuscito a far la sfocatura a gradi solo nel rollOver solo che ho perso il file e non riesco + a rifarla :()::bho:
ho modificato per prova
i```
mport flash.filters.BlurFilter;
var clips_array:Array=new Array(clip_0_mc,clip_1_mc,clip_2_mc,clip_3_mc);
for(var i:Number=0;i<clips_array.length;i++)
{// getBlur(clips_array*);
clips_array*.onRollOver=function(Void):Void
{
this.filters=[];
for (var j:Number=0;j<4;j++)
{
if (eval("clip_"+j+"_mc")._name!=this.name)
{
this.onEnterFrame=function()
{
getBlur(eval("clip"+j+"_mc"));
}
}
}
}
clips_array*.onRollOut=function(Void):Void
{for (var j:Number=0;j<4;j++)
{
eval("clip_"+j+"_mc").filters=[];
}}
}
var blurX:Number=0;
var blurY:Number=0;
function getBlur(m:MovieClip):Void
{
blurX=blurX+3;
var quality:Number=3;
var filter:BlurFilter=new BlurFilter(blurX,blurY,quality);
var filterArray:Array=new Array();
filterArray.push(filter);
m.filters=filterArray;
}xò nn vuole andare e nn mi ricordo come accidenti avevo fatto :? help
-
ok ci siamo...
import flash.filters.BlurFilter; var clips_array:Array=new Array(clip_0_mc,clip_1_mc,clip_2_mc); for(var i:Number=0;i<clips_array.length;i++) { clips_array*.onRollOver=function(Void):Void { this.onEnterFrame=function() { this.filters=[]; for (var j:Number=0;j<4;j++) { if (eval("clip_"+j+"_mc")._name!=this._name) getBlur(eval("clip_"+j+"_mc")); } } } clips_array*.onRollOut=function(Void):Void { for (var j:Number=0;j<4;j++) { eval("clip_"+j+"_mc").filters=[]; eval("clip_"+j+"_mc").onEnterFrame=false; } blurX=0; blurY=0; } } var blurX:Number=0; var blurY:Number=0; function getBlur(m:MovieClip):Void { if (blurX<5) { blurX+=.2; blurY+=.2; } var quality:Number=4; var filter:BlurFilter=new BlurFilter(blurX,blurY,quality); var filterArray:Array=new Array(); filterArray.push(filter); m.filters=filterArray; }
- non so se logicamente è troppo corretto
- ho provato a farlo col rollOut ma nn riesco.. coming soon
-
Prova questo:
import flash.filters.BlurFilter; var clips_array:Array=new Array(clip_0_mc,clip_1_mc,clip_2_mc,clip_3_mc); var blurX:Number=0; var blurY:Number=0; var quality:Number=3; for(var i:Number=0;i<clips_array.length;i++) { clips_array*.id=i; clips_array*.onRollOver=function(Void):Void { getBlur(this); } clips_array*.onRollOut=function(Void):Void { blurX=0; blurY=0; for(var i:Number=0;i<clips_array.length;i++) { clips_array*.onEnterFrame=null; clips_array*.filters=[]; } } } function getBlur(m:MovieClip):Void { m.onEnterFrame=function(Void):Void { for(var i:Number=0;i<clips_array.length;i++) { if(i!=this.id) { var filter:BlurFilter=new BlurFilter(blurX,blurY,quality); var filterArray:Array=new Array(); filterArray.push(filter); clips_array*.filters=filterArray; blurX++; blurY++; if(blurX>=20) this.onEnterFrame=null; } } } }
tieni il framerate a 31
-
ho fatto un pò d prove..
allora volevo sapere- il codice "nuovo" è per far la gradazione anche nel roolOver o è solo + corretto rispetto al mio?
2)se la 1 era xkè è + corretto mi spieghereste i motivi
3)xkè il frameRate a 31??
detto ciò, ti ri-ringrazio e ti metto giusto 2 prove che ho fatto. la prima con il mio codice la seconda con il tuo, ovviamente cambiano i parametri di sfocatura ma penso quello vada molto a "gusti"
(ho provato a farli visualizzare sul forum ma nn c sono riuscito :()::?:bho:)
Mia versione http://img86.imageshack.us/my.php?image=senzanome1sq7.swf
Tua versione
- il codice "nuovo" è per far la gradazione anche nel roolOver o è solo + corretto rispetto al mio?
-
Ciao,
i tuoi esempi non riesco a visualizzarli.
Il mio script l'ho scritto in 2 minuti ed è solo un esempio, un input. Potresti aggiungere svariati effetti una volta che l'hai capito.Il mio codice è più corretto perchè è Actionscript 2.0 mentre lo script che hai presentato è in Actionscript 1.0
Il frame rate a 31 perchè è il miglior frame rate per l'effettistica creata via actionscript.
-
sisi chiaro che è un input.. era x capire..
x gli esempi mi pare strano. basta che clicchi normalmente sul link, ti apre una pagina di un server estero su cui li ho caricati, a me vanno. Li ho applicati su una foto, con 3 soggetti, magari non avevi capito che era quello l'esempioora ci lavoro sopra
grazie!
-
http://img455.imageshack.us/my.php?image=senzanome3qc6.swf
ecco ciò che volevo ;):)
import flash.filters.BlurFilter; var clips_array:Array=new Array(clip_0_mc,clip_1_mc,clip_2_mc,clip_3_mc); var blurX:Number=0; var blurY:Number=0; var quality:Number=3; for(var i:Number=0;i<clips_array.length;i++) { clips_array*.id=i; clips_array*.onRollOver=function(Void):Void { if (this._name!="clip_3_mc") getBlur(this); } clips_array*.onRollOut=function(Void):Void { for(var i:Number=0;i<clips_array.length;i++) { if(i!=this.id) { Ripristina(this); } } } } function getBlur(m:MovieClip):Void { m.onEnterFrame=function(Void):Void { for(var i:Number=0;i<clips_array.length;i++) { if(i!=this.id) { var filter:BlurFilter=new BlurFilter(blurX,blurY,quality); var filterArray:Array=new Array(); eval("clip_"+i+"_mc").enabled=false; filterArray.push(filter); clips_array*.filters=filterArray; blurX+=.3; blurY+=.3; if(blurX>=8) this.onEnterFrame=null; } } } } function Ripristina(m:MovieClip):Void { m.onEnterFrame=function(Void):Void { for(var i:Number=0;i<clips_array.length;i++) { if(i!=this.id) { eval("clip_"+i+"_mc").enabled=false; var filter:BlurFilter=new BlurFilter(blurX,blurY,quality); var filterArray:Array=new Array(); filterArray.push(filter); clips_array*.filters=filterArray; blurX-=.3; blurY-=.3; if(blurX<=0) { this.onEnterFrame=null; for(var j:Number=0;j<clips_array.length;j++) eval("clip_"+j+"_mc").enabled=true; } } } } }
ho provato ad ottimizzarlo (tra getBlur e Ripristina c'è quasi tt il codice in comune xò se credo una funzione nuova non va..boh)