我在 flex 中创建了一个项目渲染器火花列表,但我想在列表中添加新行时调用一个函数,而不是之后。我在渲染列表中得到一个数据对象,我得到要在列表中显示的数据类型,即。无论是文字还是图片。因此,在列表中添加新数据时,我希望在渲染列表中调用一个函数,该函数检查接收到的数据类型,然后它将创建并添加图像元素或文本元素。所以主要问题是我如何获得一个在添加数据时调用的函数。我已经尝试过像 datachange 和添加这样的事件,但是当我们滚动列表时它们会一遍又一遍地调用该函数,但我希望该函数仅在添加数据时调用一次,而不是在病房之后调用。下面是渲染器列表代码,也许你会更好地了解我想要做什么:
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true" dataChange="test_add()">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
public function test_add() : void {
Alert.show("type="+data.msg_type);
if(data.msg_type=="text"){
//code to create and add new text element to list_row//
}
if(data.msg_type=="image"){
//code to create and add new image element to list_row//
}
}
]]>
</fx:Script>
<s:Group id="list_row" width="100%" verticalAlign="middle" verticalCenter="0">
</s:Group>
</s:ItemRenderer>
任何帮助将不胜感激。谢谢