【问题标题】:How can I dynamically change the width / position of a timeline-animated mask?如何动态更改时间线动画蒙版的宽度/位置?
【发布时间】:2010-01-27 14:56:44
【问题描述】:

我有一个包含两层的影片剪辑 - 一个背景影片剪辑,在此之上是一个蒙版影片剪辑(您可能猜到,这一层正在蒙版第一层)。由于设计需要,蒙版在时间轴上跨 60 帧进行动画处理。

当我使用 Event.RESIZE 侦听器在调整浏览器窗口大小时更改父影片剪辑的宽度时,就会出现问题。引用掩码的任何代码,即

parentMC.contentMask.width = stage.stageWidth; parentMC.contentMask.x = frame.width/2 - frame.contentMask.width/2;

只会导致遮罩动画根本不播放。这个问题有什么解决方案吗(我已经为此搜索了很多网站,但可能我忽略了一些非常明显的东西)。

非常感谢。

【问题讨论】:

    标签: flash actionscript-3 cs4


    【解决方案1】:

    你没有忽略任何明显的事情。不幸的是,您无法通过代码影响补间时间线。然而,有一种方法可以解决这个问题。您需要将时间线补间蒙版放在另一个影片剪辑中。这样做的缺点是您不能再擦洗时间线来查看效果。但是,至少这种方法有效。如果这没有意义,请告诉我。用我的手机打字,所以没有像我应该的那样解释。

    编辑

    好的,为了更好地解释(现在在计算机上),您需要将补间嵌套在一个额外的影片剪辑中。因此,您的补间实际上将在另一个非补间动画剪辑中,并在第一帧停止。当您想要显示补间时,您需要执行类似 mask_mc.play() 的操作。现在您将能够执行诸如 mask_mc.width = 500;... 之类的操作。

    【讨论】:

    • 谢谢,这很奏效。完全忽略了使用包含影片剪辑的可能性。这就是您在 TextMate 上花费的时间比在 IDE 上花费更多的时间! :P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 2017-01-31
    • 2021-02-01
    • 2012-01-02
    • 1970-01-01
    • 2017-02-26
    相关资源
    最近更新 更多