Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    178

    filtro Sfocatura progressivo

    Sto usando il filtro Sfocatura

    codice:
    var filtroSfocatura = new flash.filters.BlurFilter();
    var mieiFiltri:Array = MyMC.filters;
    mieiFiltri.push(filtroSfocatura);
    mieiFiltri[0].quality = 5;
    mieiFiltri[0].blurX = 5;
    mieiFiltri[0].blurY = 5;
    MyMC.filters = mieiFiltri;
    e funziona alla grande

    Come potrei fare per applicare tale filtro in maniera graduale.
    Cioè rendere un MC gradualmente sfocato ?
    Grazie a quanti interverranno!!
    Iohannes

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    modificando nel tempo le proprietà "blurX" e "blurY" del tuo filtro e riapplicandolo ogni volta al clip

    fattibile attraverso la classe Tween

    codice:
    var filtroSfocatura = new flash.filters.BlurFilter();
    var mieiFiltri:Array = MyMC.filters;
    mieiFiltri.push(filtroSfocatura);
    mieiFiltri[0].quality = 5;
    mieiFiltri[0].blurX = 0;
    mieiFiltri[0].blurY = 0;
    MyMC.filters = mieiFiltri;
    //
    import mx.transitions.*;
    import mx.transitions.easing.*;
    var tween:Object = new Tween(mieiFiltri[0], "blurX", None.easeNone, mieiFiltri[0].blurX, 5, 1, true);
    tween.onMotionChanged = function(){
    	mieiFiltri[0].blurY = mieiFiltri[0].blurX;
    	MyMC.filters = mieiFiltri;
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    178
    Grande And80! Un mito!

    La provo e poi ti dico!

    E se volessi utilizzare le TWEEN attraverso le function MovieClip.prototype ?
    In maniera tale da creare una sola TWEEN di Sfocatura e richiamarla all'occorrenza applicandola al movieclip del momento...


    Grazie ancora!
    Iohannes

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    178
    Sto tentando di creare un applicazione di sfocatura progressiva.

    Io ho un movieclip che contiene una foto istanziato "fotoHP"

    Nel primo frame ho:
    codice:
    var filtroSfocatura = new flash.filters.BlurFilter();
    var mieiFiltri:Array = fotoHP.filters;
    mieiFiltri.push(filtroSfocatura);
    mieiFiltri[0].quality = 5;
    mieiFiltri[0].blurX = 0;
    mieiFiltri[0].blurY = 0;
    fotoHP.filters = mieiFiltri;
    
    import mx.transitions.*;
    import mx.transitions.easing.*;
    
    
    MovieClip.prototype.mettiaffuoco = function(__BLURX,__BLURY) {
    	var sfocaX:Object = new Tween(mieiFiltri[0], "blurX", None.easeNone, mieiFiltri[0].blurX, __BLURX, 15, false);
    	var sfocaY:Object = new Tween(mieiFiltri[0], "blurY", None.easeNone, mieiFiltri[0].blurY, __BLURY, 15, false);
    	sfocaX.onMotionFinished = function(){
    	mieiFiltri[0].blurY = mieiFiltri[0].blurX;
    	this.filters = mieiFiltri;
    	}
    }


    Ad un certo punto richiamo la funzione mettiaffuoco così:

    codice:
    _level0.fotoHP.mettiaffuoco(20,20)
    Ma non ne vuol sapere di sfocarmi la foto! Come mai?!
    Cosa sbaglio?!
    Iohannes

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    178
    Nessuno sa darm una mano?! And80 dove sei?! Aiuto !!!!!
    Iohannes

  6. #6
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816
    Scusa and se mi intrometto, ma la cosa interessava anche a me e quindi mi ero sottoscritto alla discussione

    Penso che una cosa del genere dovrebbe andare:
    codice:
    import mx.transitions.*;
    import mx.transitions.easing.*;
    MovieClip.prototype.mettiafuoco = function(quality:Number, blurXIniziale:Number, blurYIniziale:Number, blurXFinale:Number, blurYFinale:Number, tempo:Number) {
    	var path = this;
    	var filtroSfocatura = new flash.filters.BlurFilter();
    	var mieiFiltri:Array = path.filters;
    	mieiFiltri.push(filtroSfocatura);
    	mieiFiltri[0].quality = quality;
    	mieiFiltri[0].blurX = blurXIniziale;
    	mieiFiltri[0].blurY = blurYIniziale;
    	var tweenX:Object = new Tween(mieiFiltri[0], "blurX", None.easeNone, mieiFiltri[0].blurX, blurXFinale, tempo, true);
    	var tweenY:Object = new Tween(mieiFiltri[0], "blurY", None.easeNone, mieiFiltri[0].blurY, blurYFinale, tempo, true);
    	tweenX.onMotionChanged = function() {
    		path.filters = mieiFiltri;
    	};
    }
    fotoHP.mettiafuoco(5, 0, 0, 5, 5, 1);

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    scusami, non avevo visto che avevi aggiunto risposte al thread

    questo codice per aggiungere una sfocatura al clip
    codice:
    MovieClip.prototype.blurMotion = function(blur) {
    	this.f = new flash.filters.BlurFilter(0, 0, 3);
    	this.filters = [this.f];
    	this.t = new mx.transitions.Tween(this.f, "blurX", mx.transitions.easing.None.easeNone, this.f["blurX"], blur, 1, true);
    	this.t.path = this;
    	this.t.onMotionChanged = function(){
    		this.path.f.blurY = this.path.f.blurX;
    		this.path.filters = [this.path.f];
    	}
    }
    da utilizzare con questa riga

    mioClip.blurMotion(5);


    [edit] con una modifica, che ora non riesco a verificare e quindi per il momento non posto, puoi ottenere l'effetto contrario e il controllo completo sulla sfocatura inerente al clip su cui applichi nativamente l'effetto

  8. #8
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816
    Originariamente inviato da and80
    [edit] con una modifica, che ora non riesco a verificare e quindi per il momento non posto, puoi ottenere l'effetto contrario e il controllo completo sulla sfocatura inerente al clip su cui applichi nativamente l'effetto
    Penso che così potrebbe andare:
    codice:
    import mx.transitions.*;
    import mx.transitions.easing.*;
    MovieClip.prototype.blurMotion = function(quality:Number, blurXIniziale:Number, blurYIniziale:Number, blurXFinale:Number, blurYFinale:Number, tempo:Number) {
    	this.f = new flash.filters.BlurFilter(blurXIniziale, blurYIniziale, quality);
    	this.filters = [this.f];
    	this.tX = new Tween(this.f, "blurX", None.easeNone, this.f["blurX"], blurXFinale, tempo, true);
    	this.tY = new Tween(this.f, "blurY", None.easeNone, this.f["blurY"], blurYFinale, tempo, true);
    	this.tX.path = this;
    	this.tX.onMotionChanged = function() {
    		this.path.filters = [this.path.f];
    	};
    }
    mioClip.blurMotion(5, 0, 0, 5, 5, 1);
    Però ho una domanda, in attesa che iohannes risponda: volendo inserire l'effetto in una classe, sarebbe fattibile conservare l'impostazione a prototype?

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    in flash puoi impostare una prototype che attivi l'istanza di classe e sfruttare il "this" all'interno della proto stessa, ad esempio

    codice:
    class Saluta {
    	private var __saluto:String;
    	private var __target:MovieClip;
    	function Saluta (target:MovieClip, saluto:String) {
    		__target = target;
    		__saluto = saluto;
    	}
    	public function esegui () {
    		trace(this['__saluto']+" da "+this['__target']._name);
    	}
    	public function get saluto():String {
    		return this['__saluto'];
    	}
    }
    codice:
    MovieClip.prototype.saluta = function(sal:String) {
    	this.s = new Saluta(this, sal);
    	this.s.esegui();
    	this.saluto = this.s.saluto;
    }
    
    mioClip.saluta("ciao"); // output: ciao da mioClip
    trace(mioClip.saluto); // output: ciao

  10. #10
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816
    Ok, perfetto
    Grazie

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.