我对AS3比较陌生,目前正试图找出解决这个问题的方法:
我在网格中有25个图标(电影剪辑,但只是静态图像)的启动屏幕,背后有按钮。在每个图标的翻转时,我喜欢随机选择要隐藏的25个图标 - 除了当前翻转的图标。然后在ROLL_OUT上,所有25个图标应该再次可见。
非常感谢您提供的任何帮助!
答案 0 :(得分:1)
您需要做的是遍历您拥有的所有MoveiClip并随机选择一些设置为不可见。
要使MovieClip不可见,我们会将visible
属性设置为false
,这会隐藏它们。
由于您没有提供任何当前代码,我将尝试创建一些以满足您的需求。
function icon_rollOver(e:MouseEvent):void {
for (var i:uint = 0; i < holderMC.numChildren; i++) {
if (holderMC.getChildAt(i) != e.target) {
holderMC.getChildAt(i).visible = Math.random() > 0.5;
}
}
}
function icon_rollOut(e:MouseEvent):void {
for (var i:uint = 0; i < holderMC.numChildren; i++) {
holderMC.getChildAt(i).visible = true;
}
}
// Add icon_rollOver and icon_rollOut as events to each of your MovieClips
该代码应该可以解决问题。我目前没有能够测试代码的位置,因此可能会出现一两个错误;但这是基本原则。
holderMC
是MovieClip,其中存储了每个图标。如果此holderMC
中的其他MovieClip不是图标,则需要一些稍微复杂的代码,或者将这些非图标移动到另一个容器中。
当调用icon_rollOver
函数时,它将循环遍历holderMC
内的每个MovieClip,然后检查它是否与e.target
相同,其中e
是事件。 target
属性是指调度事件的对象,因此在这种情况下应该是已翻转的MovieClip。如果当前子项不是已翻转的子项,则将其设置为条件的可见性,等于随机数(0到1之间)是否大于.5。 I.E. MovieClip有50%的可能性变得不可见。
当调用icon_rollOut
函数时,我们再次遍历holderMC
内的每个MovieClip,但无论如何都只是将可见性设置为true。这将使holderMC
中的每个MovieClip可见。
我希望这足以帮助您完成项目。祝你好运!
答案 1 :(得分:0)
我建议使用每个影片剪辑中存在的.visible属性。 一个简单的例子是:
MyMovieClip.visible = false;
这会使movieclip在被调用时不可见。
您的问题的一个可能的解决方案是制作一个在ROLL_OVER和ROLL_OUT上解除/切换的动画片段数组。