【问题标题】:How do I set the state of a SimpleButton with Actionscript 3如何使用 Actionscript 3 设置 SimpleButton 的状态
【发布时间】:2009-08-14 17:39:13
【问题描述】:

我们的设计师创建了一个 .fla 文件,他创建了一组 SimpleButton,我已将它们连接到视频播放器。现在我需要将按钮的状态设置为“结束”,如果它关联的视频正在播放。

这个按钮在图形上有些复杂,所以我不想用 AS 重新创建它。

有没有办法在视频播放时设置 myButton.upstate = myButton.overstate?我看到了here 的问题,这似乎让我相信 SimpleButton 不太适合操纵。我已经看过使用 AS3 here 从头开始​​创建它的示例,但重新创建这些按钮将是一项艰巨的任务。

我可以做到,但我不想走上正轨,除非没有其他方法可以做到这一点,因为这是“看起来”应该很简单的事情之一。

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    如果您查看 Flash API,upState 和 overState(请注意此处的驼峰式大小写)是可读/可写的。所以你可能已经在这里回答了你自己的问题:

    myButton.upstate = myButton.overstate

    给它一个测试,看看它是否有效。只需确保将实际的 upState 保存在一个临时变量中,这样您就可以在视频不播放时将其更改回来。

    每当我遇到必须以编程方式更改按钮状态的情况时,我只需使用 Flash IDE 并为按钮的每个状态制作一个带有帧的 MovieClip。我知道这不是您理想的解决方案,但它确实有效。

    【讨论】:

    • 如果 SimpleButton 是在 IDE 中创建的,则此代码可能不起作用。 Flash 通常有点难以预测与 IDE 混合的代码会发生什么。
    • 是的,我应该更清楚的是,将 upState 设置为 overState 是我尝试的第一件事。但是,当我这样做时,我会收到“访问未定义属性”错误。
    • 问题与按钮所在的层有关。它是一个按钮的电影符号符号的实例。 (有充分的理由,但仍然如此)。一旦我“扁平化”了将 upState 设置为 overState 的结构,就成功了。 - 谢谢。
    • 在将 upState 设置为 overState 后,如何让 upState 恢复到原来的 upState。这将删除 upState, obj.upState = null;这什么也没做。 obj.upState = obj.upState;
    • 确保将 upState 保存到变量中,然后再将其替换为 over 状态。
    【解决方案2】:

    根据我的说法,您应该只提供与该类的链接并创建一个通用类,该类根据帧名称 [gotoAndStop(frameName)] 在不同的帧上跳转。这会容易得多,并且类可以与 N 个按钮一起使用。您只需为适当的框架提供框架名称。

    【讨论】:

      【解决方案3】:

      upState 和 overState 方法确实适用于 IDE 创建的 SimpleButton。

      var defaultUpState:DisplayObject = test_btn.upState;
      var overUpState:DisplayObject = test_btn.overState;
      
      test_btn.upState = overUpState;
      

      下载此 FLA 以查看 -- http://www.box.net/shared/ll0ho12iqb

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-25
        • 1970-01-01
        相关资源
        最近更新 更多