Рад, что кто-то нашел мой пост в Adobe Cookbooks полезным, и вы не первый, у кого возникли проблемы с получением данных из приложения в информационном окне.Думаю, пришло время обновить статью.
В любом случае, чтобы ответить на ваш вопрос, компонент GoogleMapsInfoWindow определяется вами, поэтому его можно легко изменить, чтобы иметь переменные для хранения данных, которые вы хотите отобразить.
В приведенном выше примере вы можете добавить коллекцию массивов в качестве общедоступной привязываемой переменной и связать эту коллекцию с сеткой данных.Затем при создании информационного окна в « onMarkerClick » вы задаете коллекцию (и любые другие необходимые вам переменные) под комментарием « //», если необходимо , для обновления любых данных, отображаемых в информационном окне..
Обновлен файл mxml компонента Google Info Window:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations>
<s:ArrayCollection id="dataProvider"/>
<!-- other variables go here -->
</fx:Declarations>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Label text="Your info window"
fontSize="20"
fontWeight="bold"
textAlign="center"/>
<mx:DataGrid height="100%"
width="100%" dataProvider="{dataProvider}">
<mx:columns>
<mx:DataGridColumn headerText="ID" dataField="id"/>
<mx:DataGridColumn headerText="Name" dataField="name"/>
<mx:DataGridColumn headerText="Description" dataField="desc"/>
</mx:columns>
</mx:DataGrid>
</s:Group>
Обновлена функция onMarkerClick:
public function onMarkerClick(event:MapMouseEvent):void
{
// fetch clicked marker
var marker:Marker = event.target as Marker;
// update any data displayed in info window if needed
infoWindow.dataProvider = new Arraycollection( [ {id:1, name:"one", desc: "test one"}, {id:2, name:"two", desc: "test two"}] );
// eg/ inforWindow.title = "title goes here";
// eg/ inforWindow.imageURL = "http://url.com/to/some/image.jpg";
// display info window
marker.openInfoWindow(new InfoWindowOptions({width: infoWindow.width, height: infoWindow.height, drawDefaultFrame: true, customContent: infoWindow}));
}