Flex的若干问题
如果不用component来开发,可以想象花费的时间需要多长。虽然可以像以往用Flash来开发,应用一般自定义皮肤等等,但我们想快速开发——别人是快速开发吗?我不知道——不过问题转移到了另一边。
问题开始于对DataGrid的单元格自定义,那时想为某个单元自定义一个类,如可以定义那个单元显示为下拉列表等,这个问题从现在来说应该是没有挑战性,种种迹象表明只需要设置itemRenderer属性,而且也是在看文档和在网上找到了解决方法(文档与网上资料都是标签式的解决方式)。在这个问题解决之后,发现困难转移到了另一边:如何获取单元格的自定义对象?这个问题足足折腾了快要一周吧,阿斌和我可真具有耐心啊,研究并继续发现问题,哈哈。在早之前,阿斌通过debug去查找DataGrid里的内容,发现所有的东西都可以在那里找到,我也持续的在做这件事情,不过发现所有的东西都在私有变量中,无法从外部直接引用,那时可真是昏了头了,没有想到应该通过继承去获取那些值,而这是几天后的事了。
问题没有结束,以为能引用到内部的对象就可以“造火箭”了,这是我那时跟阿斌说得笑话。事情上,Flex中的组件存在一个问题:控件容器在于标签形式呈现时,是可以设置百分比的;而以脚本的方式书写确没办法设置百分比(或者我没找到这样做的方法)。在这问题上,我绕了个弯才把这个问题解决了。如mx.controls.Tree,先定义成module,然后通过脚本实例化,这样转换个角度进行操作;还有以上DataGrid的定义(包括可以访问单元格对象的功能),可不是这样简单做就可以了——如果不包含访问单元格对象的功能,那么操作的方式与Tree是一样的——首先,继承DataGrid类的oDataGrid拥有访问单元格对象的功能,然后通过oDataGrid自定义一个component名为:<controls:oDataGrid>,接着定义一个模块mDataGrid,模块里应用<controls:oDataGrid>component,最后一步就是通过脚本实例化mDataGrid,实例化的对象会以高宽百分百的方式占据它的父容器,这样才算完事,过程如下:
DataGrid -> oDataGrid -> <controls:oDataGrid> -> mDataGrid
老实说,这个用起来相当的效率不高,也许应该把拥有访问单元格对象的功能独立出来,这样可以减少以上步骤。
遇到的问题也都在解决中,此处仅作为标记。
End.0 TrackBacks
Listed below are links to blogs that reference this entry: Flex的若干问题.
TrackBack URL for this entry: http://www.tracesoul.com/mt-tb.cgi/17

可以试一下 percentHeight percentWidth 两个属性啊。
to tamt:
you are right! thank you!
在茫茫的属性中终于看到了percentHeight 和 percentWidth
晚上回去做精简工作 :-)
呵呵感觉阿贤的方法是对原有组件的再次包装
不过能增加它原来没有的功能
嗯 考虑的过程中 也是在尽量用最顶部的类 以免产生不必要的属性和方法