| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Nov 2006
Beiträge: 8
| Flex 4: Events von verschachtelten Komponenten (Costum ItemRenderer) abfangen
Hallo, bin noch neu in der Flex & AS3 Programmierung. Bisher bin ich aber dank Flex in a Week Videotutorials, des Flashforums und Google recht schnell bei Problemen weitergekommen. Leider nicht bei diesem Fall: Ich möchte von einem Costum ItemRenderer ein Event abfangen. Bei einer weiteren eigens erstellten Komponente habe ich dafür das Event als Eigenschaft angelegt und den Handler angegeben und die MainApp konnte das Event verarbeiten. Problem ist nun, dass entweder die MainApp das Event nicht auflösen kann (wenn ich beispielsweise die Event-Eigenschaft in der DataGroup einfüge) oder Flex einen weiteres Script-Tag erstellt, sobald ich das Event beim "FurnierPodRenderer" als Eigenschaft unterbringe (wo es dann auch von der FlashBuilder AutoComplete Funktion erkannt wird). Ich kann mir aber nicht vorstellen, dass ich jetzt eine Extrafunktion in einem "Sub"-Script-Tag erstellen muss, die wiederum das selbe Event nochmals feuert, damit es an die MainApp weitergereicht wird. Vielmehr dachte ich, es käme hier das Bubbling zum Tragen, die das Event durch meine App geistern lässt, bis es verwertet wird oder bis es in der MainApp angelangt ist. In einem Artikel habe ich gelesen, man solle im ItemRenderer mit "parent" beim Eventdispatchen arbeiten (parent.parent.dispatchEvent(evtObj) ). Funktioniert aber nicht und zudem wäre es dann doch auch nicht mehr "loosely Coupled", oder? So dachte ich es mir - so funktioniert's aber nicht (Fehler: Das Attribut 'deleteMaserEvent' für den Komponententyp spark.components.DataGroup kann nicht aufgelöst werden.): Code: <s:DataGroup id="savedFurnierView"
x="460" y="3"
width="480" height="100"
dataProvider="{savedMasersForArticleNo}"
deleteMaserEvent="furnierPodRenderer_deleteMaserEventHandler">
<s:layout>
<s:HorizontalLayout gap="2"/>
</s:layout>
<s:itemRenderer >
<fx:Component>
<s:ItemRenderer>
<components:FurnierPodRenderer furnier="{data}"/>
</s:ItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:DataGroup> Code: <s:DataGroup id="savedFurnierView"
x="460" y="3"
width="480" height="100"
dataProvider="{savedMasersForArticleNo}">
<s:layout>
<s:HorizontalLayout gap="2"/>
</s:layout>
<s:itemRenderer >
<fx:Component>
<s:ItemRenderer>
<fx:Script>
<![CDATA[
import events.DeleteMaserEvent;
protected function furnierpodrenderer_deleteMaserEventHandler(event:DeleteMaserEvent):void
{
// TODO Was mache ich dann hier? Nochmal das gleiche Event dispatchen?
}
]]>
</fx:Script>
<components:FurnierPodRenderer
furnier="{data}"
deleteMaserEvent="furnierpodrenderer1_deleteMaserEventHandler(event)"/>
</s:ItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:DataGroup> |
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 11.856
|
Mach am besten eine richtige Komponente draus. Es ergeben sich eher mehr Probleme als gutes aus den deklarativen Renderern. Abfangen kannst du die Events, wenn die Events bubblen oder du holst dir die Referenz auf den Renderer via RendererExistenceEvents aus der DataGroup.
__________________ github: https://github.com/floriansalihovic/L18nExample <florian xmlns:speaker="www.beyondtellerrand.com/ffk11/speakers_sessions" xmlns:trainer="http://www.beyondtellerrand.com/ffk11/workshops" /> and @ g+ |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| costum itemrenderer, events, flex 4 |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Event abfangen aus ItemRenderer Komponente | Doesel | Flex programmieren | 9 | 24-06-2008 14:51 |
| Events von MC richtig abfangen | tengelman | ActionScript 2 | 4 | 02-01-2008 16:25 |
| Events von SimpleButton abfangen? | maschka | ActionScript 3 | 2 | 12-02-2007 09:57 |
| Events bei Verschachtelten MC's | Terminal | ActionScript 2 | 3 | 21-02-2006 15:31 |
| Events abfangen | Marco | ActionScript 1 | 2 | 30-07-2002 13:08 |