我有一个带有TextInput的List作为项呈示器。我想获取在TextInput中输入的值(形成TextInputItemRenderer)并将其传递给主应用程序以进行一些检查(在点击输入textInput时 - 请参阅下面的代码)。
我知道我们可以通过调度事件来完成,但我仍然不明白如何将一个变量从ItemRenderer传递到主应用程序。
帮助。
由于
<?xml version="1.0" encoding="utf-8"?>
<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" xmlns:components="components.*" width="100%"
>
<s:layout>
<s:HorizontalLayout/>
</s:layout>
<fx:Script>
<![CDATA[
override public function set data( value:Object ) : void {
super.data = value;
}
protected function myTextInput_enterHandler(event:FlexEvent):void
{
trace(myTextInput.text);
What Next??
}
]]>
</fx:Script>
<components:ClearableTextInput text="{data.label}" id="myTextInput" enter="myTextInput_enterHandler(event)"/>
</s:ItemRenderer>
答案 0 :(得分:0)
我不确定我是否正确地提出了您的问题,但这有帮助吗?
http://www.ajibanda.blogspot.com/2011/02/changing-currentstate-of-main-and.html
答案 1 :(得分:0)
我认为你可以向后做,而不是尝试从MainApp访问itemRenderer。请遵循以下两种解决方案之一:
在itemRenderer中,将稍后要检查的值分配给MainApp上的公共全局变量。限制是你只能在MainApp上检查它,而不是任何esle(其他itemRenderer,组件,模块等)
使用EvenBus将值放入全局容器。例如,在AppUtils中创建一个静态eventBus实例。在itemRenderer中,AppUtils.eventBus.dispatch()每次更改值时附加值的事件。然后再次使用AppUtils.eventBus addEventListener()来检索值并检查您想要的位置。适用于EventBus的Google AS3Commons。