首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

UICompont中动态添加按钮不显示解决方案

2012-04-04 
UICompont中动态添加按钮不显示一个类A继承UICompont。在A中动态添加按钮的按钮却不显示,但把基类换成Canva

UICompont中动态添加按钮不显示
一个类A继承UICompont。在A中动态添加按钮的按钮却不显示,但把基类换成Canvas就可以了。换成Container都不行。请问是什么原因啊

[解决办法]
因为UIComponent 类是所有可视组件(交互式和非交互式)的基类,UIComponent 类不作为 MXML 标签使用,而作为其它类的基类使用。
如果A类继承UIComponent的话,需要重写createChildren()方法去创建孩子内容,还需要重写measure()设置组件的缺省 size 和缺省的最小size。以及重写updateDisplayList()根据以前所设置的属性和样式来确定组件的子组件在屏幕上的大小(size)及位置(position),并且画出组件所使用的所有皮肤( skins)及图形化元素。组件的父容器负责确定组件本身大小(size)。

因为UIComponent的这几个方法,可以认为是抽象的,没有实现内容的,是需要子类来完成的。由于你什么都没做,所以自然没有显示里面的按钮
[解决办法]
赞同!·
[解决办法]
可以的话,把自定义类代码贴出来看看,帮你分析下。
[解决办法]
可以动态创建。不是必须在createChildren()里面做。
[解决办法]
呵呵,我就想看这两个里面的代码呢
measure();//略
updateDisplayList();
怎么还略了?
如果可以的话,把代码全贴出来把。
[解决办法]
没有显示的原因很可能是因为那些button的x,y,width和height都是0,我也遇到过类似问题,是在TreeItemRenderer里,貌似是因为那些UIComponent中的子组件的那几个重要方法没有被调到,原因没仔细研究,我的解决方法是在createChildren的时候就把子组件的width和height和设好(相当于手动去触发子组件的那几个基本方法),x和y我还是在updateDisplayList里设置的,不知道你是不是也是这种情况。
[解决办法]

探讨
没有显示的原因很可能是因为那些button的x,y,width和height都是0,我也遇到过类似问题,是在TreeItemRenderer里,貌似是因为那些UIComponent中的子组件的那几个重要方法没有被调到,原因没仔细研究,我的解决方法是在createChildren的时候就把子组件的width和height和设好(相当于手动去触发子组件的那几个基本方法),x和y我还是在updateDi……

热点排行