嘿傢伙,所以我正在努力解決這種情況的最佳方式。如何遍歷幀編號,如果爲true,則忽略該幀編號?
所以我有我的ovenScreen.mcChar
影片剪輯5幀。每個角色都是玩家可以解鎖的角色。如果玩家有足夠的金幣,那麼他們可以進入獎品屏幕以獲得隨機解鎖角色。
這裏是它是如何建立至今:
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);
}
正如你可以看到我有VAR frameLoop
這是從1隨機數 - 5。所以解鎖的角色將是隨機的,並顯示隨機解鎖角色。我使用if語句來檢查隨機數是否落在特定的框架上,而不是解鎖後解鎖並保存數據。
現在,這一切工作正常,但我怎麼能解決它的地方,如果項目已解鎖,通過不同的幀號進行排序。所以如果frameLoop登陸到2並且那個角色已經被解鎖,那麼重複隨機幀號直到它登陸一個鎖定的角色。我正在考慮設置一組數字,也許這種方法可能是合乎邏輯的,但不知道如何去做。
任何幫助,將不勝感激謝謝。
附加信息上的共享對象布爾:
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;
}
和我創建它們像這樣:
//shared Booleans
private var sharedHotDog:Boolean;
private var sharedTaco:Boolean;
private var sharedDonut:Boolean;
private var sharedCoffee:Boolean;
private var sharedPancakes:Boolean;
餵過Vesper非常感謝你爲這個和解釋。我現在要玩弄它,看看我能否實現它。我讓你知道如果我遇到任何問題,如果那沒關係。謝謝。一個問題,所以strUnlockables:數組是否持有我的sharedObject布爾值正確? – Nathan
我遇到的問題是當我播放if語句時,從來沒有考慮/我在if語句中添加了一個跟蹤,並且它永遠不會被調用。不知道可能是什麼問題。 sharedHotDog,sharedTaco等......都是我設置爲false的布爾值。任何想法可能會發生什麼? – Nathan
'strUnlockables'只包含字符串,共享對象中的布爾值的*名稱*。請檢查你是否在任何地方寫入字符串時犯了錯誤(我可以)。作爲第二個可能的原因,這個代碼中不能訪問'sharedObjectCharacters'。請在if語句之前執行trace(f,strUnlockables [f],sharedObjectCharacters.data [strUnlockables [f]])來檢查所有數據是否在迭代時出現。 – Vesper