Есть несколько способов сделать это - если вам нужно сделать это, используя метку или значение, вы можете выполнить цикл через массив array следующим образом:
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
var searchTerm:String = "EST";
var result:* = null;
for each(var zone:* in timeZonesArray)
{
if(searchTerm == zone.ddlData)
{
result = zone;
break;
}
}
ddlTimezones.selectedItem = result;
}
Однако, если вы сохраняете ссылку на часовые пояса по отдельности или получаете их из какой-либо другой части приложения, вы можете сделать это более аккуратно:
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
var EST:Object = {ddlLabel:"Eastern Time", ddlData:"EST"};
var CST:Object = {ddlLabel:"Central Time", ddlData:"CST"};
var MST:Object = {ddlLabel:"Mountain Time", ddlData:"MST"};
var PST:Object = {ddlLabel:"Pacific Time", ddlData:"PST"};
[Bindable]
protected var timezonesArray:ArrayCollection = new ArrayCollection([
EST,
CST,
MST,
PST
]);
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
ddlTimezones.selectedItem = EST;
}
Таким образом, вам не нужно беспокоиться о том, чтобы опрашивать каждый объект в списке, потому что вы остаетесь на уровне целых объектов, а не проникаете в них. Это также упрощает процесс замены списка объектов стиля JSON определением класса, если вам требуется хранить более сложную информацию о часовых поясах.