Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-11-2011, 15:30   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 10
Question Hilfe! Movieclips mit Tasten abspielen!

Hallo Leute,

Vielleicht gehört dieser Beitrag in die Rubrik ActionScript3, dort sind jedoch anspruchsvollere Einträge als dieser hier.

Habe ein Problem. Bin noch ein blutiger Anfänger in Flash und habe ein Buzzerspiel zu schreiben.

Habe hier schon einen ähnlichen Beitrag gesehen, da ist es allerdings ein Tick anders als in meinem Fall. Möglicherweise liegt es an meinem mangelnden Grundwissen, dass ich das Beispiel nicht ableiten konnte.

Situation:

habe 6 Ebenen angelegt.
Einmal Hintergrundebene,
da drüber 5 weitere Ebenen, in den sich jeweils ein Symbol befindet, das ich als MovieClip angelegt habe.

Das ganze erstreckt sich auf 160 Bilder mit 32 Bildern pro Ebene (Bildrate: 30Bps)

hier ein Bild:

In der Animation werden die alle nacheinander abgespielt.

Nun zu meinem Problem.

das Spiel soll am Besten mit einem Buzzer gesteuert werden, der als start und stopp gilt.

Bei start soll die Animation loslaufen, und sobald das gewünschte Objekt im Bild erkannt wird, drückt man nochmals auf den Buzzer und das Objekt bleibt stehen. Bei erneutem Start soll das von Anfang an wieder loslaufen.

Ich nutze Flash Pro CS5.5.
Habe bereits "stage.addEventListener(KeyboardEvent.KEY_DOWN,... " in vielen Variationen ausprobiert. Zum testen bisher alles auf die Taste 32 (Space) gelegt. Klappt nicht.
Habe ich vielleicht die Ebenen Falsch angelegt oder die Instanzen falsch platziert?

Ich weiß, es besser wäre, erstmal Erfahrung mit einfacheren Sachen zu sammeln, jedoch habe ich diese Aufgabe auf mich genommen... und jetzt wird die Zeit knapp.

Wäre für jede Antwort echt dankbar!
poozick ist offline   Mit Zitat antworten
Alt 22-11-2011, 17:00   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
geht ! was genau ist dein problem?
Code:
stage.addEventListener(KeyboardEvent.KEY_UP,doKeyUp);
function doKeyUp(evt:KeyboardEvent): void {
	trace(evt);
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-11-2011, 20:01   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 10
Problem

Hallo!

Danke für die schnelle Antwort! Freut mich sehr!

Mein Problem ist, dass ich mir nicht sicher bin, ob es mit dem, was ich zum Animieren aufgebaut habe, möglich ist, mit dem einfachen Code wie in allen Tutorials zu finden ist zu animieren, also die einzelnen Instanzen zu steuern.
Aber das "Geht!" soll doch heißen, dass ich gar nicht so verkehrt liege?

ich möchte nämlich, dass die Instanz, die gerade durchfliegt(beim Abspielen), per Knopfdruck stehen bleibt, und zwar nicht da, wo sie sich beim Buzzern befindet, sondern exakt in der Mitte des Bildes(sollte also falls notwendig wieder ein Stück zurück rutschen).

Ich habe bis jetzt nur den code für KEY_DOWN und ohne den "do..." Zusatz ausprobiert. Und entweder es funktioniert einfach nicht, oder ich kriege einen Compiler_Error, oder kriege die Fehlermeldung, dass möglicherweise auf eine nicht definierte Methode mit einem statischen Verweis zugegriffen wird. So in der Art.

Bin Morgen früh wieder auf der Arbeit, kann das genauer sagen. hier zuhause an dem Uraltrechner probier ich es gar nicht, die großen Dateien würden hier alles zum Absturz bringen.

Meine Vermutung war nämlich, dass ich das ganze irgendwie in einem einzelnen Schlüsselbild machen sollte. So sieht es zumindest in den Tutorials aus. Da ist immer nur ein Bild in der Szene, und wenn in die Instanz reingegangen wird, ist da der vollständige Tween über mehrere Schlüsselbilder.

Da ich noch total neu auf diesem Gebiet bin, halte ich es für möglich, das System teilweise missverstanden zu haben.

Kann ich also die Steuerung im AS3 für die Komplette Instanz festlegen, unabhängig davon, über wieviele Schlüsselbilder der jeweilige Tween läuft?

Ich bitte im Voraus für Entschuldigung, da meine Erklärungen ziemlich dürftig klingen. Bin aber mit den entsprechenden Begriffen noch nicht so vertraut.

Danke im Voraus!

poozick
poozick ist offline   Mit Zitat antworten
Alt 22-11-2011, 20:19   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von poozick Beitrag anzeigen
Mein Problem ist, dass ich mir nicht sicher bin
das ist die ganz normale weltraumparaneuika, das geht jedem so.

Zitat:
Zitat von poozick Beitrag anzeigen
oder ich kriege einen Compiler_Error, oder kriege die Fehlermeldung, dass möglicherweise auf eine nicht definierte Methode mit einem statischen Verweis zugegriffen wird. So in der Art.
dann zeig hier die fehlermeldung, dann kann dir jemand was dazu sagen.
ansonsten alles mögliche mit trace ausgeben lassen und probier mal den debugger. damit kann man scripte schrittweisse abarbeiten und sich life alle variable ansehen. das ist sehr hilfreich zum verstehen.

Zitat:
Zitat von poozick Beitrag anzeigen
in einem einzelnen Schlüsselbild machen sollte
ja, das soltest du
bewegungen sollte man programmieren. morphen und ähnlich komplexe animationen macht man wie zeichentrickfilme bild für bild.

ansonsten: einfach machen - wird schon schief gehen ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-11-2011, 20:47   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 10
Danke nochmals!

ich werd' morgen die Fehlermeldungen mal hier reinstellen.

Zu den Schlüsselbildern:

Soll ich also alle meine auf dem Screenshot ersichtlichen Tweens von der obersten Szene wegbringen und diese jeweils in die jeweilige Instanzumgebung reinsetzen? So dass auf der obersten Szene praktisch nur 6 Ebenen mit jeweils einem Schlüsselbild bleiben, in den alles andere definiert ist?

Oder muss ich denselben Code auf jedes einzelne Schlüsselbild legen?

oh mann ich komme mir irgendwie doof vor... Das muss halt sehr schnell mit der Animation jetzt gehen. Kann mich da nicht zwei Wochen lang einarbeiten(wäre besser).

Grüße

Poozick
poozick ist offline   Mit Zitat antworten
Alt 22-11-2011, 21:45   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von poozick Beitrag anzeigen
oh man ich komme mir irgendwie doof vor
selbsterkenntnis ist der erste weg zur besserung -> mach es einfach !!!
fehler machen gehört zum lernen dazu. und etwas mehr vertrauen in deine intelligenz.

es gibt 1000 möglichkeiten, von denen jede vor- und nachteile hat.
du kannst fragen zur vergangenheit stellen (also fragen zu dem, was du programmiert hast)
aber nicht fragen zur zukunft (was wäre wenn ... tja, wenn wir das wüssten)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (22-11-2011 um 21:48 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 23-11-2011, 09:21   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 10
Fehlermeldung

Hallo,

also bei diesem Code kommt keine Fehlermeldung, passiert aber auch nichts:


iviss.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

function keyDownHandler(event:KeyboardEvent):void {
if (event.keyCode==32) {

iviss.stop();

} else if (event.keyCode==79) {

iviss.stop();
}
}

Die Ebene Actions liegt auch auf der Obersten Szene.
Der Instanzname des Objekts aus dem ersten Tween lautet iviss.
poozick ist offline   Mit Zitat antworten
Alt 23-11-2011, 09:54   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
auf eine grafik kann man mit der maus klicken, aber nicht mit der tastatur drauftippen.
bei textfeldern z.b. muss es gehen, aber auch nur, wenn man das textfeld anklickt.
wenn du die texteingabe nicht auf stage behandeln willst, dann fehlt noch:

stage.stageFocusRect = false; // das gelbe rechteck ausschalten
stage.focus = iviss;

bedenke aber, das der focus nach dem nächsten mausklick wieder auf etwas anderes zeigen wird.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 23-11-2011, 11:22   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 10
Heißt das, dass ich den MovieClip als solchen ansteuern muss?
Oder ist das so, wie ich das brauche, gar nicht umsetzbar?

In allen Videotutorials werden Buttons erklärt, oder mit Tasten bewegte
Objekte, diese sind dann aber keine Movieclips...

Demnach muss die Bewegung der Objekte nicht als Tween behandeln, sondern das durchfliegen dem Objekt so beibringen?

Ist der Gedankenweg korrekt?
poozick ist offline   Mit Zitat antworten
Alt 23-11-2011, 12:33   #10 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
wie schon geschrieben: da gibts kein richtig und falsch.
ich als programmiere erstelle bewegungstweens natürlich lieber per programm.
grafiker animieren lieber über die zeitleiste. beides geht.
lass deine zeitleiste, die hast du ja jetzt.


tastatur-event:
wie schon vorher vorgegeben empfehle ich dir
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
das sollte immer gehen? (also zumindestens bei mir ;-)
notfalls lege ein transparentes objekt (mc mit einem rechteck mit alpha=0) über alles drüber (so gross wie die stage) und dem den focus geben.
da das alles überdeckt kann man nichts anderes anklicken.



was du jetzt machen kannst:
a) stop stoppt unmittelbar (das hast du ja schon)

b) das stoppen in einer globalen variablen vermerken und so lange weiter laufen lassen, bis ein key erreicht ist. dann erst stoppen.

c) wenn du auch zurück gehen willst (weil ein stop-key dort näher steht) dazu kein stop() und play() verwenden, sondern das ganze mit z.b. einem timer selbst programmieren. schau dir mal die Timer klasse an.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (23-11-2011 um 12:38 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 23-11-2011, 13:45   #11 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 10
stop();
start();

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

function keyDownHandler(event:KeyboardEvent):void {
if (event.keyCode==32) {

stage.start();

} else if (event.keyCode==32) {

stage.stop();
}
}
also wenn ich das so habe, dann kommt die Fehlermeldung:
"Szene 1, Ebene 'Ebene 1', Bild 1, Zeile 14 1061: Aufruf für eine möglicherweise nicht definierte Methode stop über einen Verweis mit statischem Typ flash.display:Stage."
und:
"Szene 1, Ebene 'Ebene 1', Bild 1, Zeile 1 1180: Aufruf einer möglicherweise undefinierten Methode start."

Wie definiere ich denn die Methode?
poozick ist offline   Mit Zitat antworten
Alt 23-11-2011, 14:20   #12 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
stage.start(); // nein

du willst/kannst doch nicht die bühne starten/anhalten (stage hat diese methoden nicht, deshalb auch die fehlermeldung) sondern die zeitleiste in iviss:

iviss.start(); // ja
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (23-11-2011 um 14:22 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 23-11-2011, 14:27   #13 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 10
Mir wäre es lieber, wenn die Ganze Szene/Bühne loslaufen würde, und bei entsprechend sichtbaren Instanzen auf knpfdruck stehen bleiben.

So hab ichs jetzt, und da fängt es gar nicht erst an:

stop();
iviss.stop();

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

function keyDownHandler(event:KeyboardEvent):void {
if (event.keyCode==32) {

iviss.stop();

} else if (event.keyCode==32) {

iviss.stop();
}
}
poozick ist offline   Mit Zitat antworten
Alt 23-11-2011, 14:29   #14 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 10
oops,

function keyDownHandler(event:KeyboardEvent):void {
if (event.keyCode==32) {

iviss.start();

, aber tut sich immernoch nichts
poozick ist offline   Mit Zitat antworten
Alt 23-11-2011, 14:45   #15 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
dann erstelle bitte mal eine vereinfachte form (Das ganze erstreckt sich auf 160 Bilder mit 32 Bildern pro Ebene <-- soviel brauchts nicht)
eine einfache testfla mit z.b. 5 rechtecke als bilder und lade die hier hoch, zum ansehen und ausprobieren.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
as3, buzzer, flash, movieclip ansteuern, quiz.

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hilfe:Ladevorgang unterbricht das Abspielen anderer MovieClips cardiac ActionScript 1 1 12-10-2004 13:08
Auf Tasten klick Sound abspielen!! Duich Flash MX 2004 4 20-08-2004 14:36
Movieclips abspielen Zemmel Flash MX 1 14-05-2004 16:01
hilfe, kleine movieclips mit kurzer pause abspielen... merlinvs ActionScript 1 12 28-11-2003 18:01
hilfe, ich kann esc, drucken, enter -tasten nicht abfragen artinkl ActionScript 1 7 09-01-2003 22:33


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele