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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-10-2006, 13:24   #1 (permalink)
Neuer User
 
Benutzerbild von Bartolo
 
Registriert seit: Mar 2006
Beiträge: 82
How-To für eine komplexe Seiten-Struktur/Navigation?

Es gibt so viele Tutorials, für fast alles, aber keines für eine professionelle, komplexe Seiten-Struktur/Navigation.

z.B. diese Seiten:

http://www.thefwa.com
http://www.cokesideoflife.de
http://www.adobe.com/products/acrobat/experience/

Da muss es doch sowas wie eine art Pattern oder eine generelle Regel geben sowas anzugehen.

wie muss die Seite da Aufgebaut sein, jetzt mehr von der programmier Seite her gesehen.

Als Beispiel mal zur Coke Seite:
Da ist ja links die Navigationsleiste, die Menüpunkte kann man aber zusätzlich auch auf den jeweiligen Inhaltseiten auswählen.
Anscheinend gibt es da irgendein zentralen Seiten Manager, nennen wir ihn mal "SiteManager", der wahrscheinlich als Singelton angelegt ist.

Wie kommt aber jetzt richtigerweise der Verweis auf die Klasse in die Inhaltseiten? Übergibt man diese der jeweiligen Inhaltsseite von der übergeordneten Navigation oder verweist man auf diese einfach direkt oder ganz anders?

Das war jetzt nur ein Problem, aber so ungefähr halt usw.
Bartolo ist offline   Mit Zitat antworten
Alt 03-10-2006, 03:48   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 18.105
so ganz verstehe ich dein problem nicht.

eine "komplexe Seiten-Struktur/Navigation" gibt es nicht. nur eine mit wenig oder eine mit viel inhalt - das macht doch aber "..jetzt mehr von der programmier Seite her gesehen.." keinen unterschied aus ;-)

das ganze ist eine baumstruktur. um den user nicht zu sehr zu verwirren sollte man nicht zu sehr in die tiefe gehen sondern lieber in die breite.

die baumstruktur == das menü kann man z.b. in einem xml abbilden und jeder menüpunkt kann eine eigenen swf sein ... fertig. was fehlt noch?


ein mc in dem das menü drinn ist. ein mc für den inhalt. jeder neue inhalt kegelt den alten raus. ist wie ein html-frameset.
schnicknack wäre z.b. eine liste, die die verschachtelung anzeigt (wenn mans am menü selbst nicht erkennen kann). eine history, die sich in einem lifo-stack vermerkt welche seiten man bisher besucht hat.
und der link aus einer seiten ist nichts anderes, als die selbe funktion aufrufen, die auch bei einem klick ins menü aufgerufen wird.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (03-10-2006 um 03:56 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 03-10-2006, 12:48   #3 (permalink)
Neuer User
 
Benutzerbild von Bartolo
 
Registriert seit: Mar 2006
Beiträge: 82
thx für deine Antwort.

Zitat:
so ganz verstehe ich dein problem nicht.
Die Frage muss man ungefähr so verstehen, als ob einer Fragen würde: "Ich will so eine Software wie Photoshop programmieren, gibt es da irgendwelche Ansätze um so ein umfangreiches Projekt anzugehen?"
Als Antwort dann vielleicht so was: "Bei so einer komplexen Software würde sich das MVC-Pattern anbieten ...". Dachte halt es gibt für sowas auch eine art Pattern oder Schema nachdem man gehen kann.

Aber nochmal ein konkretes Beispiel:

da bietet sich die http://www.thefwa.com an.

Ungefähr so könnte man sich vielleicht die Grundstruktur vorstellen: Image

Jetzt drückt man z.B. auf "Interviews", dann wird der "content_mc" und der "detail_mc" mit dem entsprechendem Inhalt gefühlt und der "feature_mc" blendet sich aus.
Die Frage ist, wer regelt das?
Der Interview onRelease wird dafür ja nicht zuständig sein, zu sagen wo was geladen werden soll und was ausgeblendet oder getweent werden soll.

PHP-Code:
// Ist jetzt mehr PseudoCode

// So wahrscheinlich nicht
interview_btn.onRelease = function()
{

     
loadContent("interview",content_mc);
     
loadContent("interview_detail"detail_mc);
     
_parent.feature_mc._visible false;

}

// eher so
interview_btn.onRelease = function
{
   
SiteManager.getInstance().setSection("interview");

So, dann wären wir beim nächsten Schritt. Wie könnte das jetzt im SiteManager aussehen?

PHP-Code:
// SiteManager.as
// der kennt wahrscheinlich alle wichtigen mc`s (top_nav_mc, content_mc, detail_mc ...);

//...

//1. Lösungsansatz:
public function setSection(section:String):void
{

    
// hier wird jetzt im xml geschaut ob es die Section gibt und wenn ja, was wo hingehört und 
    // dementsprechend dort hingeladen

   // der SiteManager ist zusätzlich dafür verantwortlich die Sachen auszublenden, tweenen usw.

}

// 2. Lösungsansatz
public function setSection(section:String):void

   
// hier wird z.B. vereinfacht gesagt, nur die "_section" Variable gesetzt
   // und dann wird ein Event dispatcht
   
dispatchEvent({type:"onNewSection"target:thisnewSection:_section}  
}

//... 
Alle die sich dann als listener (top_nav_mc, detail_mc, content_mc, ...) angemeldet haben, werden dann dementsprechend informiert und kümmern sich dann selber darum was geladen und ob sie sich z.B. ausblenden sollen.

Oder ganz anders?

Zitat:
und der link aus einer seiten ist nichts anderes, als die selbe funktion aufrufen, die auch bei einem klick ins menü aufgerufen wird.
Da wäre jetzt halt noch interessant woher er diese Funktion kennt?


PHP-Code:
// von irgendeiner Inhalts swf die Main Klasse

//...

// Sollte man dies über eine Funktion setzen z.B. 
public function setSiteManager(sm:SiteManager)
{
  
_sm sm;
}

// Oder schreibt man einfach gleich den Verweis auf die Klasse rein?
// Das wäre jetzt irgendeine Funktion die den SiteManager benötigt
public function test()
{
   
SiteManger.getInstance().setSection("aaa");
}
//... 
Bartolo ist offline   Mit Zitat antworten
Alt 03-10-2006, 17:03   #4 (permalink)
\x3a\x6f\x29
 
Benutzerbild von [je]
 
Registriert seit: Apr 2004
Ort: paris
Beiträge: 806
Für eine Website eignet sich auch das State Pattern ganz gut. Transitions zwischen den States lassen sich auch ganz einfach realisieren.
__________________
joa ebert
http://blog.joa-ebert.com/ - http://www.joa-ebert.com/
[je] 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 13:33 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele