干燥/重构flex / actionscript代码

时间:2010-06-19 21:26:49

标签: flex actionscript-3 refactoring adobe mxml

我有10个组件,其代码非常相似,除了它应用的目标和其他一些细微差别。

例如,我将xml返回到component1component2,以这种方式不同:

component 1: event.result.names.name
component 2: event.result.phones.phone

然后我将它们绑定到List,该列表的名称因组件而异。

component 1: nameslist.dataProvider = 
component 2: phoneslist.dataProvider = 

如何创建一个单独的方法,只接受我需要处理的对象的名称/指针/引用作为参数。对于返回的xml结构,nameslistphoneslistList.phones.phone.names.name的示例有哪些?

1 个答案:

答案 0 :(得分:2)

听起来我可以使用函数作为组件的参数。

所以,你会有这样一个属性:

public var dataProviderFunction : Function;

你给它的价值可能是这样的:

public function getNamesDataProvider(object:XML):xml{ return xml.namesList.dataProvider }

或者像这样:

public function getNamesDataProvider(object:XML):xml{ return xml.phonesList.dataProvider }

看一下List类的源代码,看看labelFunction和itemToLabel是如何实现的。