Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-06-2004, 12:16   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Ort: Münster
Beiträge: 34
Spaghetti Programmierung - wie strukturieren??

Ich habe eine dynamisches Menü bei dem ich langsam die Übersicht verliere. Vorallem bei gescripteten Animationen (die eine gewisse Zeit brauchen um abzulaufen) habe ich Probleme:

Ich habe z.B. eine Menüebene geöffnet und möchte diese nun schliessen und eine neue Ebene einblenden. Dazu führe ich eine reihe funktionen aus:

ebeneAusblenden() --> ebeneLoeschen() --> ebeneErstellen() --> ebeneEinblenden()

Da ich diese Funktionen nicht direkt nacheinander ausführen kann
ActionScript:
  1. ebeneAusblenden();
  2. ebeneLoeschen();
(die ebene würde gelöscht werden bevor ich sie ausblenden könnte) ist der Funktionsaufruf der nächsten Funktion quasi der letzte Befehl in der vorherigen Funktion.
ActionScript:
  1. ebeneAusblenden(){ ebeneLoeschen()};
So geht aber die Übersichtlichkeit völlig verloren und die Funktionen verlieren ihre Wiederverwendbarkeit, da z.B. jeder Aufruf von "ebeneAusblenden()" auch gleich wieder ein neues Menü einblendet und nicht mehr NUR ausblenden kann.

Wie würde man sowas als Profi ;-) lösen. Kann man solche Abläufe irgendwie zentral überwachen u steuern??

Ich hoffe, dassdas ich das jetzt halbwegs verständlich formuliert habe....und wäre für jegliche Tips und Ideen dankbar!
alex8735 ist offline   Mit Zitat antworten
Alt 02-06-2004, 15:15   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Du kannst natürlich über setInterval oder onEnterFrame ständig überwachen, wie sich bestimmte Variablen verhalten und dann darauf reagieren. Beispiel:
ActionScript:
  1. _global.ebeneAusblenden = false;
  2. function ebeneAusblenden(){
  3. //tu irgendetwas
  4. _global.ebeneAusblenden = true;
  5. }
  6. _level0.onEnterFrame = function(){//überprüfe ständig...
  7. if(_global.ebeneAusblenden == true){//wenn also die Funktion beendet wurde
  8. _global.ebeneAusblenden = false;//wieder zurücksetzen
  9. delete _level0.onEnterFrame;//und diesen Event wieder löschen
  10. _level0.ebeneLoeschen();//und die nächste Funktion aufrufen
  11. }
  12. }

Optisch übersichtlicher wird es natürlich nicht...
  Mit Zitat antworten
Alt 02-06-2004, 16:27   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Ort: Münster
Beiträge: 34
Hmmm....wirklich übersichtlich wird das, wie du selber schon sagst, dadurch nicht. Da müsste man erstmal einige variablen definieren...und die gleiche Funktion dürfte nicht mehrfach gleichzeitig Aufgerufen werden.

Aber danke für die Anregung, vielleicht finde ich in diese Richtung doch noch eine annehmbare Lösung.
alex8735 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 07:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele