【问题标题】:Replacing ScrollPane Scrollbar with OS Native Scrollbar用 OS Native Scrollbar 替换 ScrollPane Scrollbar
【发布时间】:2009-03-24 18:57:00
【问题描述】:

有没有一种简单的方法可以用操作系统的本机滚动条替换 ScrollPane 滚动条?

如果 Flash 应用程序具有与用户操作系统相同的皮肤,则它们看起来更加集成 - 这并不总是很容易检测到(Vista Aero 与 Classic?)。

你们有没有遇到过这样的 Flash 应用示例?

【问题讨论】:

    标签: apache-flex flash actionscript-3 flex3


    【解决方案1】:

    设置这样的东西将是一项大而肮脏的工作。如果您非常关心操作系统外观集成,那么您最好使用原生浏览器控件而不是 Flash 或其他插件。

    可以说,您可以将您的 Flash 应用程序分解为单独的 SWF 模块,并将每个模块放入页面中它们自己的滚动 div 或 iframe 中。然后,您必须通过 ExternalInterface 或 LocalConnection 进行通信才能在 SWF 之间传递数据。就个人而言,我只愿意将其作为对自己的技术挑战来尝试,但我怀疑这是否值得为生产应用程序付出努力。

    【讨论】:

      【解决方案2】:

      出于好奇,我们将滚动窗格组件分离成一个独立的 swf,并在小部件的右侧和底部放置一组两个嵌套的 div。

      以垂直滚动条为例,外部 div 设置为滚动窗格的高度,CSS overflow-xhiddenoverflow-yauto。然后将子 div 设置为任意宽度,高度等于滚动窗格内容的 px 高度。

      浏览器会显示一个适当大小的“滚动手柄”,我们可以快速读取外部 div 上的垂直滚动偏移量,以了解 Flash 滚动窗格的偏移量。水平滚动条使用了相同的技术,并进行了适当的修改。

      我们还包含了一些逻辑来根据容器溢出自动隐藏容器。结果非常接近原生操作系统的行为。

      虽然这听起来像是一个巨大的黑客攻击,但我们能够广泛部署该解决方案 (scribd.com),而不会出现任何重大问题。

      【讨论】:

        【解决方案3】:

        讨厌这样说,但没有办法做到这一点。您可以使用受操作系统启发的皮肤/主题,但即便如此,用户也有可能使用自定义颜色、大小等修改其外观设置。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-26
          • 2021-06-27
          相关资源
          最近更新 更多