PDA

Просмотр полной версии : Разные аргументы функций в циклах


Что такое хорошо?
04.09.2006, 20:31
Вызываю функции с различными аргументами, и хочу укатать их в цикле.
Но нулевой аргумент функций у меня всякий раз иной.

funk_1(2, needBlock[0][1], title_myXML[nb][1]);
funk_2(4, needBlock[0][1], title_myXML[nb][2]);
funk_3(1, needBlock[0][1], title_myXML[nb][3]);
funk_4(3, needBlock[0][1], title_myXML[nb][4]);

Подскажите - как такое можно проделать в цикле?

Nirth
04.09.2006, 20:36
var methods:Array = new Array(func_1,func_2,func_3,func_4);
var indexes :Array = new Array(2,4,1,3);

for ( var i:Number = 0 ; i < methods.length ; i ++ )
{
methods[i](indexes[i],needBlock[0][1], title_myXML[nb][i+1]);
}

напомню что в AS не принято использовать _ в именах обычных свойств и методов, они используются в константах и иногда в приватных методах.

Что такое хорошо?
04.09.2006, 21:56
Да. Это ОНО :) Спасибо.
и тут же еще о моих "непонятках" с аргументами в циклах.

Есть у меня 4 функции funk_Num.
При вызове каждая из них грузит XML и определенный мувик в назначеный блок.
По своему строению эти функции отличаются только аргументами, которые принимают. Аргументы помещены в массив. При нажатии на кнопку, вызываются 4 функции, которым передаются аргументы и все работает.

_global.funk_1 = function(nf, nd, nn) {
//trace("Вызвана funk_1");
}
_global.funk_2 = function(nf, nd, nn) {
//trace("Вызвана funk_2");
}
// и тд

Но есть проблема.
Код о-о-о-очень большой длины получается.
Функции прописаны у меня 4 раза (ну т.е. с тупой настырностью осла :umnik2:)
Ступор в том, что на одно нажатие, стартует сразу 4 функции и у каждой по три аргумента.
Не могу придумать как это все правильно сделать.

silin
05.09.2006, 01:06
4ре раза перечтал пост, так и не понял почему 'Код о-о-о-очень большой длины получается'
автор, об'ясни: зачем ты 4 раза пишешь код, котрый еще сразу 4 функции вызывает
зы: можно проще: в чем трабл?

Nirth
05.09.2006, 11:24
согласен с Силином, ниче не понятно, хотя видно что старался.

Что такое хорошо?
05.09.2006, 16:52
:)
Это массив с аргументами
//----------------A--------B-----------C
_global.arg = [[["1", 1, 2, 3, 4], 2, 4, 1, 3], [["2", 2, 6, 4, 5], 2, 1, 3, 4]];
//А - имя подгружаемого документа
//В - номер вызываемой функции
//С - номер блока, в который нужно грузить

По нажатию на кнопки запускаются функции В.
Если я помещу эти функции в цикл, то как же их тогда активировать по событию?
В том смысле, что поместить их еще в одну функцию и вызывать ее. Так что ли?
Тогда как передавать агрументы?

ЗЫ.
Ну вот. Кажется описал все мои страхи :wacko: