| |||||||
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: May 2004
Beiträge: 13
| --> Anhänge: sourcen und libs als zip / Printscreen der PersonModel.as Klasse Szenario: Mein Ziel ist es eine "Base-Model" Klasse als "Super-Klasse" für alle meine Modelle zu implementieren. Dieses "Base-Model" hat einige features, eins davon ist, dass ich für ein property zwei Werte halte. Einmal den originalen Wert, und einmal den geänderten. Damit habe ich den Vorteil das ich "save", "restore" Funktionalität anbieten kann und in einem Databinding auf den originalen oder den geänderten Wert binden kann (typisches Beispiel: View bindet auf originalen wert / Editor bindet auf den geänderten Wert) Die geänderten Werte halte ich in einer Map (Ich verwende als Collection-Library die as3Commons-Collection library). Wenn ich einen Wert eines properties ändere (den "geänderten Wert"), dann wird der Wert in der Map mit dem Property Key (als Konstante im Model gehalten) mit dem neuen Wert überschrieben und ein PropertyChange event ausgelöst. Auf diese ChangeEvents binde ich dann über die "ChangeWatcher" Klasse meine Handler in denen ich in einem ersten Schritt nur ein Log-Statement erzeuge. Problem: Ich schaffe es nicht einen propertyChangeEvent für ein einzelnes Property abzufangen. Vorgehen:
Ich möchte aber das wenn ich einen Wert eines properties ändere nur dieses eine Property einen Event auslöst, das heisst ich möchte beim ändern des Namens nur das folgende Log-Statement sehen: Zitat:
Über das Binding, welches im ChangeWatcher erstellt wurde, wird auf Events vom Typ "PropertyChangeEvent" gehört. Aber ich verstehe nicht wie ich ein "Deep Binding" über mehrere "hierarchische" Stufen realisieren kann. Wenn wir noch einmal anschauen wie das binding erstellt wird, hoffe ich, ist klar was ich machen will. Code: ChangeWatcher.watch(model, [PersonModel.P_EDITED_VALUES, {name:PersonModel.P_FIRST_NAME, getter:getGetterFunctionForMap(), setter:getSetterFunctionForMap()}], onEditedNameChanged); Code: private function onEditedValueChanged(event : MapEvent) : void {
LOG.debug("onEditedValueChanged");
dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, P_EDITED_VALUES, null, _editedValues));
} Ich bedanke mich schon im voraus auf wertvolle Tipps, ich weiss nicht mehr weiter. Anmerkung: Ich habe auch schon versucht einen "custom-event" zu dispatchen, welcher im Bindable Tag [Bindable(event="customEvent"] eines Properties registriert wird. | ||
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
|
Und das PersonModel sieht wie aus?
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #4 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
|
Ich glaube die Anwendung der getter/setter funktionen ist falsch. Scope der Funktionen und Eigenschaften, die im Closure ausgeführt werden, referenzieren nicht die Objekte, die du in der Funktion angibst. Ich baue heute Nachmittag/Abend ein Beispiel.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: May 2004
Beiträge: 13
| Getter / Setter sind in Ordnung
Ich bin mir ziemlich sicher, dass die getter / setter Methoden so funktionieren, ich habe das ganze auch schon "gedebuggt" und die rückgabewerte sind korrekt. Das Problem ist wohl das in der chain des bindings das erste property P_EDITED_VALUES bei jedem binding gleich ist, und somit die handler immer aufgerufen werden ohne die weiteren properties der chain zu beachten. Wie ich das aber lösen kann, weiss ich nicht?! |
| | |
| | #6 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
|
Ich schaue mir das nachher noch mal an.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #7 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
|
Sorry, gestern war zu viel los. Ich hab das Problem aber nicht vergessen.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| ArrayCollection Items übergeben und Werte ändern bei Aallen Items? | Silver_Surfer | Flex programmieren | 6 | 10-11-2010 15:05 |
| Deep Exploration | Flash_Lerhling | 3D | 1 | 07-06-2004 16:26 |
| deep link von html in flash | dahoo | HTML und CSS | 1 | 22-09-2003 14:02 |