As3 Alignement image dans clip apres chargement [Résolu]

yahou29 44 Messages postés lundi 7 avril 2008Date d'inscription 24 janvier 2010 Dernière intervention - 24 janv. 2010 à 12:37 - Dernière réponse : yahou29 44 Messages postés lundi 7 avril 2008Date d'inscription 24 janvier 2010 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
pegase31 6161 Messages postés dimanche 21 décembre 2003Date d'inscription 4 septembre 2013 Dernière intervention - 24 janv. 2010 à 16:35
3
Merci
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'

Merci pegase31 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de pegase31
yahou29 44 Messages postés lundi 7 avril 2008Date d'inscription 24 janvier 2010 Dernière intervention - 24 janv. 2010 à 13:12
0
Merci
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
Commenter la réponse de yahou29
yahou29 44 Messages postés lundi 7 avril 2008Date d'inscription 24 janvier 2010 Dernière intervention - 24 janv. 2010 à 13:31
0
Merci
"sans l'effet de transition"
Commenter la réponse de yahou29
pegase31 6161 Messages postés dimanche 21 décembre 2003Date d'inscription 4 septembre 2013 Dernière intervention - 24 janv. 2010 à 14:06
0
Merci
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'
Commenter la réponse de pegase31
yahou29 44 Messages postés lundi 7 avril 2008Date d'inscription 24 janvier 2010 Dernière intervention - 24 janv. 2010 à 15:56
0
Merci
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);



Commenter la réponse de yahou29
yahou29 44 Messages postés lundi 7 avril 2008Date d'inscription 24 janvier 2010 Dernière intervention - 24 janv. 2010 à 22:53
0
Merci
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);

Commenter la réponse de yahou29

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.