AS3 - Comment faire pour trouver la position d'un objet par rapport à la scène?
Si j'ai un rectangle sur la scène, comment puis-je trouver son haut à gauche de la pointe (x,y) et en bas à droite de la pointe (x,y) par rapport à la scène? C'est étrange comment je ne peux pas trouver sur google!
localToGlobal(point) de DisplayObject Convertit l'objet point de l'objet d'affichage (local) coordonnées de la Scène (global) des coordonnées.
//assuming (0, 0) is top leftvar topLeftStage:Point= myDisplayObject.localToGlobal(newPoint(0,0));//bottom rightvar bottomRightStage:Point= myDisplayObject.localToGlobal(newPoint(width, height));
Bonjour, merci pour votre aide. Comment dois-je viens de trouver sur le x de la gauche et le x de la droite? Point a des propriétés x et y de la. Vous pouvez utiliser topLeftStage.x pour obtenir l'abscisse.
Si votre objet est en un conteneur, alors vous pouvez simplement soustraire les conteneurs de la position des objets.
var rawx:Number= x - parent.x;var rawy:Number= y - parent.y;
D'autre de localToGlobal() comme ci-dessus.
Trouver le haut à gauche et en bas à droite des points d'un objet est facile, mais vous devez savoir où le point de référence, le symbole.
Si le point d'enregistrement où, dans le centre du symbole:
var left:Number= x -(width /2);var right:Number= x +(width /2);var top:Number= y -(height /2);var bottom:Number= y +(height /2);
Si elle était en haut à gauche:
var left:Number= x;var right:Number= x + width;var top:Number= y;var bottom:Number= y + height;
Etc.
Merci pour votre commentaire. Malheureusement, j'ai besoin de l'x de la gauche et le x de la droite. Je suis d'accord qu'il aurait été très facile de déterminer x et y. Je vais mettre à jour ma réponse.
si la classe displayobject ne démarre pas à 0,0 de la movieclip, vous aurez besoin de ceci:
var skin:DisplayObject=...//the MC you need to get positions ofvar point :Point= skin.localToGlobal(newPoint(skin.getBounds(skin).x,skin.getBounds(skin).y));var point2 :Point= skin.localToGlobal(newPoint(skin.getBounds(skin).x+skin.getBounds(skin).width,skin.getBounds(skin).y+skin.getBounds(skin).height));
localToGlobal(point)
deDisplayObject
Convertit l'objet point de l'objet d'affichage (local) coordonnées de la Scène (global) des coordonnées.Point a des propriétés x et y de la. Vous pouvez utiliser topLeftStage.x pour obtenir l'abscisse.
OriginalL'auteur taskinoor
Vous pouvez le faire en une seule ligne, par exemple, si le conteneur que vous avez ajouté qu'il est un objet d'affichage, vous pouvez écrire:
Qui va sauter directement à vous obtenir un rectangle par rapport à la scène. Vous pouvez ensuite accéder aux valeurs mentionnées spécifiquement:
OriginalL'auteur Michael Martin
Si votre objet est en un conteneur, alors vous pouvez simplement soustraire les conteneurs de la position des objets.
D'autre de
localToGlobal()
comme ci-dessus.Trouver le haut à gauche et en bas à droite des points d'un objet est facile, mais vous devez savoir où le point de référence, le symbole.
Si le point d'enregistrement où, dans le centre du symbole:
Si elle était en haut à gauche:
Etc.
Je vais mettre à jour ma réponse.
OriginalL'auteur Marty
si la classe displayobject ne démarre pas à 0,0 de la movieclip, vous aurez besoin de ceci:
et les résultats seront:
OriginalL'auteur csomakk