Flashhilfe.de - Flash Community

Steuerung nach Frame wechsel funktioniert nicht mehr [Flash 10]

 


AntwortenRegistrieren Seite1  

maniman#1
Benutzerbild von maniman
Beiträge: 10
Registriert: Jan 2010

09.01.2010, 19:29

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!!!
cedddy#2
Benutzerbild von cedddy
Beiträge: 572
Registriert: May 2007

10.01.2010, 01:09

das script wäre hilfreich
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
maniman#3
Benutzerbild von maniman
Beiträge: 10
Registriert: Jan 2010

Themenautor/in

10.01.2010, 12:40

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.
willie33#4
Benutzerbild von willie33
Beiträge: 147
Wohnort: Qo'noS
Registriert: Nov 2009

10.01.2010, 14:11

Ich würde die KeyboardEvents nicht der "stage" zuweisen sondern dem Film.
Heißt:
ActionScript:
1this.addEventListener(KeyboardEvent.KEY_DOWN, ...);
Loading comments...
Geändert von willie33 am 10.01.10 um 14:11 Uhr
maniman#5
Benutzerbild von maniman
Beiträge: 10
Registriert: Jan 2010

Themenautor/in

10.01.2010, 14:17

Danke für den Tip aber das ganze klappt leider immer noch nicht :(

Ich weis einfach nicht woran das liegen soll :(
maniman#6
Benutzerbild von maniman
Beiträge: 10
Registriert: Jan 2010

Themenautor/in

10.01.2010, 15:01

Keiner mehr ne Idee?
cedddy#7
Benutzerbild von cedddy
Beiträge: 572
Registriert: May 2007

10.01.2010, 18:40

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
maniman#8
Benutzerbild von maniman
Beiträge: 10
Registriert: Jan 2010

Themenautor/in

10.01.2010, 20:20

Schonmal vielen Dank. Ich werde die Änderungen nachher mal einbauen und dann heißt es erst ma Daumen drücken :)
maniman#9
Benutzerbild von maniman
Beiträge: 10
Registriert: Jan 2010

Themenautor/in

10.01.2010, 20:29

Hmmmm... Klappt immer noch net. An was kann denn sowas noch liegen?
maniman#10
Benutzerbild von maniman
Beiträge: 10
Registriert: Jan 2010

Themenautor/in

10.01.2010, 20:39

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.
maniman#11
Benutzerbild von maniman
Beiträge: 10
Registriert: Jan 2010

Themenautor/in

10.01.2010, 21:00

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.
cedddy#12
Benutzerbild von cedddy
Beiträge: 572
Registriert: May 2007

11.01.2010, 20:50

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
cedddy#13
Benutzerbild von cedddy
Beiträge: 572
Registriert: May 2007

11.01.2010, 20:53

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
maniman#14
Benutzerbild von maniman
Beiträge: 10
Registriert: Jan 2010

Themenautor/in

12.01.2010, 10:47

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?

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de