Einfachste Implementierung von onReleaseOutside in AS3?

Ich bin ein langjähriger ActionScript 2-Benutzer und arbeite gerade mit ActionScript 3. Was mir fehlt, ist eine einfache Möglichkeit, die Funktionen von MovieClip.onReleaseOutside in AS2 zu duplizieren. Es ist fast immer notwendig, dieses Ereignis zu implementieren, da es ansonsten zu lustigen Fehlern kommt, wenn Flash denkt, dass Ihre Maus nicht funktioniert, wenn sie wirklich aktiv ist.

LautMigrationshandbuch für AS2 zu AS3Soll ich verwendenflash.display.InteractiveObject.setCapture() dafür gibt es es aber soweit ich das beurteilen kann nicht. Ich denke, dieses Dokument ist veraltet oder falsch. Ich habe im Internet einige Posts gefunden, in denen beschrieben wird, wie diese Funktionalität dupliziert werden kann. Beide haben jedoch ihre eigenen Probleme:

Dieses Löst onReleaseOutside aus, auch wenn kein entsprechendes onPress-Ereignis vorhanden ist.Dieses Scheint sehr ineffizient zu sein, fügen Sie jedes Mal, wenn Sie mit der Maus auf eine beliebige Stelle in Ihrer App klicken, einen Ereignis-Listener hinzu und entfernen ihn.

Es muss einen einfacheren Weg geben. Sag mir nicht, dass Adobe dies beim Umschreiben von Actionscript vergessen hat.

Beispiel AS2 Code:

// Assume myMC is a simple square or something on the stage

myMC.onPress = function() {
  this._rotation = 45;
}

myMC.onRelease = myMC.onReleaseOutside = function() {
  this._rotation = 0;
}

Wenn Sie ohne den onReleaseOutside-Handler auf das Quadrat gedrückt haben, die Maus außerhalb des Quadrats gezogen und die Maustaste losgelassen haben, wird das Quadrat nicht mehr gedreht und scheint nicht mehr zu funktionieren.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage