way2web
Messages postés65Date d'inscriptionjeudi 17 mars 2011StatutMembreDernière intervention17 mars 2011
-
1 juin 2007 à 15:36
way2web
Messages postés65Date d'inscriptionjeudi 17 mars 2011StatutMembreDernière intervention17 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
}
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 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 ....