[improve] (render) check part pixel under cursor
This commit is contained in:
@@ -133,18 +133,32 @@ class Render extends SpriteView implements IRender {
|
||||
}
|
||||
|
||||
private function onMouseDown(event:MouseEvent):Void {
|
||||
if (Std.is(event.target, PartView)) {
|
||||
var part:PartView = event.target;
|
||||
var point:FlashPoint = new FlashPoint(event.stageX, event.stageY);
|
||||
var objects = tableView.getObjectsUnderPoint(point);
|
||||
objects.reverse();
|
||||
var pointPart:PartView = null;
|
||||
for (object in objects) {
|
||||
if (Std.is(object, PartView)) {
|
||||
var part:PartView = cast object;
|
||||
var partPoint = part.globalToLocal(point);
|
||||
var color = part.image.shadedImage.getPixel(Std.int(partPoint.x), Std.int(partPoint.y));
|
||||
if (color > 0) {
|
||||
pointPart = part;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pointPart != null) {
|
||||
if (event.ctrlKey) {
|
||||
save(part);
|
||||
save(pointPart);
|
||||
return;
|
||||
}
|
||||
if (part.completed) {
|
||||
if (pointPart.completed) {
|
||||
return;
|
||||
}
|
||||
activePart = part;
|
||||
activePart = pointPart;
|
||||
tableView.setChildIndex(activePart, tableView.numChildren - 1);
|
||||
activePoint = tableView.globalToLocal(new FlashPoint(event.stageX, event.stageY));
|
||||
activePoint = tableView.globalToLocal(point);
|
||||
tableView.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
|
||||
tableView.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
|
||||
signal.emit(ACTION(PART_TAKE(activePart.id)));
|
||||
|
||||
Reference in New Issue
Block a user