ah, l'ancien problème du point d'enregistrement. :)
J'ai déjà vu une petite classe personnalisée qui vous permettait de changer le point d'alignement de votre objet d'affichage, comme vous pouvez le faire dans Flash Authoring. google around si vous êtes curieux.
la solution est plutôt facile, cependant. le point d'alignement des objets d'affichage est attribué en fonction de la manière dont l'objet est ajouté à la liste d'affichage. il vous suffit de tenir compte lors de votre ajoutez l'objet d'affichage à la liste d'affichage, puis mis en place un peu de mathématiques facile de changer le point d'enregistrement:
//Set up rect's width and height
var rectWidth:uint = 200;
var rectHeight:uint = 100;
//Assign registration point (TL, TC, TR, CL, C, CR, BL, BC, BR = top, center, bottom, left, right)
var registration:String = "C"
//Assign rect's X and Y properties
var rectX:int;
var rectY:int;
switch (registration)
{
case "TL": rectX = 0;
rectY = 0;
break;
case "TC": rectX = -rectWidth/2;
rectY = 0;
break;
case "TR": rectX = -rectWidth;
rectY = 0;
break;
case "CL": rectX = 0;
rectY = -rectHeight/2;
break;
case "C": rectX = -rectWidth/2;
rectY = -rectHeight/2;
break;
case "CR": rectX = -rectWidth;
rectY = -rectHeight/2;
break;
case "BL": rectX = 0;
rectY = -rectHeight;
break;
case "BC": rectX = -rectWidth/2;
rectY = -rectHeight;
break;
case "BR": rectX = -rectWidth;
rectY = -rectHeight;
}
//Draw the rect
var rect:Sprite = new Sprite();
rect.graphics.beginFill(0xFF0000);
rect.graphics.drawRect(rectX, rectY, rectWidth, rectHeight);
rect.graphics.endFill();
Haha, ouais, l'ancien problème du point d'enregistrement. :) Merci pour votre réponse, excellent. – Francisc
Je ne comprends pas comment ce code fait quoi que ce soit pour changer le point d'enregistrement. La seule chose que je vois, c'est les coordonnées x et y par rapport à la scène. –