Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 3 > комбобокс выбрать строку незная её selectedIndex


Автор: lighto 30.3.2010, 11:58
В комбобоксе есть несколько строк
Как мне прокрутить комбобокс до заданной строки?

Т.е. к примеру если мне надо прокрутить комбо до 3-й позиции мне надо сделать так
combobox1.selectedIndex=2;

а если к примеру я не имею этого числа позиции но я знаю что в списке 
присутствует слово Москва а какой по счету она стоит в списке мне неизвестно??

Автор: bars80080 30.3.2010, 14:01
тогда придётся прокручивать цикл и сравнивать значение содержимого option с заданным словом, попутно считая, какой индекс. и когда найдётся, то опять .selectedIndex = ...

Автор: lighto 30.3.2010, 14:52
ДА я сделал вот так вот 

Код

private function Dd():void
{    
for(var i=0;i<nositel.length;i++) 
{
if (nositel[i].name=="Москва")
{    
combobox1.selectedIndex=i;
}
else{}}

 но я хател бы одной строкой ... неподскажете как так сделать должно же быть....

Автор: bars80080 30.3.2010, 20:00
а зачем одной строкой? что от этого улучшится?

посоветовал бы только добавить break, чтобы не крутилось лишний раз

Код

private function Dd():void {
    var c = nositel.length;
    for(var i = 0; i < c; i++) {
        if(nositel[i].name == "Москва") { combobox1.selectedIndex = i; break; }
    }
}

Автор: lighto 31.3.2010, 06:23
Цитата(bars80080 @ 30.3.2010,  20:00)
а зачем одной строкой? что от этого улучшится?

посоветовал бы только добавить break, чтобы не крутилось лишний раз
[/code]

как зачем? толи писать одну строчку для получения айдишника этой записи толи пускать цикл)))) не наете есть такое? а на счет брейка добавлю спасибо)

Автор: bars80080 31.3.2010, 11:41
Цитата(lighto @  31.3.2010,  06:23 Найти цитируемый пост)
толи писать одну строчку для получения айдишника этой записи толи пускать цикл

э нет, у action script очень маленький объём встроенных функций, все остальные пишутся на базе существующих, на том же action script. поэтому не важно, написано это разработчиками или пользователем

поэтому всё сводится к абстрактности кода и вынесении функции в отдельный метод

Код

privat function Dd(cbox, opt, sel):void {
    var c = cbox.length;
    for(var i = 0; i < c; i++) {
        if(opt[i].name == sel) { cbox.selectedIndex = i; break; }
    }
}

// вызов в одну строчку
Dd(combobox1, nositel, "Москва");
вот вам и вызов в одну строку

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)