LoadBitmapSmoothed dans un clip avec duplicateMovie qui ne loade pas les images

Résolu
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
- 14 avril 2010 à 21:42
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
- 21 avril 2010 à 22:32
Bonsoir tout le monde,

je suis en train d'essayer de modifier mon diaporama pour loader les miniatures, initialement les miniatures étaient loadées via un LoadMovie(), mais pour obtenir des miniatures lissées je souhaite changer le LoadMovie() par un MovieClipLoader qui contient un LoadBitmapSmoothed().
Le truc c'est que je duplique le clip présent sur la scène afin d'obtenir ma "frise" de miniatures, avec le LoadMovie() ça fonctionne parfaitement, mais avec le MovieClipLoader() les images ne se chargent plus.
J'ai essayé maintes tentatives en refaisant le clip initial de plusieurs manières mais je suis forcé de constater que c'est mon code qui n'est pas au point.
Bref, voici le code en question :
function creer_miniatures():Void
{
for( var i = 0; i < visuels_miniatures.length; i++ )
{
var Miniature = folderMini + visuels_miniatures[i];
tn_group.tn.duplicateMovieClip("tn"+i, i);
function loadBitmapSmoothed(url:String, cible:MovieClip) { 
var bmc:MovieClip = cible.createEmptyMovieClip("bmc", cible.getNextHighestDepth()); 

var listener:Object = new Object();

listener.tmc = cible;

listener.onLoadProgress = function(mc:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void{
var pourcentage:Number = bytesLoaded/bytesTotal*100;
if(pourcentage<100){
tn_group["tn"+i].clipRoll._visible = true;
trace("en charge");
}
if(pourcentage == 100){
tn_group["tn"+i].clipRoll._visible = false;
trace("chargement ok");
}
}

listener.onLoadInit = function(mc:MovieClip){
mc._visible = false;
_root.tn_group["tn"+i].pic._x = 0+tn_group._width/2-tn_group["tn"+i].pic._width/2;
_root.tn_group["tn"+i].pic._y = 0+tn_group._height/2-tn_group["tn"+i].pic._height/2;
trace(mc._width);
trace(mc._height);
trace(mc._x);
trace(mc._y);
trace(_root.tn_group._x);
trace(_root.tn_group._y);
trace(_root.tn_group["tn"+i].pic._x);
trace(_root.tn_group["tn"+i].pic._y);

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(Miniature, tn_group["tn"+i].pic);
}
}


Si jamais quelqu'un voit où je me suis planté je veux bien être éclairé, à mon avis je ne place pas ma fonction function loadBitmapSmoothed() où il faut car dans le trace() sur le onLoadInit() je n'ai rien... mais je ne vois pas où le placer.

Merci,

BBFUNK01

1 réponse

BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
21 avril 2010 à 22:32
Hello,

et bien je répond à mon propre post :
après avoir cherché pendant plusieurs jours, et grâce aux conseils avisés de Crackter (), j'ai enfin réussi à charger mes miniatures lissées.
Pour ceux que ça intéresse, voici le code :

var miniat:BitmapData;
var bmc1:MovieClip;
var listener1:Object;
var pourcentage1:Number;
var loader1:MovieClipLoader;

function LoadMiniatSmoothed(url:String, cible1:MovieClip){ 
bmc1 = cible1.createEmptyMovieClip("bmc1", cible1.getNextHighestDepth()); 

listener1 = new Object();

listener1.tmc1 = cible1;

listener1.onLoadProgress = function(mc1:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void{
pourcentage1 = bytesLoaded/bytesTotal*100;
if(pourcentage1<100){
mc1._parent._parent.clipRoll._visible = true;
}
if(pourcentage1 == 100){
mc1._parent._parent.clipRoll._visible = false;
}
}
listener1.onLoadInit = function(mc1:MovieClip){
mc1._visible = false;
tn_group["tn"+i].pic._x = 0+tn_group._width/2-tn_group["tn"+i].pic._width/2;
tn_group["tn"+i].pic._y = 0+tn_group._height/2-tn_group["tn"+i].pic._height/2;

miniat = new BitmapData(mc1._width, mc1._height, true);

this.tmc1.attachBitmap(miniat, this.tmc1.getNextHighestDepth(),"auto",true); 
miniat.draw(mc1);
}	

loader1 = new MovieClipLoader(); 
loader1.addListener(listener1);
loader1.loadClip(url, bmc1);
}

function creer_miniatures():Void
{
for( var i = 0; i < visuels_miniatures.length; i++ )
{
Miniature = folderMini + visuels_miniatures[i];
tn_group.tn.duplicateMovieClip("tn"+i, i);
LoadMiniatSmoothed(Miniature, tn_group["tn"+i].pic);
trace(["tn"+i]);
tn_group["tn"+i]._x = tn._x;
tn_group["tn"+i]._y = i * 100;
tn_group["tn"+i].pic._alpha = tn_alpha_default;
tn_group["tn"+i].tn_no = i;
}
}


BBFUNK01
3