flex组件传值

我现在有俩个component,具体结构是:-MainApp-component1-component2component1里面有个datagrid,component2... 我现在有俩个component,具体结构是:
-MainApp
-component1
-component2
component1 里面有个datagrid, component2里有个lable,
希望点击datagrid的column时选定的column index可以在component2的lable上显示
修正一下,结构是:
-MainApp
-component1
-component2
-component3
从2传到3, 我试了1楼的方法不行啊,即使在MainApp里也不行,说是access of undefined property
展开
 我来答
vim888
2010-03-31 · TA获得超过257个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:333万
展开全部
用事件来解决,我这里分三个文件:Main.mxml、ComponentA.mxml、ComponentB.mxml内容分别是:

Main.mxml文件
=======================
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init();" xmlns:local="*">
<mx:Script>
<![CDATA[
import mx.events.ListEvent;
internal function init():void{
comA.addEventListener(ListEvent.ITEM_CLICK,componentA_itemClick);
}
internal function componentA_itemClick(evt:ListEvent):void{
comB.text=evt.columnIndex.toString();
}
]]>
</mx:Script>
<local:ComponentA id="comA" width="100%" height="100%" />
<local:ComponentB id="comB" width="100%" height="30" />
</mx:Application>

ComponentA.mxml文件
============================
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
import mx.events.ListEvent;
private function dg_itemClick(evt:ListEvent):void{
//转发此事件
this.dispatchEvent(evt);
}
]]>
</mx:Script>
<mx:DataGrid width="100%" height="100%" itemClick="dg_itemClick(event);">
<mx:columns>
<mx:DataGridColumn headerText="测试1" dataField="@c1" />
<mx:DataGridColumn headerText="测试2" dataField="@c2" />
</mx:columns>
<mx:dataProvider>
<mx:XMLList xmlns="">
<item c1="aaaa" c2="aaaaa" />
<item c1="bbbb" c2="bbbbb" />
</mx:XMLList>
</mx:dataProvider>
</mx:DataGrid>
</mx:VBox>

componentB.mxml文件
==========================
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
public function set text(value:String):void{
lab.text=value;
}
]]>
</mx:Script>
<mx:Label id="lab" />
</mx:HBox>
百度网友451206a
2010-03-30 · TA获得超过1815个赞
知道小有建树答主
回答量:391
采纳率:0%
帮助的人:467万
展开全部
重新来一遍:
1. component2
里加个属性
public funciton get columnIndex() : int {
return datagrid.xxxxx; // 取到datagrid 当前选择的列;
}

2. component1
也加个属性
public funciton get columnIndex() : int {
return component2.columnIndex; // 返回2里上边做的属性
}

3. component3
加上数据绑定
<label text="{component1.columnIndex}"/>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式