Ich habe einige Tests bezüglich der MouseEvents durchgeführt. Dank Neal Davis wurde das meiste für mich geklärt. Jetzt möchte ich Codes so gestalten, dass, wenn ich klicke, es beginnt, Kreise entlang der x- und y-Koordinaten der Maus zu zeichnen. Wenn ich die linke Maustaste loslasse, hört es auf, Kreise zu zeichnen. Ich habe versucht, diese so weit wie möglich zu replizieren, aber das ist, wo ich schließlich fest:Können wir MouseEvents deaktivieren?
stage.addEventListener(MouseEvent.MOUSE_DOWN, mClickOn);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mMove);
stage.addEventListener(MouseEvent.CLICK, mClickOff);
public var clickOn:Boolean;
public var clickOff:Boolean;
public function mClickOn(e:MouseEvent):void
{
clickOn = e.buttonDown;
}
public function mClickOff(e:MouseEvent):void
{
clickOff = e.buttonDown
}
public function mMove(e:MouseEvent):void
{
if (clickOn) //keep drawing when left click
{
draw.create(e.localX, e.localY);
addChild(draw);
}
else if (clickOff) //don't draw when you let go of left click
{
null;
}
}
Das Problem ist, dass MOUSE_DOWN wahr ist, wenn darauf geklickt links, aber ich davon aus, dass, wenn wir zu klicken, nicht mehr verlassen, ist es ll wird automatisch zu false zurückkehren. Zu meinen Tests bleibt es nach dem ersten Klick wahr. Was CLICK betrifft, ist es immer falsch.
Wie mache ich es so, dass diese MouseEvents ein- und ausgeschaltet werden können? Ich möchte ein Bleistiftwerkzeug/Simulator machen.
Bitte überprüfen Sie das API-Referenzmaterial, das ich bei Ihrer letzten Frage gepostet habe. Es gibt wirklich eine Menge guter Sachen darin, dass es aussieht, als hättest du nicht gelesen. –
Ihr else if/null Block ist sinnlos. Alle if-Blöcke haben das impliziert. Wenn X dann y * wenn nichts tun * –