Appliquer simultanément deux filtres en as

way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011 - 1 juin 2007 à 15:36
way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011 - 3 juin 2007 à 00:19
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 :

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
    
    
}


Merci d'avance pour votre aide !

2 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
2 juin 2007 à 17:34
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'
0
way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011
3 juin 2007 à 00:19
merci je vais modifier ça !!
0