2016-07-30 22 views
0

Ich habe die relevant post in the Flambe guide aber nicht sehen konnte, keine Nutzung der clone() Funktion lesen. Die APIs der verschiedenen Ereignisklassen (wie die PointerEvent class) enthalten diese Notiz:Was sind die besten Praktiken für die Arbeit mit Tastatur- und Mausereignissen in Flambe?

Hinweis: Aus Performance-Gründen PointerEvent Instanzen von Flambe wiederverwendet werden. Verwenden Sie clone(), um einen Verweis auf ein Ereignis beizubehalten.

Ich habe 3 Fragen:

  1. Ist es möglich, dass ein PointerEvent Objekt ändern wird, obwohl mein Code noch daran arbeitet?
  2. Wann sollte ich die Funktion clone() verwenden?
  3. Gibt es noch weitere Best Practices, die ich im Umgang mit Ereignissen in Flambe beachten sollte?

Antwort

1
  1. Es sollte das gleiche im gleichen Rahmen, aber ich bin mir nicht sicher, ob dies sicher ist. Ich verwende die Regel, wenn Sie sie an eine andere Instanz übergeben oder sie später erneut verwenden möchten, klonen Sie sie.
  2. Wenn Sie das Ereignis im nächsten Frame speichern möchten. Ich persönlich kopiere die viewX/viewY-Werte hauptsächlich in einen benutzerdefinierten Punkt (zum Beispiel, wenn Sie selbst einen Swipe erkennen möchten), so dass das vollständige Ereignis nicht geklont werden muss, sondern dass es meine Präferenz ist.
  3. Always dispose the events. Sie geben eine SignalConnection zurück. Machen Sie dies zu einem privaten Mitglied und entsorgen Sie es in der dispose-Funktion, oder registrieren Sie es zu einem Disposer, wenn Sie es verwenden. Dies vermeidet Speicherlecks und unerwünschtes Verhalten.