我应该在Flex4中使用Sprite吗?

时间:2012-10-30 10:17:10

标签: flex flex4 sprite

我想在Sprite中添加一个Rect,但是失败了。 一个Rect只能添加addElement,Sprite没有(只有addChild)。 有什么替代方案?

2 个答案:

答案 0 :(得分:1)

不,你实际上不想使用Sprites或MovieClips。 Flex中的UI层基于UIComponent,因此框架希望此类用作基类。测量/大小调整,定位等基于Flex组件实时循环,必须由组件显式/隐式实现以与框架一起使用。

其他一切都是对抗框架并失去很多好处。

答案 1 :(得分:0)

我有点不同意@Florian Salihovic的答案,校长。 Sprite是一个低级对象,在Flash播放器中本机定义。它比任何Flex组件都要轻得多。如果满足您的需求,为什么不在您的应用中使用它?

您只需要知道Sprite不会完成Flex组件所做的所有花哨的事情。这限制了它在Flex应用程序中的使用,但无论如何,并不排除它。

当然,我不经常在Flex中使用Sprite。我只想表达它是好的,并且在Flex应用程序中使用Sprite有非常好的方案:

  • 使用Sprite作为面具
  • 在Flex组件内使用Sprite作为子对象
  • 使用轻量级对象上的Graphics API进行编程绘图

对于您的具体情况,已经提出的建议很好,我将对其进行更多阐述:

  • 如果您只需要一个矩形,那么只需在Sprite上绘制矩形怎么样?听起来你已经计划在其上画其他东西。
  • FXG非常棒,它的语法类似于Spark图形基元(如Rect),所以它不会陌生。在Flex应用程序中实例化FXG对象时,将其键入SpriteVisualElement。因此,您在FXG中以声明方式生成的绘图可以实例化为SpriteVisualElement,然后您可以访问它Graphics api以对其进行额外绘制。