| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| caddy Registriert seit: Jan 2005
Beiträge: 7
|
Hallo FlashFreaks ![]() Ich habe (wie wohl jeder hier) ein Problem: in angehängter Datei befindet sich die Rahmenanwendung für ein jpg-Lernmodul. Die beiden Pfeil-Buttons rechts und links vom Abschnittstitel (im as b_nextSection und b_previousSection) sollen der Weiterschaltung der Abschnitte in einem Kapitel dienen. Dies habe ich so umgesetzt: bei onPress auf b_nextSection wird die Funktion nextSection() aufgerufen, die den nächsten Abschnitt lädt (respektive für b_previousSection die Funktion previousSection() ). In beiden Fällen habe ich nun aber das Problem, dass diese Funktionen (nextSection, previuosSection) innerhalb des onPress-Handlers nur beim ersten Klick aufgerufen werden und bei weiteren Klicks nicht wieder (der onPress-Handler selbst wird aber aufgerufen). Woran könnte das liegen? Ich finde den Haken nicht, brauche aber schnell Hilfe ![]() Ausprobieren könnt ihr das im Kapitel 1 (Einleitung), da gibt es mehrere Abschnitte... Ich hoffe, ihr findet etwas und danke euch schon im Voraus für eure Mühe!!! Caddy Geändert von Caddy (05-02-2005 um 13:23 Uhr) Grund: fehlende Info |
| | |
| | #2 (permalink) |
| Gast
Beiträge: n/a
|
Das Script ist wohl etwas zu umfangreich, um mal eben den Bug zu finden... Taste dich doch einfach mal an den Fehler heran, indem du dir bspw. zuerst mal mit traces alle section-Variablen ausgeben lässt incl. der Inhalte der Arrays wie z.B. arraySectionBars etc. Dann müsstest du ja bei allen Klicks im Ausgabefenster sehen, wo das Problem liegt...
|
|
| | #3 (permalink) |
| caddy Registriert seit: Jan 2005
Beiträge: 7
|
Danke für den Tipp. Leider habe ich das schon getan. Das Problem ist ja auch nicht, dass irgendwelche Daten fehlen, sondern dass die Funktion einfach nur einmal aufgerufen wird und beim nächsten Mal nicht mehr... Wie kann denn so was sein? Kann die irgendwie verdeckt werden?
|
| | |
| | #4 (permalink) |
| caddy Registriert seit: Jan 2005
Beiträge: 7
|
Juchhu, habe den Fehler gefunden. Es handelte sich um eine Überlagerung von Variablennamen, weil ich die Variablen innerhalb der Funktion nicht korrekt deklariert hatte. Die Funktion sah so aus (auf _level0): function nextSection() { nextSectionIndex = selectedSectionIndex + 1; nextSection = arraySectionBars[nextSectionIndex]; changeSection(nextSection); isLastSection = arraySectionBars.isLastElement(nextSectionIndex); return isLastSection; } Bei Aufruf der Funktion nextSection() wird in dieser eine Variable mit dem Namen nextSection angelegt. Da ich diese Variable ohne das Schlüsselwort 'var' deklariert habe, ist sie auch noch außerhalb der Funktion gültig. Da Flash aber auch Funktionen in Variablen speichert (sieht man beim Debuggen), wurde die Variable nextSection, die zunächst die Funktion enthielt, überschrieben durch die Variable innerhalb der Funktion und enthielt dann einen Movieclip. Damit war die Funktion nicht mehr erreichbar. Lösung: function nextSection() { var nextSectionIndex = selectedSectionIndex + 1; var nextSection = arraySectionBars[nextSectionIndex]; changeSection(nextSection); var isLastSection = arraySectionBars.isLastElement(nextSectionIndex); return isLastSection; } Alle Variablen, die nur innerhalb der Funktion gültig sein sollen, unbedingt mit Schlüsselwort 'var' deklarieren! Geändert von Caddy (06-02-2005 um 12:53 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |