Hello orange73,
bon ben je crois que je me suis avancé un peu vite quand je disais que régler ce problème de redimensionnement du Background de l'image serait à priori facile. En fait c'est carrément difficile car depuis hier soir je cherche sans avoir vraiment avancé. Visiblement la gestion de redimensionnement du background n'est gérée que sur 2 lignes (2 lignes que j'ai vraiment du mal à piger), et la seule modification avec le précédent code c'est le fait donc de charger les images avec un attachBitmap au lieu d'un loadMovie.
Bref, voici les bouts de code si jamais tu repasses par là et que tu as envie de te divertir avec ce nouveau problème signé BBFUNK01 :)
Le code pour le redimensionnement du background :
transBG_mc.picBG_mc.bg_mc.tween(["_width", "_height"], [mcW+imageBorder, mcH+imageBorder], 0.5, undefined, 0, function() { });
transBG_mc.picBG_mc.bg_mc.alphaTo(100, 0.5, "linear", 0, function() { imageHolder.alphaTo(100, 2); });
La fonction modifiée avec attachBitmap :
var bitmap:BitmapData;
function loadFull(imgToLoad, desc){
var tofcharge = imageDir+imgToLoad;
var holder:MovieClip = transBG_mc.picBG_mc.empty_mc;
holder._alpha = 0;
function loadBitmapSmoothed(url:String, cible:MovieClip) {
var bmc:MovieClip = cible.createEmptyMovieClip("bmc", cible.getNextHighestDepth());
var listener:Object = new Object();
listener.tmc = cible;
listener.onLoadInit = function(mc:MovieClip) {
mc._visible = false;
bitmap.dispose();
bitmap = new BitmapData(mc._width, mc._height, true);
this.tmc.attachBitmap(bitmap, this.tmc.getNextHighestDepth(),"auto",true);
bitmap.draw(mc);
};
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(listener);
loader.loadClip(url, bmc);
}
loadBitmapSmoothed(tofcharge, holder);
var temp = holder._parent.createEmptyMovieClip("temp", holder._parent.getNextHighestDepth());
temp.onEnterFrame = function() {
var loaded = holder.getBytesLoaded();
var total = holder.getBytesTotal();
var perc = Math.round((loaded/total)*100);
//trace(perc);
if(perc == 100) {
// hide the preloader
transBG_mc.preloader_mc.alphaTo(0, 1, "linear", 0, function() { transBG_mc.preloader_mc.removeMovieClip(); });
//trace(holder._width);
checkImageWidth(holder, desc);
delete this.onEnterFrame;
temp.removeMovieClip();
}
}
}
et enfin la fonction d'affichage des images en grand (avec les 2 lignes de code du haut) :
function displayFullImage(imageHolder, desc) {
var imageBorder = 20;
var mcW = imageHolder._width;
var mcH = imageHolder._height;
//total of images in chosen category
var totalImages = myGallery[curCat]["image"].length;
curImage_txt.text = Number(_root.curImage+1)+" sur "+totalImages;
enableImageNav(true);
//trace(mcW);
if(mcW > 710) {
imageHolder.maxWidth = 710;
var newSize = imageHolder.resizeToFit();
imageHolder.tween(["_width", "_height"], [newSize.newWidth, newSize.newHeight], 0.5, undefined);
var mcW = newSize.newWidth;
var mcH = newSize.newHeight;
}
var xCenter = (transBG_mc.fake_btn._width/2) - (Number(mcW+imageBorder)/2);
var yCenter = (transBG_mc.fake_btn._height/2) - (Number(mcH+imageBorder)/2);
// center the image
transBG_mc.picBG_mc.slideTo(xCenter, yCenter, 0.5);
// resize the background
transBG_mc.picBG_mc.bg_mc.tween(["_width", "_height"], [mcW+imageBorder, mcH+imageBorder], 0.5, undefined, 0, function() { });
transBG_mc.picBG_mc.bg_mc.alphaTo(100, 0.5, "linear", 0, function() { imageHolder.alphaTo(100, 2); });
Je n'ai pas mis la fonction dans sa totalité car après ça touchait à l'affichage de la description (textfield).
C'est coton n'est-ce pas ?
Enfin bon, je continue à faire des tests pour trouver la solution, mais si ça t'inspire n'hésite pas :)
A plus,
BBFUNK01