Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Указатель на функцию (http://www.flasher.ru/forum/showthread.php?t=41578)

Stary 06.01.2003 18:13

Указатель на функцию
 
Привет всем.

Задача такая - имеется указатель на функцию (текстовая переменная, в которой хранится имя функции - ну к примеру MyVariable="MyFunction()"). Теперь нужно взять эту переменную и вызвать функцию, на которую она указывает (то есть MyFunction() ).

Аналог - вызов переменной по указателю делается с помощью eval(MyVariable). А тут никак не могу подобрать синтаксис, чтобы срабатывало.

Спасибо.

DeliMIter 06.01.2003 18:33

Код:

functionName = "blood";
this[functionName]();

function blood() {
  trace("Lots of BLOOD!!!");
}


Stary 06.01.2003 18:40

Спасибо. Да, все получается. Правда, я хотел хранить в указателе и аргументы, но это не проблема, конечно. Придется их приклеивать отдельно.

Nox Noctis 06.01.2003 18:42

можно и
eval(name)();

...но так, как написал делимитер - лучше

а если хочется извратиться с аргументами - можно можно строковыми функциями все расковырять...
только зачем - не понимаю... это получается что ты парсишь строку ради того чтобы вызвать функцию...

Stary 06.01.2003 18:52

Nox Noctis, пожалуй так, как ты предлагаешь удобно делать, когда путь полностью хранится в указателе. Я был уверен, что пробовал этот вариант и безуспешно, но оказалось, что не догадался :)

Насчет аргументов - задача была такая - один мувик-прелоадер вызывается нужное число раз (с помощью аттача). При этом он осуществляет индикацию загрузки разных типов данных (если быть точнее - мувиков и xml-объектов). Каждый раз при вызове управляющая функция передает прелоадеру ряд аргументов (имя объекта, тип данных для текстовых сообщений и т. д.), в том числе - указатель на функцию с перечнем аргументов, которую надо запустить по окончанию загрузки. Если не парсить строку, то эти аргументы нужно передавать отдельно. Дело в том, что я еще не знаю - сколько и какие будут эти функции и сколько аргументов будет у каждой.

Nox Noctis 06.01.2003 19:18

если ты пишешь в МХ, то из любой функции ты можешь получить массив переданных ей аргументов при помощи указателя arguments...
так что количество аргументов - не проблема, главное описать что с этими аргументами делать...

Stary 06.01.2003 20:09

Действительно. Об этом я не подумал как-то. А что, в пятом это не работает?

DeliMIter 06.01.2003 20:34

Не очень :D

[subway]design 06.01.2003 22:14

arguments в пятерке прекрасно работают.

DeliMIter 06.01.2003 22:57

Андокументед полный :cool:


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

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