Hey Leute, ich kämpfe den besten Weg, um diese Situation anzugehen.Wie durchläuft man die Bildnummer und wenn wahr, dann ignoriere diese Bildnummer?
So habe ich 5 Bilder in meinem ovenScreen.mcChar
Movieclip. Jeder ist ein Charakter, den der Spieler freischalten kann. Wenn der Spieler genug Münzen hat, kann er zum Gewinnbildschirm gehen, um einen zufälligen freischaltbaren Charakter zu erhalten.
Hier ist, wie es Setup weit ist so:
private function getPrizeHandler(e:MouseEvent):void
{
//Check if prize is locked or unlocked then unlock item/ loop through random number frames
frameLoop = randomNumber(1, 5);
ovenScreen.mcChar.gotoAndStop(frameLoop);
if (frameLoop == 1 && !sharedObjectCharacters.data.sharedHotDog)
{
sharedHotDog = true;
sharedObjectCharacters.data.sharedHotDog = sharedHotDog;
sharedObjectCharacters.flush();
}else
if (frameLoop == 2 && !sharedObjectCharacters.data.sharedTaco)
{
sharedTaco = true;
sharedObjectCharacters.data.sharedTaco = sharedTaco;
sharedObjectCharacters.flush();
}else
if (frameLoop == 3 && !sharedObjectCharacters.data.sharedDonut)
{
sharedDonut = true;
sharedObjectCharacters.data.sharedDonut = sharedDonut;
sharedObjectCharacters.flush();
}else
if (frameLoop == 4 && !sharedObjectCharacters.data.sharedCoffee)
{
sharedCoffee = true;
sharedObjectCharacters.data.sharedCoffee = sharedCoffee;
sharedObjectCharacters.flush();
}else
if (frameLoop == 5 && !sharedObjectCharacters.data.sharedPancakes)
{
sharedPancakes = true;
sharedObjectCharacters.data.sharedPancakes = sharedPancakes;
sharedObjectCharacters.flush();
}
////////////////////////////////////////
ovenScreen.gotoAndPlay(2); //play animations
TweenLite.delayedCall(3.5, prizeConfettie);
ovenScreen.removeEventListener(MouseEvent.CLICK, getPrizeHandler);
}
Wie man sehen kann ich die var frameLoop
haben, die 1 eine Zufallszahl - 5. So ist der Charakter entsperrt zufällig sein und zeigen die Zufalls freigeschaltetes Zeichen Ich benutze die if-Anweisungen, um zu überprüfen, ob die Zufallszahl auf diesem bestimmten Frame landet und nicht, dass sie entsperrt ist, entsperre sie und speichere die Daten.
Jetzt funktioniert das alles gut, aber wie könnte ich gehen, um es zu beheben, wo, wenn das Element bereits entsperrt ist, durch eine andere Bildnummer zu sortieren. Wenn der frameLoop also auf 2 landet und das Zeichen bereits entsperrt ist, wiederholen Sie die Zufallsbildnummer, bis sie auf einem gesperrten Zeichen landet. Ich dachte daran, eine Reihe von Zahlen aufzustellen, vielleicht ist das ein logischer Ansatz, aber ich bin nicht sicher, wie ich das machen soll.
Jede Hilfe wäre dankbar, danke.
Zusätzliche Informationen über den gemeinsam genutzten Objekt Boolesche Werte:
private function allSharedObjectBooleans():void
{
sharedObjectCharacters = SharedObject.getLocal("Characters");
sharedHotDog = sharedObjectCharacters.data.sharedHotDog != null ? sharedObjectCharacters.data.sharedHotDog : false;
sharedTaco = sharedObjectCharacters.data.sharedTaco != null ? sharedObjectCharacters.data.sharedTaco : false;
sharedDonut = sharedObjectCharacters.data.sharedDonut != null ? sharedObjectCharacters.data.sharedDonut : false;
sharedCoffee = sharedObjectCharacters.data.sharedCoffee != null ? sharedObjectCharacters.data.sharedCoffee : false;
sharedPancakes = sharedObjectCharacters.data.sharedPancakes != null ? sharedObjectCharacters.data.sharedPancakes : false;
}
und ich schaffe sie etwa so:
//shared Booleans
private var sharedHotDog:Boolean;
private var sharedTaco:Boolean;
private var sharedDonut:Boolean;
private var sharedCoffee:Boolean;
private var sharedPancakes:Boolean;
Hey Vesper vielen Dank für diese und die Erklärung. Ich werde jetzt damit herumspielen und schauen, ob ich es zur Arbeit bringen kann. Ich werde Sie wissen lassen, ob ich irgendwelche Probleme habe, wenn das in Ordnung ist. Vielen Dank. Eine Frage so die StrUnlockables: Array halten meine SharedObject Booleans in ihnen korrekt? – Nathan
Das Problem, das ich habe, ist, wenn ich die if-Anweisung spiele, wird nie berücksichtigt/Ich habe eine Spur in die if-Anweisung eingefügt und sie wird nie aufgerufen. Nicht sicher, was das Problem sein könnte. Die sharedHotDog, sharedTaco, etc ... sind alle boolesche Werte, die ich auf false gesetzt habe. irgendwelche Ideen, was könnte los sein? – Nathan
'strUnlockables' enthält nur Strings, die * Namen * dieser booleschen Werte in Ihrem gemeinsamen Objekt. Bitte überprüfe, ob du beim Schreiben dieser Strings irgendwo einen Fehler gemacht hast (könnte ich). Als zweiten möglichen Grund ist die 'sharedObjectCharacters' in diesem Code nicht verfügbar. Bitte führen Sie 'trace (f, strUnlockables [f], sharedObjectCharacters.data [strUnlockables [f]])' vor der if-Anweisung aus, um zu prüfen, ob alle Daten während der Iteration erscheinen. – Vesper