PDA

Volledige versie bekijken : waarom werkt deze gotoAndStop niet?!


Marieke
%Europe/Berlin %564 %2005, 14:32
Ik ben een spelletje aan het maken, en uiteraard moet je dan op een gegeven moment naar Game Over...

Nou heb ik het zo op een movieclip waarin je overgebleven levens staan gezet:

onClipEvent(enterframe){
if(leven==0){
_root.gotoAndPlay("gameover",1);
}
}

Maar hij gaat alsmaar NIET naar de scene "gameover".
Ik zie effe niet wat ik nou fout doe, ziet iemand het wel?

gbolssens
%Europe/Berlin %566 %2005, 14:35
onClipEvent(enterframe)


Moet met een grote letter "F" aan het begin van 't woordje frame



greetz,
GB

Marieke
%Europe/Berlin %569 %2005, 14:39
Goed opgemerkt, maar die grote F staat wel in m'n script (had het effe snel overgetypt, vandaar dat foutje)

Blijft de vraag: waarom werkt het niet?

Niek_M
%Europe/Berlin %572 %2005, 14:43
_root.gotoAndPlay("gameover",1);

De gameover wordt hier volgens mij gezien als "scene" dus je moet of het framelabel aangeven of alleen het framenumber.

Fatty Owl
%Europe/Berlin %573 %2005, 14:45
maak er van:
onClipEvent(enterframe){
if(leven<1){
_root.gotoAndPlay("gameover",1);
trace ("gelukt")
}
}
ik heb de trace erbij gezet, voor te kijken of je gotoandplay wel werkt.als het gelukt is haal je die maar weg.
//edit: nog een beter idee is:
targetvandemovieclipwaarinlevenstaat.onEnterFrame = function (){
if(leven<1){
_root.gotoAndPlay("gameover",1);
trace ("gelukt")
}
}
//edit 2: zeker dat leven niet met een hoofdletter is?
//edit 3: je titel klopt niet, het is gotoandplay, niet gotoandstop :D

Larsvu
%Europe/Berlin %575 %2005, 14:48
weet je zeker dat je leven 0 is?
En weet je zeker dat je de goeie leven hebt? Je spreekt natuulijk een var leven aan in een movieclip. En wanneer jouw leven wordt veranderd in de _root of in een andere movieclip, dan is de leven die jij aanroept nooit 0, maar zal die altijd undefined blijven.

Maar dat is speculatie, je moet wat meer vertellen marieke

gbolssens
%Europe/Berlin %578 %2005, 14:52
Goed opgemerkt, maar die grote F staat wel in m'n script (had het effe snel overgetypt, vandaar dat foutje)

Blijft de vraag: waarom werkt het niet?

gotoAndPlay werkt niet zo goed i.s.m. met Scenes. Dat is een welbekende Flash bug. Werken met scenes is trouwens sowieso een slecht idee, vind ik (en velen met mij, heb ik al links en rechts gelezen), maar je doet er natuurlijk mee wat je wil.

Ik programmeer ook vaak games, en ik zet alles meestal op maar 2 frames van mijn hoofd-timeline, frame 1 voor intro en spelregels, en frame 2 voor de game die dan continu onEnterFrame draait.


greetz,
GB

Fatty Owl
%Europe/Berlin %579 %2005, 14:54
gotoAndPlay werkt niet zo goed i.s.m. met Scenes. Dat is een welbekende Flash bug. Werken met scenes is trouwens sowieso een slecht idee, vind ik (en velen met mij, heb ik al links en rechts gelezen), maar je doet er natuurlijk mee wat je wil.

daarom zet ik er trace bij , om te checken of de gotoandplay misschien weer niet werkt ;)

papirosn
%Europe/Berlin %581 %2005, 14:58
Ik ga ervan uit dat je met scenes werkt. Je gotoAndPlay stuurt je movie naar frame 1. Dat is het eerste frame van je totale film en dus niet het eerste frame van de scene "game over". Als je exporteert naar een swf bestand worden de scenes van je totale film naadloos aan mekaar gezet. Als scene 1 30 frames lang is en scene 2 50 frames, en je wil naar het eerste frame van scene 2 dan moet je als framenummer 31 ingeven.
Wat te doen?
Of uitrekenen welk framenummer het eerste frame van de scene "game over" zal krijgen (tel alle frames van de voorgaande scenes bij mekaar en tel daar 1 bij op) of het eerste frame van de scene "game over" een label geven. (bij properties <frame label>). Ga naar de bewuste scene en lock alle layers. Ga op frame 1 staan en geef een naam. Door de layers te locken vermijd je dat je een instance of iets anders op de scene een naam geeft.
Stel dat je frame label "game over_start" als naam heeft dan wordt de actie:

onClipEvent(enterframe){
if(leven==0){
_root.gotoAndPlay("gameover","game over_start");
}
}

Probeer maar.