begin process at 2012 05 26 11:27:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Appliquer simultanément deux filtres en as


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Appliquer simultanément deux filtres en as

vendredi 1 juin 2007 à 15:36:24 | Appliquer simultanément deux filtres en as

way2web

Bonjour,

j'ai créé un movieclip de manière dynamique sur lequel j'ai placé un listener, ensuite au onLoadInit, j'ai appliqué un filtre dropshadow et maintenant au onRollOver j'aimerais appliquer un autre filtre tout en conservant le premier filtre dropshadow (cumuler les effets quoi), le problème que j'ai c'est que lorsque j'applique le second le premier filtre disparaît car la variable est écrasée.

Voici mon code :

[code]function showThumbails(index, year:String):Void {
    _root.theyear = year;
    var MovieDepthCounter:Number = 10;
    var photoHolder:MovieClip;
    var xPos:Number;
    var yPos:Number = 20;
    var photoThumb:String;
    var indice:Number = 0;
    nombre += index;
    indice = nombre/4;
    trace("nombre vaut "+nombre);
    trace("index vaut "+index);
    trace("indice vaut "+indice);
    for (var i:Number = 0; i<RootNode.childNodes.length; i++) {
        if (RootNode.childNodes[i].attributes.year == year) {
            var CategoryXML:XMLNode = RootNode.childNodes[i];
            TotalPhotos = RootNode.childNodes[i].childNodes.length;
            trace(year+" has "+TotalPhotos+" photos");
            
            if (TotalPhotos <=4)
            {
                Next_btn.enabled = false;
            }
            
             else if (indice == (Math.floor(TotalPhotos/4)))
            {
                //pr empêcher d'aller en avant qd on est à la dernière photo
                Next_btn.enabled = false;
            }
            else if ((nombre+1)>(TotalPhotos-4))
            {
                //pr empêcher d'aller en avant qd on est à la dernière photo
                Next_btn.enabled = false;
            }
            else
            {
                Next_btn.enabled = true;
            }
            
            if (nombre == 0)
            {
                //pr empêcher d'aller en arrière qd on est à la première photo
                Previous_btn.enabled = false;
                //Next_btn.enabled = true;
            }
            else
            {
                Previous_btn.enabled = true;
            }
            
            for (var j:Number = 0; j<4; j++) {
                photoThumb = RootNode.childNodes[i].childNodes[j+nombre].childNodes[1].firstChild.nodeValue;
                trace(photoThumb);
                trace("nombre vaut : "+nombre);
                photoHolder = this.createEmptyMovieClip("photoHolder"+j, MovieDepthCounter);
                //trace(photoHolder);
                xPos = 30+65*j;
                photoHolder._x = xPos;
                photoHolder._y = yPos;
                var photoHolderLoader:MovieClipLoader = new MovieClipLoader();
                trace("photoHolder vaut :"+photoHolder);
                var recup:String = photoHolder._name.slice(-1);
                //pr extraire le numéro de la photo (de 0 à3)
                var recupNumber:Number = parseInt(recup);
                //pr convertir string en number
                //pr pouvoir envoyer à l'autre swf le numéro de la photo correspondante
                //trace("myphoto vaut : "+myphoto);
                // création de l'écouteur
                var eLoader:Object = new Object();
                eLoader.myphoto = recupNumber+nombre;
                eLoader.Year = year;
                eLoader.nombre = nombre;
                
                eLoader.onLoadInit = function(photoHolder:MovieClip):Void  
                {
                    // p_mcCible correspond à photoHolder
                    photoHolder.myphoto = this.myphoto;
                    photoHolder.Year = year;
                    var etat:String;
                    
                    //this.repere += this.myphoto;
                    photoHolder._alpha = 0;
                    photoHolder.onLoad = doFade(photoHolder, "in", 5);
                    
                    var myDropFilter = new flash.filters.DropShadowFilter();
                    var myFilters:Array = photoHolder.filters;
                    myFilters.push(myDropFilter);
                    photoHolder.filters = myFilters;
                    
                    var myList:Array = photoHolder.filters;
                    myList[0].quality = 5;
                    myList[1].color = 0xcccccc;
                    photoHolder.filters = myList;
                    
                    
                                        
                    photoHolder.onRelease = function()
                    {
                                            
                        _root.envoiLocalConnect(this.myphoto, this.Year);
                        
                            
                    };
                    
                    
                };
                photoHolderLoader.addListener(eLoader);
                photoHolderLoader.loadClip(photoThumb, photoHolder);
                MovieDepthCounter++;
            }
        }
    }
    //fin du for
    
    
}[/code]


Merci d'avance pour votre aide !
samedi 2 juin 2007 à 17:34:29 | Re : Appliquer simultanément deux filtres en as

pegase31

Membre Club Administrateur CodeS-SourceS
L'art de compliquer les choses ....

tout ce code juste pour ça :
var myDropFilter = new flash.filters.DropShadowFilter();
var myFilters:Array = photoHolder.filters;
myFilters.push(myDropFilter);
photoHolder.filters = myFilters;   
var myList:Array = photoHolder.filters;
myList[0].quality = 5;
myList[1].color = 0xcccccc;
photoHolder.filters = myList;

Qui serait mieux comme ça :
var myDropFilter = new flash.filters.DropShadowFilter(4,45,0xCCCCCC,4,4,1,5); //valeurs par défaut
photoHolder.filters.push(myDropFilter);

Rien de plus compliqué !

Ensuite, il faudrait que tu nous expliques pourquoi tu colles un loadinit dans une double boucle et que tu recrées X fois le movieclipLoader en plus ... là je pige pas ....

Peg'

dimanche 3 juin 2007 à 00:19:34 | Re : Appliquer simultanément deux filtres en as

way2web

merci je vais modifier ça !!


Cette discussion est classée dans : nombre, var, trace, year, photoholder


Répondre à ce message

Sujets en rapport avec ce message

Pk mon preloader ne fonctionne pas ?? [ par way2web ] Bonjour,J'ai voulu rajouter un preloader au chargement des images de ma galerie photo, j'ai donc placé ce code[code]eloader.onLoadProgress = function( Problème de logique mathématique dans mon script [ par way2web ] Bonjour,Moi et les maths on fait 2 ;) Ca fait quelques heures que je galère sur ce script, je vous explique :j'ai une galerie photo miniatures avec un LocalConnect pas très bien compris [ par way2web ] Bonsoir,J'ai créé deux fichiers swf différents insérés dans la même page html :1) le premier est une galerie de miniatures2) le deuxième est les photo boucle et validation de données actionscript [ par fragger ] Bonjour à tous,Voilà, je bloque sur ce code et je tourne en rond...Le script est celui d'un clip qui permet de vérifier ce qui a été saisi par l'utili À propos de la classe Vector [ par inaden ] Bonjour,question de cours...Je viens de découvrir qu'il existe une classe Vector, d'après ce qui est dit, plus optimiser que la classe Array, mais plu transformer xml en objet --> AS3 [ par inaden ] Bonjour,avant toute chose, désolé pour ce long bout de code.J'essaie de créer des objets dans un tableau à partir d'un XMLLe XML est de la forme :    array.shift [ par kapac ] bonjour; j'ai un probleme avec shift si j'écris le code suivant: var damier:Array = new Array(1,2,3,4,5); var nombre:Object=damier.shift(); avec les tableau deux dimentions [ par georgeconst ] salut a tous C'est la premiere fois que je participe a un forum alors si qqch cloche n'esitez pas a me le faire remarquer..j'ai un probleme avec actio Conversion en nombre.. ? [ par Lyche ] Bonjour.Je suis devant un problème un peu stupide, mais je ne trouve pas la solution, ni sur l'aide, ni sur les sites.J'ai vu la fonction : "Number(pa creation d'instances de classes dynamiques [ par raoultboy ] Bonjour à tous et merci pour tout ce qu'on peut apprendre ici.Je débute en poo sur as2. Et j'ai un souci pour fabriquer dynamiquement des instances d'


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales