代码之家  ›  专栏  ›  技术社区  ›  itarato Randy Sugianto 'Yuku'

灵活-大量画布上的怪异显示行为

  •  0
  • itarato Randy Sugianto 'Yuku'  · 技术社区  · 14 年前

    我有一个灵活的应用程序(sdk 3.5-fp10),可以实现思维导图树。每个节点都是画布(我使用的是画布特定的属性,所以我需要它)。它具有阴影效果、背景色和一些小的用户界面元素(如图标、文本…)。它工作得很好,直到超过700个节点(画布)。在这个数字上,它显示灰色矩形: http://yfrog.com/bhw2pj . 如果我关闭画布的DropshadowFilter效果,它们也会消失,因此我假设这是一个DropshadowFilter问题: http://yfrog.com/2d9y8j .

    效果很简单:

    private static var _nodeDropShadow:DropShadowFilter = new DropShadowFilter(1, 45, 0x888888, 1, 1, 1);
    
    _backgroundComp.filters = _nodeDropShadow;
    

    有没有可能是flex处理不了那么多?

    提前谢谢

    2 回复  |  直到 14 年前
        1
  •  0
  •   quoo    14 年前

    我认为你是对的,flex不能处理那么多的阴影滤镜。它们很贵。但是,如果您使用的是内置的皮肤,那么它们会创建Dropsdows的位图版本,而这种版本的处理器占用较少。您需要将样式“DropshadowEnabled”设置为true以启用此效果。您对这种类型的Dropshadow的控制会更少,但您可以让它做您想做的事情。

    有关更多的阴影样式,请阅读mx:canvas的样式列表: http://livedocs.adobe.com/flex/3/langref/mx/containers/Canvas.html

        2
  •  0
  •   davr    14 年前

    是的,700对于flex组件来说有点多。在这个级别上,您需要编写自己的自定义组件来手动进行绘图和布局。另外,我同意使用BitmapCaching来确保放置阴影过滤器不会经常被重新渲染。