Si tu veux savoir les mouches sous ta tapette, il faut utiliser getRect() ou getBounds() pour les mouches et la tapette et une condition avec les méthodes de rectangle...intersection(), containsRect()...
un essai rapide :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.ui.Mouse;
public class Main extends Sprite
{
private var mouches:Array = new Array();
private var tapette:Sprite = new Sprite();
private var Affichage:TextField = new TextField();
private var Font:TextFormat = new TextFormat();
public function Main():void
{
var num:uint;
for (var i:int = 0; i < 3; i++)
{
mouches[i] = new Sprite();
with (mouches[i].graphics)
{
beginFill(0xFF0000);
drawCircle(0, 0, 10);
}
num = i + 1;
mouches[i].name = "mouche n°" + num.toString();
addChild(mouches[i]);
}
mouches[0].x = 200;
mouches[0].y = 200;
mouches[1].x = 220;
mouches[1].y = 220;
mouches[2].x = 240;
mouches[2].y = 200;
with (tapette.graphics)
{
beginFill(0x00FF00);
drawEllipse(-35, -40, 70, 80);
}
addChild(tapette);
with (Font)
{
font = "arial";
size = 22;
color = 0;
align = "left";
}
with (Affichage)
{
defaultTextFormat = Font;
x = 5;
y = 20;
autoSize = "left";
selectable = false;
}
addChild(Affichage);
Mouse.hide();
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}
private function onMouseMove(e:MouseEvent):void
{
Affichage.text = "";
tapette.x = mouseX;
tapette.y = mouseY;
for (var i:int = 0; i < 3; i++)
if (tapette.getRect(stage).containsRect(mouches[i].getRect(stage)))
Affichage.appendText(" " + mouches[i].name);
}
}
} |
NewProject.swf
cordialement (je l'ai fait sur le mousemove mais tu peux le faire sur le mousedown...)
si tu veux détecter les mouches qui touchent partiellement la tapette :
if (tapette.getRect(stage).intersects(mouches[i].getRect(stage))).....
Partager