Flex4中ItemRenderer组件如何向主Application中传递数据?设想用分派事件的方法,望大师指教~
我想实现的功能是,在DataGroup中用ItemRenderer展示人物简要信息(包括头像和姓名,其DataProvider为一个名为membersData的Array...
我想实现的功能是,在DataGroup中用ItemRenderer展示人物简要信息(包括头像和姓名,其DataProvider为一个名为membersData的ArrayCollection对象,其渲染器为一个名为MembersItemRenderer.mxml的外部ItemRenderer组件),当点击其中任一个人物,则弹出一个展示了该人物详细信息的Panel。设想是使用自定义事件类的方法,但不知从ItemRenderer中向主Application中传递数据具体该如何实现。下面先贴出代码,请大神们看看。
主Application中:
import events.ShowMembersInfo; 我的自定义事件类
private var membersData:ArrayCollection;
private function initMembersInfo():void
{
membersDisplay.addEventListener("showMembersInfo",showMembersInfo_EventHandler);
}
public function showMembersInfo_EventHandler(event:Event):void
{
MembersInfoPanel.visible = true;
}
<s:DataGroup id="membersDisplay" x="400" y="250"
dataProvider="{membersData}"
itemRenderer="Components.MembersItemRenderer"
creationComplete="initMembersInfo()">
</s:DataGroup>
MembersItemRenderer.mxml文件中:
<fx:Metadata>
[Event(name="showMembersInfo", type="events.ShowMembersInfo")]
</fx:Metadata>
<fx:Script>
<![CDATA[
import events.ShowMembersInfo;
protected function bordercontainer1_clickHandler(Event:MouseEvent):void
{
var eventObject:ShowMembersInfo = new ShowMembersInfo("showMembersInfo",***某一数据***);
dispatchEvent(eventObject);
}
]]>
</fx:Script>
下面的BorderContainer块中包含了人物的头像和姓名,以及click="bordercontainer1_clickHandler(event)"
自定义事件类ShowMembersInfo.as文件中: 下面很囧,请宽容。。。
public class ShowMembersInfo extends Event
{
public var ***某一数据***;
public function ShowMembersInfo(type:String, ***某一数据***)
{
super(type);
this.某一数据 = 某一数据;
}
}
我主要是不了解从ItemRenderer中向主Application中传递数据用的什么方法,数据是什么类型,所以自定义事件中也不知道如何定义,只是凭直觉应由***传递,不会写就先空着了......
刚刚开始学Flex,很多知识都一知半解,自学能力也不强,希望大师们指导一下,最好解答得详细些,帮我完善代码,或者有什么其他更简便的方法也欢迎提供,感激不尽~~~ 展开
主Application中:
import events.ShowMembersInfo; 我的自定义事件类
private var membersData:ArrayCollection;
private function initMembersInfo():void
{
membersDisplay.addEventListener("showMembersInfo",showMembersInfo_EventHandler);
}
public function showMembersInfo_EventHandler(event:Event):void
{
MembersInfoPanel.visible = true;
}
<s:DataGroup id="membersDisplay" x="400" y="250"
dataProvider="{membersData}"
itemRenderer="Components.MembersItemRenderer"
creationComplete="initMembersInfo()">
</s:DataGroup>
MembersItemRenderer.mxml文件中:
<fx:Metadata>
[Event(name="showMembersInfo", type="events.ShowMembersInfo")]
</fx:Metadata>
<fx:Script>
<![CDATA[
import events.ShowMembersInfo;
protected function bordercontainer1_clickHandler(Event:MouseEvent):void
{
var eventObject:ShowMembersInfo = new ShowMembersInfo("showMembersInfo",***某一数据***);
dispatchEvent(eventObject);
}
]]>
</fx:Script>
下面的BorderContainer块中包含了人物的头像和姓名,以及click="bordercontainer1_clickHandler(event)"
自定义事件类ShowMembersInfo.as文件中: 下面很囧,请宽容。。。
public class ShowMembersInfo extends Event
{
public var ***某一数据***;
public function ShowMembersInfo(type:String, ***某一数据***)
{
super(type);
this.某一数据 = 某一数据;
}
}
我主要是不了解从ItemRenderer中向主Application中传递数据用的什么方法,数据是什么类型,所以自定义事件中也不知道如何定义,只是凭直觉应由***传递,不会写就先空着了......
刚刚开始学Flex,很多知识都一知半解,自学能力也不强,希望大师们指导一下,最好解答得详细些,帮我完善代码,或者有什么其他更简便的方法也欢迎提供,感激不尽~~~ 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询