Steuerung nach Frame wechsel funktioniert nicht mehr [Flash 10]
09.01.2010, 19:29
Beiträge: 10 Registriert: Jan 2010 Steuerung nach Frame wechsel funktioniert nicht mehr
Hallo Ihr guten Flasher und Actionscriptler.
Ich habe vor kurzem erst mit Actionscript3 angefangen und programmiere damit ein kleines Spiel.
Ich habe dafür einen Frame für das Menü, einer wird noch für eine Anleitung gemacht und auf einem befindet sich das noch nicht ganz fertige Spiel.
Beim Spiel konnte man bereits die Figur mit den Pfeiltasten bewegen, als das Menü noch nicht da war (da ich dieses erst nachträglich hinzu gefügt habe). Nun habe ich im Menü einen Button der ganz einfach durch das MouseEvent CLICK, per gotoAndPlay(Frame wo das Game oben ist), zum Spiel wechselt. Das tut er soweit auch. Jedoch kann ich dann im Spiel, meine Figur nicht mehr bewegen.
Ich bekomme leider weder eine Fehlermeldung was die Syntax angeht noch sonst irgend einen Error.
Wo könnte da mein Fehler liegen?
BITTE HELFT MIR ICH VERZWEIFEL!!!
10.01.2010, 01:09 Re1
Beiträge: 568 Registriert: May 2007 das script wäre hilfreich
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
10.01.2010, 12:40 Re2
Beiträge: 10 Registriert: Jan 2010 Themenautor/in Das ist das Script was im Menü steht. Change1 soll dabei zur Anleitung führen und Change2 soll zum Spiel führen.
ActionScript: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 stop ();
anleitung.addEventListener (MouseEvent.CLICK, change1);
function change1 (evt:MouseEvent) {
gotoAndPlay (1, "Anleitung" );
stage.removeEventListener(MouseEvent.MOUSE_MOVE, slopy_watch);
}
starten.addEventListener (MouseEvent.CLICK, change2);
function change2 (evt:MouseEvent){
gotoAndPlay (1, "Level1" );
stage.removeEventListener(MouseEvent.MOUSE_MOVE, slopy_watch);
}
Und das ist das Script, dass im Spiel drinne steht.
ActionScript: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 stop ();
var speed:int = 7;
var m:int
stage.addEventListener (KeyboardEvent.KEY_DOWN, slopy_left);
function slopy_left (e) {
if (e.keyCode == Keyboard.LEFT && slopy.x > 50) {
slopy.x -= speed;
slopy.play ();
}
}
stage.addEventListener (KeyboardEvent.KEY_DOWN, slopy_right);
function slopy_right (e) {
if (e.keyCode == Keyboard.RIGHT && slopy.x < 617) {
slopy.x += speed;
slopy.play ();
}
}
var runterDose:Timer = new Timer (1000, 1);
runterDose.addEventListener (TimerEvent.TIMER, muell);
runterDose.start ();
function muell(evt: TimerEvent){
dose_1.y = 0;
dose_1.x = int (Math .random ()*567);
dose_1.addEventListener (Event.ENTER_FRAME, bewegen);
}
function bewegen(e) {
if (e.currentTarget.y <= 370) {
e.currentTarget.y += 7;
}
else if (e.currentTarget.y >= 370) {
dose_1.y = 0;
dose_1.x = int (Math .random ()*567);
}
}
stage.addEventListener (Event.ENTER_FRAME, kolision);
function kolision(evt:Event) {
if (dose_1.hitTestObject(slopy)) {
slopy.gotoAndPlay (9);
dose_1.y = 0;
dose_1.x = int (Math .random ()*567);
liveline.nextFrame ();
}
}
var runterkippe:Timer = new Timer (4000, 1);
runterkippe.addEventListener (TimerEvent.TIMER, muell2);
runterkippe.start ();
function muell2(evt: TimerEvent){
kippe.y = 0;
kippe.x = int (Math .random ()*567);
kippe.addEventListener (Event.ENTER_FRAME, bewegen2);
}
function bewegen2(e) {
if (e.currentTarget.y <= 370) {
e.currentTarget.y += 5;
}
else if (e.currentTarget.y >= 370) {
kippe.y = 0;
kippe.x = int (Math .random ()*567);
}
}
stage.addEventListener (Event.ENTER_FRAME, kolision2);
function kolision2(evt:Event) {
if (kippe.hitTestObject(slopy)) {
slopy.gotoAndPlay (9);
kippe.y = 0;
kippe.x = int (Math .random ()*567);
liveline.nextFrame ();
}
}
var counter:Timer = new Timer (1000, 30);
counter.addEventListener (TimerEvent.TIMER, countdown);
counter.start ();
function countdown(evt:Event) {
count.nextFrame ();
}
Ich weis das Script ist verbesserungswürdig aber wenn ich nur die Szene mit dem Spiel teste, läuft es eigentlich.
nicht sichtbar bei eingeloggten Mitgliedern
10.01.2010, 14:11 Re3 Beiträge: 140 Wohnort: Qo'noSRegistriert: Nov 2009 Ich würde die KeyboardEvents nicht der "stage" zuweisen sondern dem Film.
Heißt:
ActionScript: 1 this .addEventListener (KeyboardEvent.KEY_DOWN, ...);
Check it out: http://as3petoolkit.googlecode.com/
@Vemilyus
Mann, warum drücke ich immer "STRG+S" wenn ich Code im Forum poste???
Bitte keine PNs wenn es Fragen gibt. Dazu ist das Forum da! Geändert von willie33 am 10.01.10 um 14:11 Uhr
10.01.2010, 14:17 Re4
Beiträge: 10 Registriert: Jan 2010 Themenautor/in Danke für den Tip aber das ganze klappt leider immer noch nicht :(
Ich weis einfach nicht woran das liegen soll :(
10.01.2010, 15:01 Re5
Beiträge: 10 Registriert: Jan 2010 Themenautor/in Keiner mehr ne Idee?
nicht sichtbar bei eingeloggten Mitgliedern
10.01.2010, 18:40 Re6
Beiträge: 568 Registriert: May 2007 also mir fallen da nur kleinigkeiten auf an denen es liegen kann das man dafür keine compiler fehler bekommt finde ich komisch
ActionScript: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 //Das nur schönheitshalber kannste auch so lassen
stop ();
anleitung.addEventListener (MouseEvent.CLICK, change1);
function change1 (evt:MouseEvent) {
stage.removeEventListener(MouseEvent.MOUSE_MOVE, slopy_watch);
gotoAndPlay (1, "Anleitung" );
}
starten.addEventListener (MouseEvent.CLICK, change2);
function change2 (evt:MouseEvent){
stage.removeEventListener(MouseEvent.MOUSE_MOVE, slopy_watch);
gotoAndPlay (1, "Level1" );
}
und hier das 2 te sind mehrere kleinigkeiten
ActionScript: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 stop ();
var speed:int = 7;
var m:int
stage.addEventListener (KeyboardEvent.KEY_DOWN, slopy_left);
function slopy_left (e:KeyboardEvent) {
if (e.keyCode == Keyboard.LEFT && slopy.x > 50) {
slopy.x -= speed;
slopy.play ();
}
if (e.keyCode == Keyboard.RIGHT && slopy.x < 617) {
slopy.x += speed;
slopy.play ();
}
}
var runterDose:Timer = new Timer (1000, 1);
runterDose.addEventListener (TimerEvent.TIMER, muell);
runterDose.start ();
function muell(evt: TimerEvent){
dose_1.y = 0;
dose_1.x = int (Math .random ()*567);
dose_1.addEventListener (Event.ENTER_FRAME, bewegen);
}
function bewegen(e:Event) {
if (e.currentTarget.y <= 370) {
e.currentTarget.y += 7;
}
else if (e.currentTarget.y >= 370) {
dose_1.y = 0;
dose_1.x = int (Math .random ()*567);
}
}
stage.addEventListener (Event.ENTER_FRAME, kolision);
function kolision(evt:Event) {
if (dose_1.hitTestObject(slopy)) {
slopy.gotoAndPlay (9);
dose_1.y = 0;
dose_1.x = int (Math .random ()*567);
liveline.nextFrame ();
}
}
var runterkippe:Timer = new Timer (4000, 1);
runterkippe.addEventListener (TimerEvent.TIMER, muell2);
runterkippe.start ();
function muell2(evt: TimerEvent){
kippe.y = 0;
kippe.x = int (Math .random ()*567);
kippe.addEventListener (Event.ENTER_FRAME, bewegen2);
}
function bewegen2(e:Event) {
if (e.currentTarget.y <= 370) {
e.currentTarget.y += 5;
}
else if (e.currentTarget.y >= 370) {
kippe.y = 0;
kippe.x = int (Math .random ()*567);
}
}
stage.addEventListener (Event.ENTER_FRAME, kolision2);
function kolision2(evt:Event) {
if (kippe.hitTestObject(slopy)) {
slopy.gotoAndPlay (9);
kippe.y = 0;
kippe.x = int (Math .random ()*567);
liveline.nextFrame ();
}
}
var counter:Timer = new Timer (1000, 30);
counter.addEventListener (TimerEvent.TIMER, countdown);
counter.start ();
function countdown(evt:TimerEvent) {
count.nextFrame ();
}
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
10.01.2010, 20:20 Re7
Beiträge: 10 Registriert: Jan 2010 Themenautor/in Schonmal vielen Dank. Ich werde die Änderungen nachher mal einbauen und dann heißt es erst ma Daumen drücken :)
10.01.2010, 20:29 Re8
Beiträge: 10 Registriert: Jan 2010 Themenautor/in Hmmmm... Klappt immer noch net. An was kann denn sowas noch liegen?
10.01.2010, 20:39 Re9
Beiträge: 10 Registriert: Jan 2010 Themenautor/in Okay... nur um auf das Problem näher einzugehen...
Wenn ich die Szene mit dem Spiel einzeln teste, läuft die ganze Sache ohne Probleme. Nur wenn ich dann den ganzen Film teste, funktioniert zwar die Verlinkung aber die Figur im Spiel lässt sich nicht mehr bewegen.
10.01.2010, 21:00 Re10
Beiträge: 10 Registriert: Jan 2010 Themenautor/in Jetzt hat er mir mal ne Fehlermeldung gegeben, nachdem ich nen Movieclip eingebaut habe, auf welchem Musik ist.
Die Fehlermeldung
" Type Error # 1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
at Game1_Muell_ausweichen_fla:: MainTimeline/change2()"
Vielleicht sagt das ja irgendwem was, der mir vielleicht helfen kann :) Vielen Dank auf jedenfall an diejenigen die sich mit meinem Problem beschäftigen.
11.01.2010, 20:50 Re11
Beiträge: 568 Registriert: May 2007 kommt das nur bei dem starten button oder auch bei dem anderen?
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
11.01.2010, 20:53 Re12
Beiträge: 568 Registriert: May 2007 das sagt denke ich mal aus das du eine function mit einen listener aufrufst ohne irgendwas an die function zu übergeben z.b.
ActionScript: 1 2 3 this .addEventListener (MouseEvent.CLICK,bla);
function bla(/*hier fehlt was ?*/ void{
}
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich Geändert von cedddy am 11.01.10 um 20:53 Uhr
12.01.2010, 10:47 Re13
Beiträge: 10 Registriert: Jan 2010 Themenautor/in Jetzt kommt es wieder garnicht mehr. Kommt halt wie es lust hat die Fehlermeldung :) Ich habe es jetzt mal so versucht, dass ich die Eventlistener vom Spiel mit in das Menü rüber genommen habe. Jetzt kann ich zwar meine Figur mit der Tastatur steuern, aber nur wenn ich vorher mit der Maus irgendwo hin drücke. Irgendwie muss ich dem noch begreiflich machen, dass er von der Steuerung mit Maus im Menü, auf Steuerung mit Tastatur beim Spiel wechseln soll. Aber wie kann man sowas machen?
Themen
Ähnliche Beiträge zum Thema 19.05.2010 - M.age.P
29.03.2011 - Purgar
09.04.2010 - avi.Selch
28.10.2010 - nischu
Flashhilfe.de
Flash Platform Tipps & Tutorials
Flash Platform
Andere Programmiersprachen
Jobangebote
Diskussionen
Flashhilfe News
Regeln & Bedingungen