var s : SpriteVisualElement = new SpriteVisualElement();
s.graphics.beginFill( 0xFFFF00 );
s.graphics.drawRect( 0, 0, 100, 20 );
s.graphics.endFill();
s.width = 100;
s.height = 20;
this.addElement( s ) ;
var l : Label = new Label();
l.text = "text";
l.width = s.width;
l.height = s.height;
s.addChild( l );
以下代码似乎无法正常工作(Flex 4.5)。
答案 0 :(得分:5)
它没有被显示,因为你没有将Label(它是一个UIComponent并与组件生命周期一起工作)添加到另一个将实际正确实例化它的UIComponent。你的SpriteVisualElement没有在其中包含UIComponents,它被设置为具有可以绘制自己的精灵。标签正在等待'invalidateDisplayList'被调用,以便它可以自己绘制。
强制绘制或使用UIComponent作为Label的容器。
答案 1 :(得分:0)
Spark Label不是容器;因此没有addElement方法。我假设你因为这个而得到编译错误[但你没告诉我们你的问题是什么]。
您可以将标签包装在容器中,例如Group或SkinnableContainer,并将您的额外视觉元素用作同一组的子元素。
或者您可以尝试使用Label的addChild方法。尝试将子项添加到组件(例如Label)中并不是一个容器,这很奇怪。