gpt4 book ai didi

apache-flex - 闪存/Flex : "Warning: filter will not render" problem

转载 作者:行者123 更新时间:2023-12-03 02:58:19 25 4
gpt4 key购买 nike

在我的 Flex 应用程序中,我有一个以模式方式弹出的自定义 TitleWindow。当我调整浏览器窗口大小时,收到此警告:

警告:过滤器将不会渲染。 DisplayObject 的过滤尺寸(1286, 107374879)太大,无法绘制。

显然,我没有设置高度为 107374879 的任何内容。

此后,每当我将鼠标悬停在 Flash Player (v. 10) 中的任何内容上时,CPU 都会以 100% 的速度运行。当我关闭 TitleWindow 时,问题就消失了。遗憾的是,该警告似乎并未表明哪个 DisplayObject 对象太大而无法绘制。我尝试将显式高度/宽度附加到 TitleWindow 及其中的组件,但仍然没有成功。

[编辑]

情节变得更加复杂:我发现只有当我将 PopUpManager 的 createPopUp 模式参数设置为“true”时才会出现该问题。当模态设置为“false”时,我没有看到该行为。将灰度过滤器应用于来自模态的其他组件时,它失败了。我有什么想法可以追踪尚未初始化但在模态阶段被过滤的一个对象吗?

感谢您的阅读。

最佳答案

在您的应用程序中可能不是这种情况,但我遇到过类似的情况,由于在定位计算中误用无符号整数,因此将对象的高度或宽度设置为某个不合理的大数字,高度或宽度。

这种情况的示意性代码可能如下所示:

var offset:uint = 30;
var position:uint = txt.textHeight - offset;
divider.y = position;

代码错误地假设 txt.textHeight 始终大于 30。如果不是,则 txt.textHeight - offset 将是一个负数,当存储在 uint 中时,它会变成一个非常大的数字。

例如,假设 txt 中的文本是长多行文本,但实际上是 20 像素高的单行。结果将是-10,当存储在uint var位置时,位置的值将是4294967286。

上面是一个蹩脚的代码示例,但在现实世界中,uint 问题可能会以某种更复杂的方式发生,这可能更难立即发现。我想对 x 和 y 位置等可能有负值的东西使用无符号整数很少是一个好主意。

关于apache-flex - 闪存/Flex : "Warning: filter will not render" problem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2961205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com