问题标签 [flicker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1995 浏览

vb.net - 更改面板中的图像时减少闪烁

如何减少 vb2005 面板中的闪烁?在父面板中,我正在使用另外 2 个面板。

最外面的面板包含一个背景精灵,两个最里面的面板是叠加层,它们会改变以适应背景精灵中的位置。

当我更改覆盖精灵时,我想减少闪烁并使其从一个精灵平滑过渡到下一个精灵。

这是更改覆盖面板中图像的代码,如果新值与旧值相同,则覆盖面板不会更改

0 投票
2 回答
1549 浏览

c++ - 带有 Alpha 通道的闪烁子窗口

当绘制包含具有每像素 Alpha 通道的位图的子控件时,每当需要重绘它们时,我们就会得到相当多的闪烁。实际的混合工作正常。我找到了很多关于减少闪烁的信息(例如这个问题这个网站),但我似乎找不到任何特别适用于这种情况的信息。

例如,我有一个带有几个不同位图的按钮,这些位图根据按钮的状态进行了 alpha 混合和 blitted 到窗口。当它们的状态发生变化并且我需要绘制不同的位图时,我需要先重新绘制背景,否则它会与前一个状态位图留下的像素混合。这是我得到一些闪烁的地方,我偶尔会得到一些背景撕裂。

让顶级父窗口绘制位图背景而不是纯色,以及让子控件重叠的可能性使问题变得更加复杂;只是将基础颜色乘以孩子的位图是不可能的,就像使用WS_CLIPCHILDREN.

由于窗口有位图背景,我将返回trueWM_ERASEBKGND以避免绘制将被覆盖的颜色。

当然,双缓冲似乎可以解决所有这些问题,但我无法让它正常工作。我已经WS_COMPOSITED为顶级窗口和WS_TRANSPARENT子窗口设置了。当需要使用新位图重绘子窗口时,我遇到了一些问题(很可能是我不理解在这种情况下绘制顺序是如何工作的):

  • 如果我调用InvalidateRect()并传递子句柄,子窗口确实被重绘,但背景没有被重绘,因此像素相互叠加,混合在一起。
  • 如果我调用InvalidateRect()并传入句柄,矩形由子窗口的尺寸组成,则背景会被重绘,但子窗口不会。
  • 如果我同时执行上述两项操作,那么背景和子窗口都会被重绘,它看起来完全符合我的要求——除了这样做,我设法让它再次闪烁(这不是这并不令人惊讶,因为这样调用两次似乎非常骇人听闻InvalidateRect(),因为我猜每次调用都可能导致缓冲区翻转,这违背了目的)。

我得出的结论是,我真的不明白我需要如何修改我的程序来处理双缓冲,或者双缓冲是否有助于解决这种情况。我觉得它肯定会,但我不太明白我需要如何修改东西才能让所有东西再次正常播放。

0 投票
1 回答
566 浏览

.net - Javascript 图像更改导致嵌入的用户控件闪烁

我在 IE 中显示了一个 html 页面。它有一些由 JavaScript 中带有鼠标悬停/鼠标退出事件的图像组成的按钮,以及一堆嵌入式 .Net 用户控件。

当 mouseover/mouseout 事件触发时,我将图像 src 更改为其他内容(简单的翻转效果)。问题是用户控件经常(但不总是)在发生这种情况时闪烁。

需要明确的是,图像不会闪烁,页面的其余部分也不会闪烁,只是嵌入的控件。这个页面是本地的,不是来自服务器或任何东西。

那么,有什么想法吗?

更多信息:我注意到突出显示文本也可以...

0 投票
1 回答
2625 浏览

gnu - GNU 屏幕刷新问题

我最近开始使用 GNU Screen,但遇到了一个非常烦人的问题。

在任何屏幕窗口中,如果在提示符处没有输入任何内容时按左箭头键或退格键,屏幕似乎会刷新,导致轻微闪烁。在提示符处键入一些文本后,使用退格键或向左箭头不会导致闪烁(至少在到达提示符中的第一个字符之前)。

有人见过这个吗?

0 投票
1 回答
730 浏览

activex - activex 控件上的 IE 严格模式闪烁

我有一个网页,其中包含(除其他外)几个嵌入的 activex 控件。它只在 IE 中呈现,并且处于严格模式。如果我突出显示页面中的任何文本(或使用 onmouseover 事件翻转图像以更改其图像或其他任何内容),所有控件都会可怕地闪烁。

如果我将页面更改为怪癖模式,闪烁就会消失。我进行了广泛的搜索以寻找解决方案,并发现了很多关于 IE 6 是如何被破坏和奇怪的东西,但这发生在 IE 7 和 8 中。

那么,关于我可以做些什么来解决和/或诊断这个问题的任何想法?

0 投票
1 回答
2945 浏览

javascript - Firefox 闪烁错误

减小文档大小时导致Firefox闪烁的错误是否有任何解决方法?

单击此处进行演示

单击此处查看 quirks 模式下的演示(无 DOCTYPE)

我敢打赌它可以使用 javascript 修复——每当滚动条缩小时,确保向上滚动窗口以防止闪烁或其他什么......想法?

更新:在怪癖模式下,该错误似乎不存在(或至少不那么严重)

0 投票
4 回答
10991 浏览

vb.net - 防止事件期间屏幕闪烁

嘿伙计们,我知道在 vb 的原始版本(如在 excel 中找到)中,您可以插入一行以防止屏幕在尝试处理某些内容时来回闪烁。

应用程序.screenupdating = false

我目前在 Visual Studio 2008 中使用 vb.net,但我想知道是否有人知道这个版本的等价物。它在使用 vb.net 的 VS 2008 中无法识别此调用。任何帮助,将不胜感激!提前谢谢各位!

0 投票
4 回答
15636 浏览

.net - 如何防止 Windows 窗体文本框在调整大小时闪烁?

有很多文章解决了 Windows 窗体中的闪烁问题。大多数人建议设置DoubleBuffered = true或设置一堆ControlStyle标志。但是,这些都不能帮助减少 TextBox 闪烁。

这里有几个相关的问题:

要重现此问题,请创建一个新的 WinForms 项目,添加一个TextBox,启用多行,禁用自动换行,添加一堆文本,设置Anchor为 Left+Right+Top+Bottom。现在运行并调整大小。文字闪烁。对于几个嵌套TableLayoutPanels 内的文本框,调整大小时的闪烁甚至更糟。

应用上述问题中提出的解决方案充其量不会解决闪烁问题;如果我进行实验并设置保护ControlStyleTextBox我可以完全打破它(通过启用UserPaint)但不能消除闪烁。

那么,有什么办法可以修复TextBox中文本的闪烁问题吗?

0 投票
1 回答
1831 浏览

flash - as3 - 放大按钮或影片剪辑时控制闪烁

这是我经常遇到但似乎从未找到好的解决方案的情况。我有在翻转时稍微放大的动画剪辑,但如果您将鼠标悬停在动画剪辑的边缘,它就会停在那里并闪烁,不断接收 mouseOver 和 mouseOut 事件。你如何处理这个问题?同样,在补间动画剪辑或按钮的比例时通常会出现问题。

0 投票
3 回答
1576 浏览

windows - 为什么 OS X 没有与 Windows 相同的闪烁问题?

我正在阅读 Larry Osterman 关于调试 Windows Vista/7 音量控制中闪烁问题的最新博客文章,我突然意识到我不记得曾经在我的 OS X 笔记本电脑上看到过应用程序闪烁。根据我的经验,即使是看起来写得很糟糕的应用程序也能避免闪烁问题。如果没有这变成 Apple 与 Windows 的辩论(请),为什么 OS X 应用程序似乎没有同样的闪烁问题

我很难相信 Apple 开发人员在编写无闪烁 GUI 方面简直令人惊叹,而 Windows 程序员却很糟糕,那么原因是什么?OS X API 是否需要所有 GUI 来实现双缓冲?虽然一些应用程序的双缓冲调整大小行为稍显迟缓,但许多应用程序没有,而且它们仍然避免闪烁。OS X 重绘流程是否与 Windows 有根本的不同,WM_ERASEBKGRND完全避免了这个问题?或者还有其他一些我没有看到的可能性?

更新:感谢您的回答。我希望我可以同时选择 ken 和 cb160 的答案,因为它们都很有帮助。