【问题标题】:how do I keep one movieclip on top of another in actionscript 3如何在动作脚本 3 中将一个影片剪辑放在另一个影片剪辑之上
【发布时间】:2013-01-27 17:50:10
【问题描述】:

所以,假设我在代码的开头addChild(mc1);,当我稍后在代码中添加更多内容时,如何将其保持在addChild(mc2); 之上?默认情况下 mc2 将覆盖 mc1...我尝试过 z-indexes,但我还没有完全掌握如何在我的情况下使用它...帮助?

谢谢!

【问题讨论】:

    标签: actionscript-3 flash z-index addchild


    【解决方案1】:

    movieclips 在他们的类中有一个三坐标系统,所以除非我弄错了,否则你可以尝试将 mc1.z 更改为高于 mc2.z

    【讨论】:

    • 没有工作...不是z深度,与问题完全不同吗? :S
    【解决方案2】:

    几个建议:

    1. 使用addChildAt(mc1, 0)addChildAt(mc2, 1)。您可以使用addChildAt 声明要添加影片剪辑的特定“层”。

    2. 每当您添加任何其他内容时,请重新添加您想要保留在顶部的影片剪辑,即:

      addChild(mc1); // 添加第一个 mc

      addChild(mc2); // 在第一个 mc 之上添加第二个 mc

      addChild(mc1); // 将 mc1 重新绘制到顶层(不再添加,只是带到顶层!)

    【讨论】:

    • 抱歉第二个解决方案的格式不好,无法让代码标签工作=/
    【解决方案3】:

    您还可以在“mc1”下创建一个父精灵,然后将“mc2”和其他所有内容添加到该父精灵。该父精灵下的任何内容都将始终保留在 mc1 下,您无需担心手动将 mc1 移动到显示堆栈的前面。

    // during when mc1 is first added
    var parentSprite:Sprite = new Sprite();
    this.addChild(parentSprite);
    this.addChild(mc1);
    
    
    
    // later in your code, whatever is added to "parentSprite" will always be displayed under mc1
    parentSprite.addChild(mc2);
    parentSprite.addChild(mc3);
    parentSprite.addChild(mc4);
    .
    .
    .
    etc
    

    【讨论】:

    • 我已经用 addChildAt 修复了它并为它创建了一个工作系统,所以它总是检查它并将它添加到顶部。无论如何,谢谢,我敢打赌这在我需要时会很有用:)
    猜你喜欢
    • 1970-01-01
    • 2015-04-24
    • 2015-07-07
    • 2011-07-13
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    相关资源
    最近更新 更多