Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-04-2005, 09:58   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 23
Tastatursteuerung bei Szene wird ignoriert (bei 2. Durchlauf)!

Hallo,

ich habe einen Flash-Film mit mehreren Szenen, und mit folgenden ActionScript kann ich zur vorherigen oder nächsten Szene wechseln:

onEnterFrame=function(){
if (Key.isDown(Key.LEFT)) {
gotoAndPlay("vorherigeszene", 1);
} else if (Key.isDown(Key.RIGHT)) {
gotoAndPlay("naechsteszene", 1);
}
}

Die erste Szene des Films soll man nicht weiterklicken können, weshalb dieser Code da auch nicht vorkommt.

SELTSAMERWEISE FUNKTIONIERT DAS NUR IM ERSTEN DURCHLAUF !

Wenn der Film einmal durchgelaufen ist, und besagte Szene wieder kommt, kann man leider mit den Pfeiltasten zur nächsten (oder vorherigen) Szene wechseln, obwohl hierfür gar kein ActionScript vorhanden ist (!!!).

Lösungsansatz (Versuch):
Um das abzustellen, wollte ich der Szene explizit das Wechseln per Tastendruck verbieten, aber ich weiß nicht, wie ich den Code modifizieren soll.

So funktioniert das jedenfalls nicht:

onEnterFrame=function(){
if (Key.isDown(Key.LEFT)) {
stop();
} else if (Key.isDown(Key.RIGHT)) {
stop();
}
}

Vielen Dank für eure Hilfe im voraus!!! :-)

Gruß,
Fluppi
fluppi ist offline   Mit Zitat antworten
Alt 06-04-2005, 10:20   #2 (permalink)
Augenmensch
 
Benutzerbild von pito
 
Registriert seit: Aug 2004
Ort: Gelsenkirchen
Beiträge: 558
Das liegt vermutlich daran, daß wenn du eine Funktion auf der Hauptzeitleiste einnmal definiert hast, diese auch in der ersten Szene verfügbar ist.

Genrelle Empfehlung: Arbeite nicht mit Szenen. Die sind techisch gesehen nie nötig und machen oft Probleme. Lege lieber alles in einer Szene an und springe zu verschiedenen (benannten) Frames in der Hauptzeitleiste. Wenn dort Animationen ablaufen sollen, lege sie am besten in MCs.

Dann könntest du die Funktion in dieser Art von aktuellen Bild abhängig machen:
PHP-Code:
onEnterFrame = function () {
    if (
_currentframe != 1) {
        if (
Key.isDown(Key.LEFT)) {
            
prevFrame();
        } else if (
Key.isDown(Key.RIGHT)) {
            
nextFrame();
        }
    }
}; 
pito ist offline   Mit Zitat antworten
Alt 06-04-2005, 10:28   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 23
Zitat:
Zitat von pito
Das liegt vermutlich daran, daß wenn du eine Funktion auf der Hauptzeitleiste einnmal definiert hast, diese auch in der ersten Szene verfügbar ist.

Genrelle Empfehlung: Arbeite nicht mit Szenen. (...)
Den ersten Absatz verstehe ich nicht.
Was ist die Hauptzeitleiste? Ich habe für jede Szene eine (unabhängige) Zeitleiste. Eine "Übergeordnete" gibt es bestimmt nicht.

Jetzt arbeite ich schon seit drei Wochen an den Projekt, und habe mittlerweile zehn Szenen. Ich hfinde, daß ist ein großer Vorteil: Wenn der gesamte Film z.B. 5000 Frames lang ist, und bei Frame 300 Korrekturen durchgeführt werden müssen, so muß ich mich nicht darum kümmern, ob die restlichen 4699 Frames noch "richtig sitzen". Ich ändere lediglich einen kleinen Bereich des Films (eine Szene), und brauche mir um die nachfolgenden Szenen keine Sorgen zu machen!

Könntest Du mir bitte nochmal erklären, wie der erste Absatz gemeint ist?

Danke! :-)

Fluppi
fluppi ist offline   Mit Zitat antworten
Alt 06-04-2005, 10:40   #4 (permalink)
Augenmensch
 
Benutzerbild von pito
 
Registriert seit: Aug 2004
Ort: Gelsenkirchen
Beiträge: 558
Wenn man Szenen anlegt, zieht sich die Hauptzeitleiste durch alle Szenen. Sie fängt zwar in jeder Szene wieder mit 1 an, aber ich glaube intern wird sie von Flash doch als eine große Zeitleiste behandelt.
Zitat:
Wenn der gesamte Film z.B. 5000 Frames lang ist
Filme mit sovielen Bildern würde ich gar nicht anlegen! (Wie groß sind denn die Dateien inzwischen?) Dafür gibt es doch die Möglichkeit, per loadMovie-Befehl einzelne externe Dateien in einen Ziel-MC oder per loadMovieNum auf einen _level zu laden. Dann hast du alle Abschnitte des Projektes als einzelne Dateien vorliegen. Das verringert die Ladezeiten und bringt auch Sicherheit. Stell dir vor mit deiner 5000-Frames-Datei passiert irgendwas (versehentlich gelöscht oder so) dann ist alles auf einmal weg.
pito ist offline   Mit Zitat antworten
Alt 06-04-2005, 10:48   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 23
Zitat:
Zitat von pito
Filme mit sovielen Bildern würde ich gar nicht anlegen! (Wie groß sind denn die Dateien inzwischen?) Dafür gibt es doch die Möglichkeit, per loadMovie-Befehl einzelne externe Dateien in einen Ziel-MC oder per loadMovieNum auf einen _level zu laden. Dann hast du alle Abschnitte des Projektes als einzelne Dateien vorliegen. Das verringert die Ladezeiten und bringt auch Sicherheit. Stell dir vor mit deiner 5000-Frames-Datei passiert irgendwas (versehentlich gelöscht oder so) dann ist alles auf einmal weg.
Die externe FLV (erste Szene) ist 5 MB groß, die restlichen Szenen wiegen zusammen nur 1,3 MB (Als Projektor: 2,3 MB).

Da sehe ich keine Probleme, auch wenn man die CD auf einem älteren PC abspielen läßt (da hatten wir schon mit viel größeren Dateien zu kämpfen).

Aktuell habe ich in Szene 1 folgendes ActionScript (Frame 1-919):

onEnterFrame=function(){
if (Key.isDown(Key.LEFT)) {
stop();
} else if (Key.isDown(Key.RIGHT)) {
stop();
}
}

(Frame 920 ist auf dieser Ebene leer)

Und auf anderer Ebene bei Frame 920 (letztes Frame):

gotoAndPlay("Übersicht", 1);

Aber leider wechselt die Szene dort nicht auf "Übersicht"!!!

Gruß,
Fluppi
fluppi 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 09:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele