Actionscript 3 Flex 4.x手风琴项目子项在actionscript中未知
我在Flex中有一个手风琴组件,它有两个孩子, 在加载页面时,我想使用actionscript将第一个子项中textfield的textvalue赋予第二个子项中的textfield,但失败了 注意:当我单击secode子项并返回以传递来自第一个子项的textvalue时,操作成功Actionscript 3 Flex 4.x手风琴项目子项在actionscript中未知,actionscript-3,apache-flex,accordion,Actionscript 3,Apache Flex,Accordion,我在Flex中有一个手风琴组件,它有两个孩子, 在加载页面时,我想使用actionscript将第一个子项中textfield的textvalue赋予第二个子项中的textfield,但失败了 注意:当我单击secode子项并返回以传递来自第一个子项的textvalue时,操作成功 <mx:HBox width="100%" height="310" horizontalAlign="center"> &
<mx:HBox width="100%" height="310" horizontalAlign="center">
<mx:Accordion id="accordion1" width="100%" height="310" historyManagementEnabled="true">
<!-- child 1--><mx:VBox id="theme_resultat" width="95%" height="95%"
label="Résultat" horizontalAlign="center"
verticalAlign="middle">
<s:HGroup left="0" right="0" bottom="0" width="98%"
horizontalAlign="right">
<s:TextInput id="doc"/>
<mx:Button id="btnAdd" label="Add"
click="add_text(event)"
icon="@Embed('assets/images/add.png')"
paddingLeft="3" paddingRight="3"/>
</s:HGroup>
</mx:VBox>
<!-- child 2--><mx:VBox id="theme_detail" width="95%" height="95%" label="Détail"
verticalAlign="middle">
<mx:VBox width="100%" height="150" horizontalAlign="center">
<s:HGroup>
<mx:FormItem label="Titre:" paddingLeft="5">
<mx:TextInput id="doc_titre"/>
</mx:FormItem>
</s:HGroup>
</mx:VBox>
</mx:VBox>
</mx:Accordion>
</mx:HBox>
单击“添加”时,我移动到第二个子项,但(mx:TextInput id=“doc_titre”)的值不为(s:TextInput id=“doc”/
第二次我返回到子项1并单击添加,然后移动到第二个子项,在(mx:TextInput id=“doc_titre”)中找到(s:TextInput id=“doc”)的值。到底发生了什么?我认为您的问题可能是因为第二个子视图上的组件在该视图打开之前没有创建,对此有很多解决方案,您可以在第二个视图的创建完成中编写一些代码,以加载正确的值,可以使用数据绑定将文本输入绑定到同一字符串,也可以尝试将creationPolicy设置为all。 我的回答是基于我的上述假设,所以如果我错了,请提供更多细节 选中此项并尝试将creationPolicy设置为all,然后告知问题是否已解决改用createDefferedContent():
for(变量i:int=0;i
此方法在背景中创建子对象及其组件。不要像我那样使用creationPolicy,因为这会导致与内存相关的问题。您是否收到任何错误/异常/警告?不,我只错过了creationPolicy=all,谢谢
protected function add_text(event:MouseEvent):void
{
accordion1.selectedIndex=1;
doc_titre.text = doc.text;
}
}
for (var i:int = 0; i < accordion.numChildren; i++)
{
(accordion.getElementAt(i) as NavigatorContent).createDeferredContent();
}