As3 Alignement image dans clip apres chargement

Résolu
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010 - 24 janv. 2010 à 12:37
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010 - 24 janv. 2010 à 22:53
Bonjour,

Je souhaite charger une image dans un clip.
Si je charge l'image sur la scène, tout va bien.
Si je charge l'image dans un clip, cela m'affiche le quart supérieur gauche de la photo dans le quart inférieur droit de la scène.

var loader:Loader=new Loader;
var url:URLRequest=new URLRequest("./lib/fond.jpg");

loader.load(url);

container.addChild(loader);


Je voudrais que le centre de l'image chargée soit aligné au centre de la scène.??
Merci.

6 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
24 janv. 2010 à 16:35
oui : modifier les x et y de ton image pour que le coin haut gauche du loader soit au bon endroit.

Pour celà un simple calcul permettrais de le faire facilement :

(largeur de la scène - largeur de l'image) /2 .. de même pour la hauteur.

Peg'
3
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
24 janv. 2010 à 13:12
Je répond en partie à mon messsage :

import fl.transitions.Tween;

var loader:Loader=new Loader;
var url:URLRequest=new URLRequest("./lib/fond.jpg");

var align_x:Tween = new Tween(this.container, "x", null, this.container.x, this.loader.x, 0.5, true);
var align_y:Tween = new Tween(this.container, "y", null, this.container.y, this.loader.y, 0.5, true);

container.addChild(loader);
loader.load(url);


Je souhaiterai avoir le même résultat dans l'effet de transition... ? Merci
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
24 janv. 2010 à 13:31
"sans l'effet de transition"
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
24 janv. 2010 à 14:06
Bonjour,

Comme pour 3 questions posées depuis cette fin de semaine : tu dois attendre la fin du chargement de ton image pour pouvoir la centrer.

Comment ? Tout est expliqué dans la doc en ligne de flash, section "chargement d'image externe".

Peg'
0

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

Posez votre question
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
24 janv. 2010 à 15:56
Comme pour 3 questions posées depuis cette fin de semaine
???

Merci, mais c'est le même résultat.
Je n'arrive plus à fair fonctionner le Tween et je voudrais centrer l'image sans transition, y a t'il une autre solution pour centrer l'image ? Merci


// création du conteneur de l'image
var conteneurImage:Loader = new Loader();

// url de l'image à charger
var image:URLRequest=new URLRequest("./lib/fond.jpg");

// Le chargement est terminé
function onComplete(e:Event):void {	

this.container.fond.addChild(conteneurImage);
trace("fini");

}

// Progression du chargement
function onProgress(e:ProgressEvent):void {

trace("en cours");
}

// Evénement progress
conteneurImage.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);

// Evénement complete
conteneurImage.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

// chargement de l'image dans le conteneur
conteneurImage.load(image);



0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
24 janv. 2010 à 22:53
Encore merci. J'ai voulu faire compliqué alors que c'est simple.

Je mets le code au cas où d'autres personnes aient le même problème.
Ce code permet de charger une image de fond dynamiquement et d'en modifier la taille en fonction de la résolution du navigateur en gardant le ratio.

Un grand merci à Pegase31.

stage.align = "TL";
stage.scaleMode = "noScale";
stage.showDefaultContextMenu = false;

// création du conteneur de l'image
var conteneurImage:Loader = new Loader();

// url de l'image à charger
var image:URLRequest=new URLRequest("./lib/fond.jpg");

// Le chargement est terminé
function onComplete(e:Event):void {	
// Ajout de l'image sur le calque "fond"
this.container.fond.addChild(conteneurImage);

//Calcul ratio
var fondHeight = container.fond.height / container.fond.width;
var fondWidth = container.fond.width / container.fond.height;

//Modification taille et position image de fond
if ((stage.stageHeight / stage.stageWidth) < fondHeight) {
// Modification taille
conteneurImage.width=stage.stageWidth;
conteneurImage.height=fondHeight * conteneurImage.width;

// positionnement de l'image de fond
this.container.x = (stage.stageWidth - conteneurImage.width) / 2;
this.container.y =(stage.stageHeight - conteneurImage.height) / 2;
} else {
// Modification taille
conteneurImage.height = stage.stageHeight;
conteneurImage.width = fondWidth * conteneurImage.height;

// positionnement de l'image de fond
this.container.x = (stage.stageWidth - conteneurImage.width) / 2;
this.container.y =(stage.stageHeight - conteneurImage.height) / 2;
};
}

// Progression du chargement
function onProgress(e:ProgressEvent):void {
trace("en cours");
}

// Evénement progress
conteneurImage.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);

// Evénement complete
conteneurImage.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

// chargement de l'image dans le conteneur
conteneurImage.load(image);

0
Rejoignez-nous