Apache flex 小部件之间的通信

Apache flex 小部件之间的通信,apache-flex,actionscript,widget,arcgis,Apache Flex,Actionscript,Widget,Arcgis,我是flex新手,我正在使用flex 4.6、java和sql server作为数据库开发Webmapping应用程序,我只是尝试在Wigdet之间进行通信,我想在widget1中复制我组合框的每个选定项,并在widget2中的textinput中显示它,我只是按照Robert在这里解释的步骤进行操作,但没有成功,我面临的问题是,我无法从第二个小部件调用第一个小部件(textinput,button…)的组件,它们通常带有下划线 在跳跃时你发现了我所做的改变 小部件1 var layoutArr

我是flex新手,我正在使用flex 4.6、java和sql server作为数据库开发Webmapping应用程序,我只是尝试在Wigdet之间进行通信,我想在widget1中复制我组合框的每个选定项,并在widget2中的textinput中显示它,我只是按照Robert在这里解释的步骤进行操作,但没有成功,我面临的问题是,我无法从第二个小部件调用第一个小部件(textinput,button…)的组件,它们通常带有下划线

在跳跃时你发现了我所做的改变

小部件1

var layoutArr:ArrayCollection = new ArrayCollection();
            private function widgetCommunication1():void
            {
                addSharedData("Liste des chapitres", layoutArr); 
            }
小部件2

<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                   xmlns:viewer="com.esri.viewer.*"
                   width="638" height="552" creationComplete="application1_applicationCompleteHandler(event)" 
                   initialize="basewidget1_initializeHandler(event)">

<fx:Script>
        <![CDATA[

                        import com.esri.viewer.AppEvent;
            import mx.events.FlexEvent;
    protected function basewidget1_initializeHandler(event:FlexEvent):void
            {
                ViewerContainer.addEventListener(AppEvent.DATA_PUBLISH, sharedDataUpdated);
            }

 private function sharedDataUpdated(event:AppEvent):void
            {
                var data:Object = event.data;               
                if (data.key == "Liste des chapitres")

                {
                    dplist.selectedIndex = ***IntChap***.text;
                } 
            }   

]]>
    </fx:Script>

<s:DropDownList id="dplist" x="10" y="10" width="282" height="26" labelField="IntituleChap" dataProvider="{RemoteRapportDao.Selection.lastResult}" change="dplist_changeHandler(event)" ></s:DropDownList>

IntChap(粗体和斜体)是widget1中的文本输入,我在小部件2中给它加了下划线,即使我进行了此通信 任何人都能告诉我我在搞什么?? 任何帮助或代码将不胜感激


上面的链接中有一个示例,只需按照所有步骤操作,效果非常好;)

你能展示包含小部件1和小部件2的类吗?这应该是一个简单的修复,但它涉及到对容器类的更改。非常感谢Brian的回复,但它现在工作得很好,我找到了另一种方法;)在这种情况下,我建议你对你的问题给出一个答案,这样可以帮助下一个遇到类似问题的人。嗨,Saadia,问题解决了吗?有没有可能分享你的经验,我还是无法让它发挥作用。您在下面的答案中使用了示例代码吗?它使用flex viewer 2.5,但我使用的是3.6,因此它也不起作用。非常感谢。这是user30643Hi Saadia的答案,很幸运你能看到我的评论。我已经尝试了上述链接中的代码。但我使用的是FlexAPI 3.6(示例使用2.5)。在3.6中,当我使用this.widgettributes时,它将导致eror。您使用哪个版本的arcgis flex api版本?非常感谢。嗨,Saadia,我已经根据示例代码更新了我的代码,但仍然不起作用。我可以和您一起检查传递给其他小部件的参数类型吗?我只想将一个字符串传递给另一个小部件,但运气不好。是否可以共享共享数据的代码?非常感谢你!