`
eka72eka
  • 浏览: 14039 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

flex 自定义可视化组件的超级基类的属性设置

 
阅读更多

flex 自定义可视化组件的超级基类的属性设置
2010年07月03日
  虽然前段时间以乔布斯为首的几位大侠对flash的安全、性能等进行了强烈的批评,而且伴随着html5的日趋完善,可能这种批评声会越来越大,甚或超过南非世界杯呜呜组啦的分贝,但是个人认为flex确实是一个可以做delphi、pb、c#等客户端所具有的强鼠标、键盘操作性的web应用好工具。但最近在开发flex自定义组件的时候,却让我十分恼火,真TMD的想骂Flex开发团队是一帮蠢驴(这是气话,flex总体来说还是不错的,但确实不是很成熟)。那么究竟什么让我这么火?Flex自定义组件的属性配置就是个鸡肋,就是基本组件的属性配置也很差。
  拿使用频率较高的AdvancedDataGrid来说,该控件的属性配置应该算是做的比较好的了,提供了列配置,开发人员可以通过图形界面增加、删除列,编辑列的可编辑、标题、显示字段等属性,但是比较C#等客户端的话,Flex提供的可视化属性配置还是差之太远。现在自定义一个Grid,继承AdvancedDataGrid。关于如何自定义组件,网上已经说的很多了,这里不再赘述,自定义组件有2种做法:其一是ActionScript类,其二是mxml文件。不管用哪种方法,现在已经做好了一个自定义表格MyGrid,继承AdvancedDataGrid。
  新建一个mxml Application,将MyGrid拖放到该application中,发现MyGrid的属性配置面板里除了id等几项设置外已再无其它内容,刚才在AdvancedDataGrid属性面板中所见的dataProvider、选择模式、列配置等都已不见,也就是说自定义的MyGrid不能进行可视列编辑了,狂晕呀。
  仔细分析大概是这样的:
  1)  flex所有可视组件的属性配置应该有个基本模板,大概该模板是基于UIComponent的;
  2)  flex自包含可视组件的属性配置应该有其特定实现,比如AdvancedDataGrid,应该有扩展自基本模板的AdvancedDataGrid属性配置;
  3)  所有自定义组件的属性配置都只有基本模板(诸如id、左右边距等),因为flex找不到自定义组件的属性配置模板实现(由于flex组件的属性配置是flex预定义程序,且只对flex的标准组件做了定义),所以只有用UIComponent的配置模板了;
  结论与建议:
  结论很明显,flex的自定义组件没有可用的可视化属性配置,因此我们要设置属性只能在mxml文件或者as文件中进行 coding 脚本,如果一个MyGrid有30列,那么就coding 30 对AdvancedDataGridColumn吧。
  建议,虽说flex其核心还是脚本编程,但个人认为一个好的开发工具,高效的开发工具还是很重要的,我认为flex不仅要完善属性控制面板,对其数据管理、标准的组件(拿最简单的Button来说吧,在4中不能直接设置icon了,为了显示带icon的button我tmd要写一堆代码,而在3中却是可以直接设置的,虽说4是为了把显示和数据分开,但同时要考虑开发效率呀。)等也需要加以完善。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics