In einer FLEX-App versuche ich, ein benutzerdefiniertes Ereignis erneut zu versenden. I.e. component1 gibt dispatchEvnet (event) aus, component2 registriert einen Handler für das Ereignis, die einzige Funktion des Handlers ist wiederum dispatch (event). Schließlich wartet component3 auf das Ereignis, das aus component2 kommt. Was ich versuche zu tun, ist ähnlich dem Konzept von "Re-Werfen" Ausnahmen (und aus ähnlichen Gründen). Der Unterschied ist, dass das erneute Versenden in AS3 (Flash 10) nicht zu funktionieren scheint. In IE passiert nichts, und in FF3 gibt es eine Ausnahme, die besagt, dass die Typumwandlung fehlgeschlagen ist, während versucht wurde, den Event-Typ zu meinem CustomEvent zu zwingen, während der Handler in component3 aufgerufen wird. Das Verfolgen von Code im Debugger zeigt, dass zu dem Zeitpunkt, an dem component3 aufgerufen wird, das Ereignis tatsächlich ein generisches Ereignis ist und alle meine benutzerdefinierten Sachen verloren sind. Soll das der Fall sein?Ereignis erneut senden in FLEX
Antwort
Das Problem, das auftritt, wird dadurch verursacht, dass das Ereignis clone() in Ihrem benutzerdefinierten Ereignis nicht überschrieben wird.
Wenn Ereignisse erneut gesendet werden, werden sie geklont und geändert. Wenn Sie clone() nicht überschreiben, erhalten Sie die Basisimplementierung von clone(), die ein Event zurückgibt. Da Event nicht in den benutzerdefinierten Ereignistyp umgewandelt werden kann, wird ein Laufzeitfehler ausgelöst.
Aus der Dokumentation:
Wenn Sie Ihre eigenen benutzerdefinierten Event-Klasse erstellen, müssen Sie die geerbte Event.clone() -Methode, um außer Kraft setzen, damit sie die Eigenschaften der benutzerdefinierten Klasse zu duplizieren. Wenn Sie nicht alle Eigenschaften, die Sie in der Ereignisunterklasse hinzufügen, festlegen, weisen diese Eigenschaften nicht die richtigen Werte auf, wenn Listener das Ereignis redispatched verarbeiten.
- 1. Flex tatsächliches CreationComplete-Ereignis
- 2. Flex Result Ereignis ... Frage
- 3. Anfrage erneut senden angular 2
- 4. Flex AdvancedDataGrid databind complete Ereignis
- 5. keydown in flex Flex
- 6. Wie Wert senden über URL in FLEX
- 7. Formular erneut anzeigen nach dem Senden
- 8. Optionsfeld zuerst deaktiviert, nachdem Senden erneut aktiviert
- 9. docusign erneut senden Umschlag Problem mit Demokonto
- 10. FLEX: Wie man ein 'href' Ereignis fängt
- 11. Flex AS3 - Dispatch-Ereignis an alle Instanzen von ItemRenderer
- 12. Wie erzwingen Flex zum buble Standard Ereignis
- 13. Pakete über RAW-Sockets in Linux erneut senden
- 14. Google Analytics Ereignis senden Rückruffunktion
- 15. Ein Ereignis in RxSwift manuell senden
- 16. Objekte senden von flex auf Java Servlet
- 17. netStream mit groupSpecifier nicht senden Handler, FLEX
- 18. Wie ein Click-Ereignis zu Achsenbeschriftungen in Flex hinzuzufügen
- 19. Unterscheidung zwischen F5 und Browser schließen Ereignis in Flex/ActionScript
- 20. Kann ich einer Datenbindungsaktion in Flex einen Ereignis-Listener hinzufügen?
- 21. Wie Sie einen Ereignis-Listener hinzufügen, entfernen und erneut hinzufügen?
- 22. Django-Registrierung erneut senden E-Mail mit neuem Code
- 23. Flex-Ereignisbehandlung
- 24. zookeeper-Nachricht nach der konfigurierten Zeit erneut senden
- 25. Eine Seite aktualisieren, ohne POST-Daten erneut zu senden (ASP.NET)
- 26. ASP.net Identity Framework - Bestätigungs-E-Mail erneut senden
- 27. Ungültiges CSRF-Token. Senden Sie das Formular erneut. Adminer
- 28. Flex: wenn Komponenten in flex
- 29. So senden Sie eine GWT RequestFactory-Anforderung erneut
- 30. Den Browser davon abhalten, Post-Variablen erneut zu senden