【发布时间】:2016-12-08 18:27:04
【问题描述】:
大家好,所以我正在努力寻找解决这种情况的最佳方法。
所以我的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;
【问题讨论】:
标签: actionscript-3 random flash-cs6 flashdevelop