Utilisation des objets Point

Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures

Un objet Point définit une paire de coordonnées cartésiennes. Il représente un emplacement dans un système de coordonnées à deux dimensions, dans lequel x est l’axe horizontal et y l’axe vertical.

Pour définir un objet Point, vous définissez ses propriétés x et y comme suit :

import flash.geom.*; 
var pt1:Point = new Point(10, 20); // x == 10; y == 20 
var pt2:Point = new Point(); 
pt2.x = 10; 
pt2.y = 20;

Calcul de la distance entre deux points

Vous pouvez utiliser la méthode distance() de la classe Point pour calculer la distance entre deux points dans un espace de coordonnées. Par exemple, le code suivant calcule la distance entre les points d’alignement de deux objets d’affichage, circle1 et circle2, dans le même conteneur d’objet d’affichage :

import flash.geom.*; 
var pt1:Point = new Point(circle1.x, circle1.y); 
var pt2:Point = new Point(circle2.x, circle2.y); 
var distance:Number = Point.distance(pt1, pt2);

Translation d’espaces de coordonnées

Si deux objets d’affichage résident dans des conteneurs d’objet d’affichage distincts, ils peuvent figurer dans des espaces de coordonnées distincts. Vous pouvez utiliser la méthode localToGlobal() de la classe DisplayObject pour traduire les coordonnées dans le même espace de coordonnées (global), celui de la scène. Par exemple, le code suivant calcule la distance entre les points d’alignement de deux objets d’affichage, circle1 et circle2, dans les différents conteneurs d’objet d’affichage :

import flash.geom.*; 
var pt1:Point = new Point(circle1.x, circle1.y); 
pt1 = circle1.localToGlobal(pt1); 
var pt2:Point = new Point(circle2.x, circle2.y); 
pt2 = circle2.localToGlobal(pt2); 
var distance:Number = Point.distance(pt1, pt2);

De même, pour calculer la distance du point d’alignement d’un objet d’affichage nommé target à partir d’un point spécifique de la scène, utilisez la méthode localToGlobal() de la classe DisplayObject :

import flash.geom.*; 
var stageCenter:Point = new Point(); 
stageCenter.x = this.stage.stageWidth / 2; 
stageCenter.y = this.stage.stageHeight / 2; 
var targetCenter:Point = new Point(target.x, target.y); 
targetCenter = target.localToGlobal(targetCenter); 
var distance:Number = Point.distance(stageCenter, targetCenter);

Déplacement d’un objet d’affichage en fonction d’une distance et d’un angle donnés

Vous pouvez utiliser la méthode polar() de la classe Point pour déplacer un objet d’affichage d’une distance et d’un angle spécifiques. Par exemple, le code suivant déplace l’objet myDisplayObject en fonction d’une distance de 100 pixels et d’un angle de 60° :

import flash.geom.*; 
var distance:Number = 100; 
var angle:Number = 2 * Math.PI * (90 / 360); 
var translatePoint:Point = Point.polar(distance, angle); 
myDisplayObject.x += translatePoint.x; 
myDisplayObject.y += translatePoint.y;

Autres utilisations de la classe Point

Vous pouvez utiliser des objets Point avec les propriétés et les méthodes suivantes :

Classe

Méthodes ou propriétés

Description

DisplayObjectContainer

areInaccessibleObjectsUnderPoint()getObjectsUnderPoint()

Utilisée pour renvoyer une liste d’objets sous un point dans un conteneur d’objet d’affichage.

BitmapData

hitTest()

Utilisée pour définir le pixel dans l’objet BitmapData ainsi que le point pour lequel vous recherchez une zone active.

BitmapData

applyFilter()

copyChannel()

merge()

paletteMap()

pixelDissolve()

threshold()

Utilisée pour indiquer les positions des rectangles qui définissent les opérations.

Matrice

deltaTransformPoint()

transformPoint()

Utilisée pour définir des points auxquels vous souhaitez appliquer une transformation.

Rectangle

bottomRight

size

topLeft

Utilisée pour définir ces propriétés.