AttachBitmap : comment supprimer l'image loadée pour éviter la superposition ave

Résolu
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 21 mars 2010 à 00:24
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 31 mars 2010 à 20:12
Bonsoir à toutes et à tous,

je suis en train d'adapter un diaporama en as2 que j'ai trouvé sur le net.
Ce diaporama n'était pas configuré pour lisser les images loadées via un
oadMovie()
, par conséquent j'ai modifié ce diaporama en changeant le
loadMovie()
par un
attachBitmap()
afin de pouvoir donc lisser les images loadées. La méthode fonctionne bien, seul bémol survenant : les images loadées se superposent les unes sur les autres au fur et à mesure du loading, alors que lorsque les images étaient chargées en
loadMovie()
, chaque image loadée remplaçait la précédente dans le clip conteneur, ce qui n'est malheureusement plus le cas dorénavant.
Je cherche donc la solution qui permettrait d'écraser l'image loadée afin de conserver les paramètres du redimensionnement de chaque image, car évidemment le fait que les images se superposent fout totalement en l'air le code pour redimensionnser l'image loadée :(...

Bref, si vous avez des suggestions n'hésitez pas car pour l'instant je rame.

Voici la partie de mon code où je loade l'image :
function loadFull(imgToLoad, desc){	
import flash.display.*;

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; 

var bitmap:BitmapData = 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(imageDir+imgToLoad, 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();
}
}
}


Merci :)

BBFUNK01

40 réponses

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
23 mars 2010 à 23:50
Connecte toi sur Skype sa sera plus simple. On mettra la solution sur FlashKod quand on aura trouvé. Cela evitera 3 tonnes de post pour rien.


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
23 mars 2010 à 23:59
sur msn ca te va ? Car Skype j'ai pas :)
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
24 mars 2010 à 00:13
msn g pas ;-)


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
24 mars 2010 à 00:15
Je viens d'installer skype, je t'avoue que je ne sais pas trop comment ça marche, mais je t'ai envoyer une "demande de contact", je sais pas si tu l'as reçue ? T'as reçu mon zip sinon ? (parce que 9,2 mégas le zip :) )

BBFUNK01
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
25 mars 2010 à 18:12
Salut Orange73, ça va ?

Désolé pour l'autre soir d'avoir quitté la conversation mais je t'avoue que j'étais claqué :)
Je me suis remis sur mon code sans progrès notoire, tiens-moi au courant si tu avais décelé une piste, en tout cas j'ai la sensation que c'est au niveau des coordonnées du bitmap loadé que ça se joue.

A plus :)

BBFUNK01
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
26 mars 2010 à 00:24
Alors là , je comprends rien !
J'arrive pas a trouver le probleme...

Le code est tellement fouilli et sale que a mon avis il y a des conflit entre les taille et les positionnement...

Le mieux serait de reprendre le code de base, rajouter proprement la fonction permettant le lissage (bitmapData) et la gestion de l'affichage.


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
26 mars 2010 à 13:30
Hello Orange73,

ouais moi non plus je pige pas comment faire pour régler le problème. Du coup je m'oriente sur la modification d'une autre galerie trouvée sur flashmo, la galerie a l'air pas mal, mais il y a aussi des problèmes d'affichage :), ceci dit le code est moins "lourd" donc plus abordable pour moi, mais dorénavant je me méfie des sources "toutes prêtes". Et si toutefois je galère, je me résoudrais à faire une galerie moi-même de A à Z, mais ça risque d'être long :). Je trouve aussi bizarre qu'il n'existe pas de source sur le net pour des galeries en as2 avec lissage des images (avec bitmapData quoi), bref si je parviens à modifier ou à créer une galerie correcte avec images lissées je pense que je mettrai la source sur flashkod pour éviter aux plus novices de galérer pendant des heures.

A plus,

BBFUNK01
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
26 mars 2010 à 13:31
Au fait, tu travailles dans une boîte sur Annecy d'après ce que j'ai vu sur ton cv, mais tu es aussi à ton compte en parallèle ?

BBFUNK01
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
26 mars 2010 à 13:52
Je travaille à Geneve, mais pas a mon compte en parallele.


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
26 mars 2010 à 14:53
Ok, donc en fait ton site est en quelque sorte ton "book" quoi ?

BBFUNK01
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
26 mars 2010 à 14:58
Exact :)


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
26 mars 2010 à 15:00
OK, et tu bosses dans quelle boîte sur Genève si ce n'est pas indiscret ?

BBFUNK01
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
26 mars 2010 à 15:01
Moi je bosse chez Stratus Packaging S.E.E.C. à viriat dans le 01, en tant qu'infographiste.

BBFUNK01
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
26 mars 2010 à 15:08
Private message pour les choses hors Codes-Sources :-)


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
29 mars 2010 à 12:17
Hello Orange73, ça va ?

Bon et bien comme parmi les diaporamas que j'ai trouvé sur le net les modifications que j'entreprends pour lisser les images sont des échecs, j'ai décidé de créer moi-même mon diaporama. J'ai terminé l'interface, et je commence à me mettre sur le code (je rencontre déjà des problèmes :) ), je pense que je vais galérer mais si je parviens à le boucler correctement ça donnera un diaporama sympa. Je te tiendrais au courant du résultat histoire que tu me donnes ton avis.

A plus et bonne journée,

BBFUNK01
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
30 mars 2010 à 15:27
Hello Orange73,

j'avance bien sur mon diaporama, ceci dit je rencontre un problème qui est peut-être bénin mais je n'arrive pas à trouver la solution :
J'utilise donc toujours un AttachBitmapData pour loader mes images, pour ce faire je réalise l'AttachBitmapData dans un clip vide créé dynamiquement.
Le problème est donc le suivant : dans mon diaporama j'ai prévu (pour le fun) de permettre à l'utilisateur d'effectuer des rotations de 90° sur les images loadées, cependant les images loadées dans le clip vide sont affichées dans le coin en haut à gauche du clip (0, 0 quoi), et donc lorsque j'effectue la rotation, le point de rotation est donc le coin en haut à gauche de l'image, et non le centre de l'image. Ma question est donc la suivante : comment faire pour définir le point de rotation du clip vide en son centre ?

Voici le code :
tn_group["tn"+i].tn_button.onRelease = function(){
_root.p = this._parent.tn_no;
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){
_root.clipRoue._visible = true;
}
if(pourcentage == 100){
_root.clipRoue._visible = false;
}
}

listener.onLoadInit = function(mc:MovieClip){
mc._visible = false;
myMC._x = clipImage._x-mc._width/2;
myMC._y = clipImage._y-mc._height/2;
if(mc._width > 750){
myMC._xscale = 750/mc._width*100;
myMC._yscale = myMC._xscale;
myMC._x = clipImage._x-mc._width/2*750/mc._width;
myMC._y = clipImage._y-mc._height/2*750/mc._width;
}
if(mc._height > 550){
myMC._yscale = 550/mc._height*100;
myMC._xscale = myMC._yscale;
myMC._x = clipImage._x-mc._width/2*550/mc._height;
myMC._y = clipImage._y-mc._height/2*550/mc._height;
}

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);
}
createEmptyMovieClip("myMC",getNextHighestDepth()-2);
loadBitmapSmoothed(folder + visuels_noms[p], myMC);
new Tween(myMC, "_alpha", Elastic.easeOut, 0, 100, 10, true);
clipMenu.designation.text = visuels_titres[p];
}


Si t'as une idée...

Merci,

BBFUNK01
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
30 mars 2010 à 16:12
Hello,

Simplement en repositionnant le contenu de ton clip.

contenuClip._x = contenuClip._width/2;
contenuClip._y = contenuClip._height/2;


A+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
30 mars 2010 à 16:19
ok, par contre si je ne dis pas de sottises : le contenu du clip "myMC", c'est le clip "mc", c'est bien ça ?

Je teste de ce pas,

Merci :)

BBFUNK01
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
30 mars 2010 à 17:30
Re,

j'ai essayé plusieurs trucs mais ça ne change rien, étant donné que le contenu est à priori le bitmap, je ne peux pas attribué "_x", "_y", "_width", et "_height" à "bitmap", donc je ne vois pas trop comment faire...

BBFUNK01
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
31 mars 2010 à 20:12
Hello orange73,

je suis un homme heureux car j'ai réussi à résoudre mon problème il y a quelques minutes :
comment centrer un bitmap dans un clip

A plus,

BBFUNK01
0
Rejoignez-nous