recently, stieß ich auf ein Problem, wo ich auf das List-Objekt von der benutzerdefinierten Cell-Renderer-Klasse der Liste zugreifen musste.ActionScript - Sollte Event Dispatching/Listening vermieden werden, wo immer möglich?
gab es 2 Möglichkeiten:
- anhören und lösen Sie ein benutzerdefiniertes Ereignis zwischen den zwei Klassen zu kommunizieren.
- verweisen auf die Liste aus der Zelle Renderer-Klasse mit der Eigenschaft parent: List (parent.parent.parent)
während es viel einfacher ist, die zweite Option zu wählen, ich das Gefühl, dass für einen Dispatching und Zuhören Ein benutzerdefiniertes Ereignis würde zu einem Code führen, der mehr mit dem Design von AVM2 in Verbindung steht, eine bessere Kontrolle für die Kommunikation bietet und, wie es erwartet wird, AS3 weniger schwierig zu debuggen oder in neuen Händen zu warten.
jedoch habe ich auch das Gefühl, dass die Verwendung eines Ereignisses teurer ist, erfordert Aufmerksamkeit für Ressourcen-Management vielleicht macht es schwieriger zu debuggen und zu pflegen und könnte im Allgemeinen Overkill sein.
ist das einfach eine Frage der Bedürfnisse oder des Geschmacks? sollte das Absenden/Abhören von benutzerdefinierten Ereignissen vermieden werden, wenn dies möglich ist?
* während List (parent.parent.parent) funktioniert, habe ich vor kurzem festgestellt, dass der Zugriff auf das übergeordnete Element einfach mit List (listData.owner) aus der benutzerdefinierten Cell-Renderer-Klasse erreicht wird. – TheDarkIn1978