Apache flex 如何将自定义数据附加到元素?

Apache flex 如何将自定义数据附加到元素?,apache-flex,actionscript,flash-builder,Apache Flex,Actionscript,Flash Builder,有没有办法将自定义数据附加到元素?有点像jQuery中的$.data()函数? 我知道您可以子类化和元素,并添加自定义参数,但创建自定义类只是为了添加单个自定义参数,这将是一种过分的做法。我不完全确定我是否理解您的问题,但是否可以使您的元素a满足您的要求?我不完全确定我是否理解您的问题,但是,使元素a满足您的要求吗?在Flex中,当Flex控件使用数据提供程序(例如列表或数据网格)实例化元素时,ItemRenderer类(或)具有一个数据属性当Flex控件使用数据提供程序(例如列表或数据网格)实

有没有办法将自定义数据附加到元素?有点像jQuery中的$.data()函数?
我知道您可以子类化和元素,并添加自定义参数,但创建自定义类只是为了添加单个自定义参数,这将是一种过分的做法。

我不完全确定我是否理解您的问题,但是否可以使您的元素a满足您的要求?

我不完全确定我是否理解您的问题,但是,使元素a满足您的要求吗?

在Flex中,当Flex控件使用
数据提供程序(例如
列表
数据网格
)实例化元素时,
ItemRenderer
类(或)具有一个
数据
属性当Flex控件使用
数据提供程序
(例如
列表
数据网格
)实例化时,已填充
数据
属性。

如果我理解您的问题

您可以在运行时使用以下语法在任何给定对象上创建新属性:

myObject['newProperty'] = 'somevalue';

我不确定在大多数情况下我会推荐它

如果我理解你的问题

您可以在运行时使用以下语法在任何给定对象上创建新属性:

myObject['newProperty'] = 'somevalue';

我不确定在大多数情况下我会推荐它

如果您的元素不是动态的,您可以创建字典并使用元素作为键,将任何具有属性的对象放在其中:

var extraInfo:Dictionary = new Dictionary();
extraInfo[element1] = { tag : "Quick & dirty" };
// or
extraInfo[element2] = new ElementProperties("More solid approach");

如果元素不是动态的,则可以创建字典并使用元素作为键,将任何具有属性的对象放在其中:

var extraInfo:Dictionary = new Dictionary();
extraInfo[element1] = { tag : "Quick & dirty" };
// or
extraInfo[element2] = new ElementProperties("More solid approach");

我必须+1这个。我也不知道原来的海报是什么;但这听起来很有可能。我必须+1这个。我也不知道原来的海报是什么;但这听起来很有可能。谢谢,这就是我要找的。为什么你不推荐它呢?不推荐,因为1)动态类的getter访问时间较慢,性能较差2)你使用的神奇字符串在可以使用常量时容易出现键入错误3)你在欺骗下一个家伙,他必须维护你的代码,因为你没有使用强类型。如果他们有myObject的实例,IDE将无法自动完成它看不到的内容。@John,因为它违背了使用强类型的目的,并对强类型进行了各种编译器检查,导致运行时错误的可能性更大。如果您需要“关联数组/字典”,这是一回事。但是我不会为了避免创建自定义类而向任何给定对象添加额外属性。谢谢,这就是我要找的。为什么你不推荐它呢?不推荐,因为1)动态类的getter访问时间较慢,性能较差2)你使用的神奇字符串在可以使用常量时容易出现键入错误3)你在欺骗下一个家伙,他必须维护你的代码,因为你没有使用强类型。如果他们有myObject的实例,IDE将无法自动完成它看不到的内容。@John,因为它违背了使用强类型的目的,并对强类型进行了各种编译器检查,导致运行时错误的可能性更大。如果您需要“关联数组/字典”,这是一回事。但是我不会为了避免创建自定义类而向任何给定对象添加额外属性。是的,这也是一个很好的解决方案。谢谢完整性;你可以使用这种方法与任何物体;你不需要使用字典。是的,这也是一个很好的解决方案。谢谢完整性;你可以使用这种方法与任何物体;你不需要使用字典。