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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-10-2007, 20:09   #1 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
Ein Programm aufbauen

hi,

wollt mal fragen, wie ihr so eine Anwendung aufbauen würdet?

Ich will so ein Planetarium machen, wie
hier
und hab das soweit auf Funktion zusammengetüftel.

ok, nachdem die Testversion soweit fertig ist, möcht ich das ganze etwas strukturierter aufbauen und auch(mach ich eigentlich fast nie) vll mal nach dem MVC Modell aufbauen. Wobei ich noch nicht weiss, wie wo was hinkommt?

Die Anwendung sollt so aussehen:
*) Es soll einen "View" geben, wo der Himmel gezeichnet wird,
*) Es soll mehere Buttons geben, das man die Himmelsrichtung ändern kann, alternativ evtl. Slider?
*) Es soll mehere "Panels" für diverse Einstellungen geben, die man ein und ausfaden kann (siehe Thread)
*) Evtl. die Möglichkeit, per XML Ortsdaten einzulesen?

Die zahlosen Astro-Rechungen hab ich in einem seperaten Unterordnern.
Wie teil ich mir das Ganze nun auf, ich möchte es so machen, das möglichst kein Code in einem Keyframe steht, dh das ich alles dynamisch einbinden kann?

Wenn ich das nach den MVC-Paradigma aufbaue, wo kommt was rein? Die Zahllosen Berechnung evt. "Model" oder "Controller"?

Die Funktionen haben so namen wie "initStardata", "initHorizont" ect. die Funktioen zum Zeichen des Himmels dann "drawSky" "drawHorizont" ect..

danke für die Aufmerksamkeit(...*gähn, was für ein langweiliger Nachmittag)
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 13-10-2007, 20:15   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
wenn du in flex proggen würdest, hat sich die sache wahrscheinlich erledigt.

ich würde es so machen (da ich nichts über MVC weiss und auch nicht nachgucken möchte):

Code:
class myView extends Sprite {
     //hier wird gezeichnet und vielleicht kann man breite und höhe auch verändern
     public function draw():void
     {}
     public function loadXMLData():void
     {
         var loader:URLLoader = new URLLoader("http://www.myxml.de/data.xml");
         loader.addEventListener(Event.COMPLETE, XMLHandler);
     }
     private function XMLHandler(event:Event):void
     {
         var loader:URLLoader = URLLoader(event.target);
         //wandle loader.data in XML         
         draw();
     }
}
//weiss nicht wie man in flash cs3 myView anzeigt, vllt mit addChild?

class myControl extends Sprite {
    //erstelle buttons
    public function myControl():void
    {
       var btnRotiereNachLinks:Button = new Button();
       btnRotiereNachLinks.addEventListener(MouseEvent.CLICK, linksHandler);
       addChild(btnRotiereNachLinks);
    }
    private function linksHandler():void
    {
       //spreche view an und zeichne mit parameter (nach links)
       //ist "_root" richtig?
       _root.view.draw(nachlinks_werte);
    }
}

//bei Panels so ähnlich

//im Haupt-MC (_root?):

var view:myView = new myView();
//XML Daten laden, kann aber auch im Haupt-MC getan werden.
//draw wird automatisch ausgeführt sobald XML-Daten geladen werden, siehe Definition
view.loadXMLData();
//View anzeigen und ggf. positionieren, ist addChild richtig?
addChild(view);

//Control-buttons anzeigen und ggf. positionieren, ist addChild richtig?
var control:myControl = new myControl();
addChild(control);
@all: Wie spricht man das Haupt MC(_root) an von einer Klasse aus an?

Naja so grob, ich habe zu wenig Zeit im Moment.

Geändert von Gnut (13-10-2007 um 20:55 Uhr)
Gnut ist offline   Mit Zitat antworten
Alt 13-10-2007, 20:16   #3 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
hä?
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 14-10-2007, 12:27   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
Ok, ich ging davon aus dass du in AS3 fitt wärest und du dein Script in Flash CS3 AS3 schreibest.

Ich wollte nur versuchen zu beschreiben, dass ich den "View", die Steuerung und die Einstellungen in 3 Klassen unterteilen würde und diese in dem Hauptframe einbinde.

Wie du die Einzelheiten hinbekommst, hängt von der Unterstützung anderer Forummitglieder ab. Ich arbeite nicht mit Flash CS3.
Gnut ist offline   Mit Zitat antworten
Alt 14-10-2007, 13:45   #5 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Es gibt auf der einen Seite MVC und auf der anderen Seite drei (bzw. n) Schicht Architekturen. Ausserdem gibt es noch SOA Architekturen. Im Grunde genommen arbeite ich immer komponentenbasiert. Ich teile meine Applikationen konzeptionenell in Darstellung, Logik (incusive externen Services), interne und externe Datenhaltug ein (Persistanzschicht).

MVC ist grundsätzlich ein guter Ansatz, reicht aber bei komplexen Architekturen nicht mehr aus.
Omega Psi ist gerade online   Mit Zitat antworten
Alt 14-10-2007, 14:59   #6 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
Zitat:
Zitat von Gnut Beitrag anzeigen
Ok, ich ging davon aus dass du in AS3 fitt wärest und du dein Script in Flash CS3 AS3 schreibest.

Ich wollte nur versuchen zu beschreiben, dass ich den "View", die Steuerung und die Einstellungen in 3 Klassen unterteilen würde und diese in dem Hauptframe einbinde.

Wie du die Einzelheiten hinbekommst, hängt von der Unterstützung anderer Forummitglieder ab. Ich arbeite nicht mit Flash CS3.
..ja danke Gnut, das hatte ich auch so ähnlich gedacht. es werden aber warscheinlich noch einige mehr Klassen als eben nur ein "View" "myControl" ect. ich hab halt eine reihe an Funktionen, die dementsprechend unterbringen will.
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 14-10-2007, 15:12   #7 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Aber es hängt ja davon ab, was die Klassen/Funktionen machen sollen. Entweder sie kommen in das Model, wenn es um Ligik geht oder in eine View-Komponente, wenn es um die Darstellung geht.
Omega Psi ist gerade online   Mit Zitat antworten
Alt 14-10-2007, 18:25   #8 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg
Beiträge: 4.388
Generell reicht es, wenn man sich vorstellt, wie es wäre, einen Teil der Anwendung, z.B. die View, austauschen wollte. Für diese Fälle muss man für klare Aufgabenteilung und sinnvolle Schnittstellen zwischen den Komponenten sorgen.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 14-10-2007, 22:13   #9 (permalink)
l2l|c4o
 
Benutzerbild von Sir Freako
 
Registriert seit: Nov 2005
Ort: düstere Grotte im Süden
Beiträge: 1.268
Ich beschäftige mich seit ca 1 Jahr mit RailsRemoting mit Flash , - das ist eigentlich ziemlich cool weil man ja das DatenModell viel schneller aufbauen kann in Rails als in Flash selber also fungiert Flash halt nur als view das wenn es von dem RailsModell ein update signal bekommt sich einfach updated.
Crud in Minutenschnelle

Sorry war ein wenig offtopic zur frage von Circushund aber ein Beitrag zu MVC
andererseits wenn man sich zu allen Planeten im Universum auch noch eine Datenbank anlegen will wo geometrische Daten / Oberfläche / Mesh / etc hinterlegt sind dann würde sich der Einsatzt einer Datenbank anbieten wie sql , bei xml müßte man ja immer erst den ganzen Planetenbestand durchlesen wo man aber bei remoting sich einfach mit einem Flag/Id seinen Table hohlen kann ohne immer erst die ganze Datenbank durchlesen zu müßen .

Geändert von Sir Freako (14-10-2007 um 22:21 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 15:07 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele