用OS Native Scrollbar替换ScrollPane滚动条

时间:2009-03-24 18:57:00

标签: flex flash actionscript-3 flex3

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

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

你们有没有遇到任何Flash应用程序的例子呢?

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

使用垂直滚动条作为示例,外部div设置为滚动窗格的高度,其overflow-xhiddenoverflow-yauto }。然后将子div设置为某个任意宽度,高度等于滚动窗格内容的px高度。

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

我们还提供了一些逻辑来根据溢出自动隐藏容器。结果与本机操作系统行为非常接近。

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

答案 2 :(得分:0)

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