我一直在做一个使用值对象(VO)在客户端操作数据的Flex项目。在类定义之前,通过RemoteClass标签填充VO。
数据库结构进行了优化,因此这些表具有如下字段:
optionsName:"1,2,3,4,5,6“
在项目范围内,这个值("1,2,3,4,5,6")表示一组动态的数字。
默认情况下,用字符串"1,2,3,4,5,6“填充的optionsName类字段可以很好地工作。但我将此字段用作与业务逻辑相对应的一组number,将它们作为Number实例的Array进行操作会更方便。通常,最好的解决方案是订阅VOs的序列化/反序列化的类似事件,并执行额外的转换。
问题是:如何在Flex/ActionScript中实现这一点?
我知道当结果从远程对象到达时,我可以这样做,但从我的角度来看,这不是一个好的解决方案。我也知道实现flash.utils.IExternalizable接口的解决方案。
其主要思想是强制Flex在序列化VOs之前和反序列化之后调用所需的方法。
提前谢谢你。
致以最好的问候,Viktor Burdeinyi
发布于 2011-06-03 23:40:55
将该属性作为setter编写,该setter支持字符串和数组作为输入和动态转换。
private var _optionsName:Array;
public function get optionsName():Array { return _optionsName; }
public function set optionsName(newOptionsName:*):void {
if(newOptionsName is String) {
_optionsName = newOptionsName.split(", ");
} else {
_optionsName = newOptionsName as Array;
}
}https://stackoverflow.com/questions/6225759
复制相似问题