【问题标题】:AS3 Hide Random Object?AS3 隐藏随机对象?
【发布时间】:2014-10-21 09:00:04
【问题描述】:

我对 AS3 比较陌生,目前正在尝试找出解决此问题的方法:

我在一个网格中有一个包含 25 个图标(电影剪辑,但只是静态图像)的启动屏幕,它们后面有按钮。在每个图标的翻转时,我希望随机选择 25 个要隐藏的图标 - 除了当前翻转的图标。然后在 ROLL_OUT 上,所有 25 个图标应该再次可见。

非常感谢您提供的任何帮助!

【问题讨论】:

  • 你能分享你当前的代码吗?这将为我们提供一些基础。
  • 分享您当前的代码并展示您的尝试。

标签: actionscript-3 flash


【解决方案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 之间)是否大于 0.5 的条件。 IE。 MovieClip 有 50% 的几率不可见。

当调用icon_rollOut 函数时,我们再次循环遍历holderMC 中的每个MovieClip,但无论如何都将可见性设置为true。这将使holderMC 中的每个影片剪辑都可见。

我希望这足以帮助您完成您的项目。祝你好运!

【讨论】:

    【解决方案2】:

    我建议使用每个影片剪辑中存在的 .visible 属性。 一个简单的例子是:

    MyMovieClip.visible = false;
    

    这将使影片剪辑在调用时不可见。

    您的问题的一个可能解决方案是制作一组您在 ROLL_OVER 和 ROLL_OUT 上取消切换/切换的影片剪辑。

    【讨论】:

      猜你喜欢
      • 2021-07-28
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      • 2016-04-25
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多