Flex Spark TitleWindow 在拖动时重绘错误

Posted

技术标签:

【中文标题】Flex Spark TitleWindow 在拖动时重绘错误【英文标题】:Flex Spark TitleWindow bad redraw on dragging 【发布时间】:2011-02-18 05:39:57 【问题描述】:

我在 flex 4 中重绘时遇到问题。我有一个 spark titleWindow,如果我将它拖得更快,看起来它的遮罩在组件之后迟了一帧。 使用 1 像素的细边框很容易看到它,因为即使移动速度较慢,它也会变得不可见。

你可以在这里试试(什么不是我的页面,但是在这里展示比上传示例更容易):

http://flexponential.com/2010/01/10/resizable-titlewindow-in-flex-4/

如果您向上移动,您会看到顶部边框消失。在另一个方向上它没有那么敏感,因为它有很宽的阴影,而且在阴影上不是很明显。

在我的电脑上,我在谷歌上找到的每个 spark TitleWindow 上都看到了它,尽管它在对比度较低的皮肤、没有边框或阴影的情况下不太明显。

你在那里看到了吗?我从来没有这个光环组件的问题。它对不同的皮肤做同样的事情。我试图从皮肤、缓存组件、皮肤甚至应用程序中删除蒙版作为位图,但没有成功。

我在flash player中也开启了重绘区域,好像也是在titlewindow之后迟了一帧。

有谁知道它为什么会这样或者我该如何预防?

谢谢

更新:

没有答案?真的吗?

【问题讨论】:

【参考方案1】:

我一直面临同样的问题,我真的很生气,我找不到任何答案。

我的问题是,我试图将组件“component.x = (parent.width - component.width) / 2”居中,然后以编程方式绘制该组件。问题是,component.x 是一个数字,它可能导致像 10.5 或类似的浮动值。看起来 bitmapFill 函数轮换浮点数与 drawRect 函数不同,它在对象周围精确地形成 1px 线(但仅当 parent.width 是奇数时)。对我来说奇怪的是,我只调用了一次 Draw 函数,但这条线仍然不断重复......

Doing Math.floor(component.x) 解决了这个问题。

P.S.:我认为您还可以通过在拖动的对象上设置 cacheAsbitmap=true 来解决您的问题...

干杯, 扬·普拉兹马

【讨论】:

我不认为这是原因。我已经是地板坐标了,它不仅仅是一个像素。正如我所说,它看起来像遮罩晚了一帧,所以它可以影响大于 1px 的区域。

以上是关于Flex Spark TitleWindow 在拖动时重绘错误的主要内容,如果未能解决你的问题,请参考以下文章

Flex:如何重新使用现有的 TitleWindow 而不是打开另一个新的 TitleWindow?

Flex - 无法在 TitleWindow 内显示数据网格

如何消除显示 flex 标题窗口的内置延迟?

从 Flex 中的模式弹出窗口打开模式弹出窗口?

Flex 4 Spark 组件面板 - 隐藏标题栏

Flex Spark 图像调整大小以适应容器