2012-11-26 22 views
0

我想用actionscript 3中的变量做这样的事情,你可以忽略randomNumber函数。它只是为了让我的问题关于我在做什么更清晰:如何使用这样的变量?

function randomNumber(low:Number=0, high:Number=1):Number { 
return Math.floor(Math.random() * (1+high-low)) + low; 
} 

randomNumber(1, 3) 

var selection:int = randomNumber; 

mymovieclip.insideclip(selection); 

所以我想基本上使用变量的内容来选择特定的影片剪辑。你可以想象有多个内侧夹。所以像insideclip1,insideclip2,insideclip3。我随机选择一个数字并将其放入一个名为selection的变量中,然后我想使用mymovieclip.insideclip1,2或3,具体取决于该变量存储的数字。

我敢肯定,有一种方法可以做到这一点,有人可以指导我解决。

+0

只是为了澄清任何人可能会遇到此类寻找类似的东西。我做了一个数组:movieclipArray:Array = [movieclip.insideclip1,movieclip.insideclip2等];然后用我在上面发布的随机函数做了如下操作:var selection = randomNumber(0,3);并最终可以得到我想要的结果:movieclipArray [selection] –

回答

2

有很多种方法可以做到这一点(也取决于你想要的)。一种方法是,您可以将所有“内部剪辑”存储到数组中,然后选择一个随机索引。

+0

啊谢谢你的建议,我仍然是一个新手,所以我没有使用阵列的经验,但我会得到它!出于好奇,我确信使用数组可以工作,但我也想知道其他方法来实现相同的目标。我会再次发布,如果我得到阵列的工作,当然。 –

+0

在这种情况下,该数组既是存储剪辑的方法,也是用于将每个动画片段的“映射”或索引创建为数字的方法。你可以用另外一种方式来创建这个映射,例如将'1'标记为剪辑1,将'2'标记为剪辑'2',然后如果要避免使用数组,则使用long if/else if或switch语句,但是我不能说我推荐它,因为它会导致许多重复的代码和更难维护,取决于你有多少剪辑。 – mitim

+0

啊,我现在明白了,感谢帮助mitim。我把“内部剪辑”放入一个数组中,并且可以很容易地随机选择使用哪一个,然后让它做我想做的事。哈哈,是的,我正在考虑你提到的另一种方式,几乎认为在问这里之前试图走很长的路。很高兴我决定以不同的方式处理它。 –

0
var selection:int = randomNumber(1, 3);//randomNumber(1, mymovieclip.numChildren) 
var myMovie = mymovieclip.getChildByName("insideclip" + selection); 

或者如果你想摆脱名字,你可以通过它们的深度来访问它。

var selection:int = randomNumber(1, mymovieclip.numChildren); 
var myMovie = mymovieclip.getChildByDepth(selection); 
+0

啊,谢谢你的答案Moorthy,有趣的方法。我最终决定制作一个数组来保存剪辑,但是感谢您的建议。 –

相关问题