Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-07-2008, 14:50   #1 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
Verwaltung von Events einer Komponente

Hoffe mal es passt hier

Also es geht mir eigentlich um folgendes:
Ich möchte eine Basisklasse haben ähnlich der UIComponent
und diese benutzen für meine eigenen Komponenten (für für ist hier egal).

So Sagen wir mal ich benutze die und habe eine Window Klasse.
Wie sollte das aussehen?

Zum testen benutze ich jetz nur die Graphic-Eigenschaften der Sprite Klasse
um ein Fenster zu zeichnen. Wie behandel ich aber jetzt die Events?

Wenn ich später anstelle des Gezeichneten Bilder haben möchte ...

1. Ich adde die MouseEvents intern an die Window-Klasse und fange diese ab und schau WO geklikt worden ist um dann weiterzumachen .... ws ähnelt das dem MVC

2. ich habe mehrere sprites in der Windowklasse die alle bekommen ihre wichtigen events und das wars. (ws besser weil ich so die bilder einzelnd schneller laden kann)

Mein Problem ist iwie das ich recht wenig mit der Spriteklasse in meiner eigenen zu tun haben will. mich stört sowieso schon das ich davon erben muss um sie in der displaylist hinzuzufügen =/
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 17-07-2008, 14:59   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg
Beiträge: 4.385
Es empfiehlt sich, dass du erstmal festlegst, was für Events denn von außen gesehen für ein Window wünschenswert wären. Verwendet man die Komponente, ist einem ja erstmal egal, wie sie diese Events erzeugt, das sollte also unabhängig von der Implementierung innerhalb der Komponente funktionieren.
Im der Komponente muss du halt dann gucken, wie du diese Events auslöst, das kann sich aber wie du ja schreibst im Laufe der Entwicklung ändern, sei es, weil du die komponenteninterne Architektur änderst (graphics -> mehrere Sprites) oder aus anderen Gründen. Hauptsache die Events nach außen kannst du immer funktional halten.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 17-07-2008, 15:03   #3 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
ja also einfacher erscheint mir es nach dem MVC zu machen,
dass die einzelnden komponenten (closeButton etc.) den Views entsprechen
und das Window selber die Kombination aus Controler und Model.

Aber andererseits kann ich ja auhc nich unmengen an einzelnden komponenten
in einer komponente haben

Wenn die events aber unabhängig von der implementierung sein sollen dann ist es
so gesehen aber besser, weil ich weiß ja nie, ob das fenster ncihtmal keinen minimier-button hat, seh ich das richtig?
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 03-08-2008, 01:11   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.681
Machs doch so:


PHP-Code:
public function initWindow_closeButton:BooleanwindowWidth:NumberWindowHeight:NumberdynamicDraw:Boolean, ...):void
{

// Do something


Dann machste Dir EINMAL für Dein Window ne Klasse und wenn Du mal ein neues Feature haben willst, bauste ein neues Parameter ein und hast es gleich für alle anderen Projekte auch.

Wann was fertig ist (Beispielsweise positionieren, oder zeichnen), kannste ja mit dispatch abfange und beliebig in anderen Klassen aufrufen.



Oder meinteste jetzt was anderes ?

Geändert von Nico B. (03-08-2008 um 01:12 Uhr)
Nico B. ist offline   Mit Zitat antworten
Alt 03-08-2008, 08:34   #5 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.371
Ne, Janosch hat schon recht. Zuerst Schnittstellen (in Form von Funktionen) für die Komponente festlegen und die Events, die nach aussen Kommuniziert werden. Sie sollen ja wieder verwendbar sein. Und unabhängig von der Implementierung sind die Events immer, genauso wie Funktionen, wenn sie über Schnittstellen definiert werden und nicht über Klassen. Letzten Endes ist es in ActionScript schon fast egal, hauptsache die Events werden in der API Dokumentation aufgeführt - Typen sind ja nur Stings.

Visuelle Komponenten sind als autarke MVC Architekturen zu sehen. Und Komponenten sind von ihrer Natur aus schon als Kompositionen von Komponenten zu sehen. Deswegen bestehen Komponenten auch oft aus anderen Komponenten.

MVC bedeutet nicht, das nur ein Controller vorhanden ist. Es bedeutet das man eine zentralisierte Kontrolleinheit hat, in der die Fäden zum Model zusammen laufen. Jeder Button hat einen Controller, eine View und ein Model - zwangsläufig, da jede Komponente einen internen Zustand hat.
Omega Psi ist offline   Mit Zitat antworten
Alt 23-08-2008, 19:55   #6 (permalink)
l2l|c4o
 
Benutzerbild von Sir Freako
 
Registriert seit: Nov 2005
Ort: düstere Grotte im Süden
Beiträge: 1.265
also ich mach das so :

PHP-Code:
import mat3d.webshop.*;
var 
xt:WebShop = new mat3d.webshop.WebShop();
xt.name "myWebShop";
xt.Width 800;
xt.Height 600;
xt.addEventListener("onBasketAction",myAction,false,false);
addChild(xt); 
um sich jetzt webshop als componente vorzustellen
experimentiere ich gerade damit in meiner Freizeit rubyamf webshop

also ist bei mir nicht basket teil vom webshop sondern
geliehen vom User aus der factory

Geändert von Sir Freako (23-08-2008 um 20:06 Uhr)
Sir Freako ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele