mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 10:45 Benutzername: Passwort: Auto-Login

Thema: AS3: Kommunikation zwischen Instanzen vom 06.11.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> AS3: Kommunikation zwischen Instanzen
Seite: 1, 2  Weiter
Autor Nachricht
Popkultur
Threadersteller

Dabei seit: 08.05.2006
Ort: bei Stuttgart
Alter: -
Geschlecht: Männlich
Verfasst Do 06.11.2008 01:39
Titel

AS3: Kommunikation zwischen Instanzen

Antworten mit Zitat Zum Seitenanfang

Hallo,

Meine Frage bezieht sich zwar auf Actionscript 3, aber lässt sich auch generell übertragen und als grundlegende Fragestellung ansehen in der OOP, die ich das erste mal exzessiv einsetze.

Ich programmiere eine kleine Simulation einer Wiese, habe also eine Wetter-Instanz, eine Boden-Instanz und mehrere hundert Grashalm-Instanzen. Alle haben gewisse Eigenschaften, die sich auch gegenseitig beeinflussen sollen. Außerdem gibt es eine Kontrollfeld-Instanz, die einige dieser Eigenschaften verändern soll und einige Anzeigen soll.

Hierarchisch gesehen sind die Grashalm-Instanzen alle Brüder, und auch Brüder der Wetter und Boden-Instanz. Eltern-Instanz ist die Simulation.

Nun stosse ich ständig auf die Frage, wie die Bruder-Instanzen untereinander die Daten austauschen sollten. Ich kann nicht innerhalb der Grashalm-Instanz einen Zugriff auf wetter.temperatur oder boden.feuchtigkeit machen. Das ginge theoretisch über parent, ist aber recht dreckig. gekapselt wäre es ohnehin nicht. auch Methoden der Bruder-Instanzen kann ich so ja nicht aufrufen.

Also irgendwo habe ich noch einen ganz grundlegenden Denkfehler was objektorientierte Programmierung angeht. Wer sieht ihn? Wie kann der Grashalm auf die Bodenfeuchte zugreifen, um dann langsamer oder schneller zu wachsen? Wie liest das Kontrollfeld die Eigenschaften aller anderen aus um diese anzuzeigen?
  View user's profile Private Nachricht senden
SURE612

Dabei seit: 02.12.2005
Ort: Bärlin / CB
Alter: -
Geschlecht: Männlich
Verfasst Do 06.11.2008 02:55
Titel

Re: AS3: Kommunikation zwischen Instanzen

Antworten mit Zitat Zum Seitenanfang

Kreativist hat geschrieben:
Zugriff auf wetter.temperatur oder boden.feuchtigkeit


so sollte es eigentlich gehen
hast du die eigenschaften auch auf public gesetzt?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Popkultur
Threadersteller

Dabei seit: 08.05.2006
Ort: bei Stuttgart
Alter: -
Geschlecht: Männlich
Verfasst Do 06.11.2008 03:01
Titel

Antworten mit Zitat Zum Seitenanfang

Ja, natürlich, es hat wirklich damit zu tun, dass es sich um "Geschwister"-Instanzen handelt. Instanz Simulation sagt: New boden, New wetter. Instanz boden versucht es mit wetter.temperatur aber scheitert.

Inzwischen bin ich dazu übergegangen, den Methoden von wetter und boden jeweils die Referenz auf die Schwester-Instanz zu übergeben. Also: public function boden.returnFeuchte(w:Wetter); und Aufruf per boden.returnFeuchte(wetter)
  View user's profile Private Nachricht senden
SURE612

Dabei seit: 02.12.2005
Ort: Bärlin / CB
Alter: -
Geschlecht: Männlich
Verfasst Do 06.11.2008 03:07
Titel

Antworten mit Zitat Zum Seitenanfang

dieses bruder und schwester kenne ich nicht aus der oo-programmierung
zeig doch mal code
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Do 06.11.2008 06:18
Titel

Antworten mit Zitat Zum Seitenanfang

du musst deinem Halm bei seine "geburt" schon sagen, wer wer ist. ist ja bei dir genauso. wenn du im krankenhaus zu welt kommst, weiss du ja auch nicht, wer wer ist.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 06.11.2008 10:11
Titel

Antworten mit Zitat Zum Seitenanfang

Bei komplexen Beziehungen lohnt ein Blick auf das http://de.wikibooks.org/wiki/Muster:_Observer
  View user's profile Private Nachricht senden
Popkultur
Threadersteller

Dabei seit: 08.05.2006
Ort: bei Stuttgart
Alter: -
Geschlecht: Männlich
Verfasst Do 06.11.2008 13:44
Titel

Antworten mit Zitat Zum Seitenanfang

@FlamingArt: Das ist schon klar, jeder Halm hat seinen eigenen Array-Eintrag und ne id. Das ist aber nicht das Problem.

Events helfen hier auch nicht, da ich die Daten bei jedem Tick (Frame) aktualisieren muss. Das Event tritt also quasi immer ein.
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 06.11.2008 20:07
Titel

Antworten mit Zitat Zum Seitenanfang

Ich glaub du siehst den Wald vor lauter Gräsern nicht. Das mit der Kapselung haste ja schon raus, aber warum nicht einfach entspr. Getter und Setter verwenden?

Base: getBoden()->instance of Boden getWetter()->instance of Wetter getGrashalme() ->collection of Grashalm

U.s.w., fertisch.

Vlt noch eine Anmerkung zum Design: Dass alle Grashalme Geschwister sind, ist kann zwar wortwörtlich richtig sein, aber nicht unbedingt durchsetzbar. Das hieße, dass jeder Grashalm Referenzen auf jeden anderen Grashalm besitzt, was ein wenig unübersichtlich zu pflegen wär (im Falle von addGrashalm() etc). Boden und Wetter sind mitnichten Geschwister von Grashalm. Im Weitesten Sinne ist Boden Elter von Grashalm: Warum also nicht den Boden als Elter von Grashalm nehmen? :

Boden: getGrashalme() -> collection of Grashalm

getGrashalme() ist dann ne Proxymethode für Base:getGrashalme(), implementiert also nix sondern ruft bspw. getBoden()->getGrashalme() auf.

Wetter dümpelt einfach nur so rum und beeinflusst Boden sowie Grashalm. Und hier sind Events vielleicht doch ganz Sinnvoll: Event regen, Event trockenheit, Event Sturm blahblah. Diese Events haben dann Einfluss auf Boden und Grashalme.
  View user's profile Private Nachricht senden
 
Ähnliche Themen 2 Photoshop Instanzen
instanzen verändern
[Flash 5]Instanzen scrollen
Frage bzgl. Instanzen ansprechen
[Flash] Farbe der Instanzen ändern
mehrere jquery instanzen (productslide) auf einer seite
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.