Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамический вызов функции 
:(
    Опции темы
szz
Дата 31.10.2005, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Как вызывать функцию по ее имени из стринга? эта функция точно не имеет параметров.
У меня есть функция, например
Код

function my_function(){ trace("hello"); }

И еще одна:
Код

function another_function(){ trace("another hello!"); }


А так же есть функция, которая что-то делает, а в конце должна вызвать одну из вышеперечисленных функций, но название передается как папраметр!
вот она:
Код

function my_caller(funcname){
   // тут я что-то делаю, например алерт выдаю, неважно

   а вот тут нужно вызвать функцию, имя которой передали в funcname!
   funcname может быть и "my_function", и  "another_function" - и вообще любой другой
   функцией, у которой нет параметров и она в _root 
   в яваскрипте я в таком случае пишу eval(funcname+'()'), в Си передаю указатель на функцию,  а что делать в ActionScript?
}




--------------------
PM   Вверх
AlDev
Дата 1.11.2005, 03:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



способ 1:
Код

function my_caller(funcname)
{
    this[funcname]();
}
my_caller('another_function');


способ 2:
Код

function my_caller(funcname)
{
    var f:Function = eval(funcname);
    f();
}
my_caller('my_function');
stop();


если надо передать аргументы:
Код

function my_function()
{
    trace (arguments);
    trace("hello"); 
}

function another_function()
{
    trace (arguments);
    trace("another hello!"); 
}

function my_caller(funcname,args)
{
    var f:Function = eval(funcname);
    f.apply(this,args);
}
my_caller('my_function',[10,20,30]);
stop();

PM MAIL WWW ICQ YIM MSN   Вверх
szz
Дата 1.11.2005, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Ухты!!! Сколько способов!!! smile
Спасибааа!!!!


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы про программирование на ActionScript 1,2 (Flash 8 и более ранние версии) пишите в форуме ActionScript 1,2
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Flash | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.