Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как можно вызвать их (Функции) одна за другой (http://www.flasher.ru/forum/showthread.php?t=87832)

asb_0 12.11.2006 19:10

как можно вызвать их (Функции) одна за другой
 
имеется массив в котором хранятся - а) названия функций б) их параметры
как можно вызвать их (Функции) одна за другой при этом параметры типа таких -(199,199,222)
пробовал eval но что вписывать в передаваемые функции массив то возвращает строку....
я пытался так
Код:

eval(cod_Array[def][0])(cod_Array[def][1]);
что подскажете?

iNils 12.11.2006 19:21

Для оформления своего кода, надо использовать теги [code][/code].

BigDan 12.11.2006 22:53

Тебе на помощь прийдет класс Function.
И метод
Код:

Fucntion.call(.......);

wvxvw 12.11.2006 23:04

а почему нужно добавлять название функции в массив, а не ее саму? Было бы проще жить.
Код:

function a(){
trace("A");
}
function b(){
trace("B");
}
var func_arr:Array = [];
func_arr.push(a);
func_arr.push(b);
func_arr[0]();
func_arr[1]();


asb_0 13.11.2006 12:48

а как передавать ее параметры тогда?

etc 13.11.2006 13:29

func_arr[0](param1, param2, …);

Бармалей 13.11.2006 14:02

Странно. Я почему-то пришел к выводу при проектировании класса подобного конвейеру Потапенко, что использование конструкций func_arr[1]() неприменимо и нужно пользоваться call() или apply(). Попытаюсь вечером разобраться почему я так решил.

etc 13.11.2006 14:08

Не, ну можно call или apply, если хотите. Только зачем, если не нужно менять область видимости…

Код:

a = function() {…}
a — ссылка на function. Вызов a() вас же ничем не смущает? Если угодно, a = func_arr[i]; a(param1, param2, …);

asb_0 13.11.2006 16:08

если параметры одной строкой передаются и хранятся то разобрать тоько apply() получилось , а func_arr[0](param1, param2, …); подходит если параметры не динамические

etc 13.11.2006 16:11

Ну это само собой.


Часовой пояс GMT +4, время: 07:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.