[原] Tween引起parent多次updateDisplayList的原因和解决方法

[说明: 本文为 http://www.smithfox.com/?e=56 原创, 转载请注明原文, 谢谢]

先看问题是什么: 就所标题所说.

What's the problem: Tween cause the parent frequently updateDisplayList

具体见我在9ria的帖子: http://uh.9ria.com/link.php?url=http://bbs.9ria.com/viewthread.php%3Ftid%3D72232

或是直接看本Blog下面的内容也可以.

最后的结论是: 将child.includeInLayout = false; 就可以解决这个问题.

The last conclusion: just set child.includeInLayout = false, that can resolve the issue.

问题的延伸: Tween会改动child的rotation, scaleX, 之类的属性. 而这类属性的setter函数最终会调用parent.invalidDisplayList().

Rootcause: Tween will change child's rotation, scaleX etc properties. and the setter function of those properites will invoke parent.invalidDisplayList()

Read More

smithfox Thursday 13 January 2011 at 3:40 pm | | UI | Six comments

[原] flex brightpoint gauge component

在网上看到一个更好的仪表盘控件 http://www.brightpointinc.com/FlexDemos/GaugeSample/srcview/index.html , 官网现在好现已经不能注册用户, 也不能下载最新的版本了。

我所找到有源代码的版本(上面的链接)Demo中没有缓效果, 显得很生硬。但是在代码中却有缓动效果相关代码, 是用mx.effects.sequence加入了5个mx.effects.Rotate来实现的, 但是没有打开. 我将useEffect置为true后,发现这些缓动效果代码有问题。

然后我就动手改造, 删除原有缓动效果代码. 改用一个基本的mx.effects.Rotate Tween, 实际证明也可以达到比较好缓动的效果.

Because I can not get the latest version with needle rotation tween effect. So I add the effect by myself.

Demo如下: 右键可以查看代码(you can view source by clicking mouse right button)

如果你看不到flash, 你就直接到 http://www.smithfox.com/myopensource/brightpoint/GaugeSample.swf

Read More

smithfox Wednesday 12 January 2011 at 08:07 am | | UI | Eleven comments
Used tags: , , , ,