我想知道如何实现TheFWA (thefwa.com)已经做得很好的原生滚动条效果(我不是Flex滚动条的粉丝)。
我找到了这篇文章(http://stackoverflow.com/questions/318675/how-can-i-create-a-flex-application-with-dynamic-height),并实现了这个技术,因为每次flash对象改变大小时,我都会通过ExternalInterface调用JS函数。此JS函数只是调整包含flash对象的div的大小,这将创建本地栏。
不幸的是,当我非常快速地调整大小时(比如从800到1800的高度),flash对象就会发生几毫秒的扭曲(就好像它没有改变大小,只是被拉向各个方向一样)。在这几毫秒后,一切恢复正常,但整个情况在视觉上真的很烦人。
最初我认为这只是一个时间问题,但在一堆尝试设置延迟之后,效果是一样的……只是延迟了一下。
我该如何解决这个问题呢?我知道这在技术上是可行的。只要看一看TheFWA,看看flash和浏览器是如何流畅地相互通信,以使本机滚动条工作,没有任何闪烁,或测量错误
发布于 2011-08-23 15:36:58
这是一个从Flash Player 10开始就出现的问题,一直持续到FP 11测试版。
当您调整包含SWF的DIV的大小时,SWF本身也会调整大小,因此您“要求”播放器重新绘制内容。但问题是,这种重绘造成了这种丑陋的闪烁。
解决方法是根本不调整SWF DIV的大小,并调整另一个空DIV的大小,因此您可以强制浏览器更新滚动条。
此时,当您使用滚动条时,它不会移动SWF DIV (因为它通常是一个绝对全尺寸的flash站点),但是您可以创建一个简单的JS回调来将滚动值发送到您的应用程序。
这听起来可能需要更大的努力,但实际上并不多,最终您将创建一种更灵活的方式来管理您的应用程序。
您可以在此处的http://www.andrefelipe.com/中查看
源代码在我的框架https://github.com/andrefelipe/fabricaframework/blob/master/src/fabrica/external/Browser.as上
发布于 2011-07-10 18:11:27
该网站的flash内容有固定的大小。他们所做的是将swf文件放在一个居中的div中。如下所示:
...header stuff...
<body>
<div id="flashContent" style="width:960px; margin:0 auto;">
...the flash content goes here...
</div>
</body>
div容器的宽度应该是flash电影的宽度。
如果你想调整flash电影的大小,那么可以看看swffit
发布于 2011-07-10 17:53:14
该站点并没有做任何特别的事情,只是简单地设置应用程序的高度和宽度,并将其放在页面上--没有调整大小。如果您只是使用相同的技术(指定应用程序的高度),那么您将获得相同的结果。
我是不是遗漏了什么?
https://stackoverflow.com/questions/6642669
复制相似问题