2012-01-24 5 views

Répondre

2

Vous pouvez définir un objet Rectangle avec vos boîtes coordonnées comme ça:

var coords1:Rectangle = new Rectangle(box1.x, box1.y, box1.width, box1.height); 
var coords2:Rectangle = new Rectangle(box2.x, box2.y, box2.width, box2.height); 

Ensuite, il suffit d'utiliser la méthode containsRect:Boolean:

coord2.containsRect(coord1) 
1

utilisez la méthode hitTestObject pour détecter une collision

1

Je ne sais pas exactement ce que vos boîtes sont, mais si elles sont une sorte de rectangles définis avec les coordonnées de coin supérieur gauche (x, y) et (largeur, hauteur), puis

if ((box1.x >= box2.x)&&(box1.y >= box2.y)&&(box1.width <= box2.width-(box1.x-box2.x)&&(box1.height <= box2.height-(box1.y-box2.y))) { 
    // box1 is inside box2 
} 

devrait faire le travail.

Si vos boîtes sont en 3D, vous devrez faire la même chose avec z et la profondeur ainsi:

&&(box1.z >= box2.z)&&(box1.depth <= box2.depth-(box1.z-box2.z)) 
+0

merci ... dois-je comparer la largeur et la hauteur de l'étape? – rizwin

+0

Si vous voulez vous assurer que la boîte est à l'intérieur de la scène, alors oui. Sinon, il suffit d'opérer sur la largeur/hauteur des boîtes. – zrxq

+0

ok pouvez-vous s'il vous plaît envoyez-moi le code en le comparant avec l'étape – rizwin

3

utilisation peut utiliser ci-dessous le code pour vérifier movieclip intercect ou non

box1.getRect(this).intersects(box2.getRect(this)) 

ce retour vrai si l'intercaler ou faux si échouent

Questions connexes