Форум 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=79490)

undeddy 09.05.2006 16:42

Ссылка на объект
 
Есть, например, метод объекта Math Math.sin(some_number). В некоторой функции есть параметр func, значением которого является соответственно строка "sin", "cos" или "tan". Необходимо, чтобы в объекте Math вызывался метод, соответсвующий полученному параметру, т.е. или метод Math.sin(), или Math.cos(), или Math.tan(). А как это организовать в минимальном объеме скрипта не понимаю.

Nirth 09.05.2006 16:53

Не совсем понял суть вопроса вообще можно сделать так
Код:

function mySin(func:Function):Void {
    func();
}

можно через строку как ты сказал
Код:

function mySin(func:String):Void {
    Math[func]();
    // var method:Function = Math[func]
    // method();
}

А вообще если задашь конкретней вопрос можнобудет конкретней ответить.

undeddy 09.05.2006 17:15

Если конкретнее.
Есть функция
Код:

function math(func){
var  num = 1;
var rez = Math.тригоном.функция(num)

}

При определенном событии вызывается эта функция, параметром которой служит тригономет.функция в строковм выражении (например, "sin"). Ну и вот: хотелось бы, чтобы вычислялось значение переменной rez. А как внедрить параметр в ссылку на объект не понимаю.

Nirth 09.05.2006 17:20

Посмотрев на пример выше тоже не понимаешь?
там это есть.

undeddy 09.05.2006 17:24

Все понял. Благодарю.

Nirth 09.05.2006 17:32

подумал и решил
я бы наверное сделал так
Код:

function (method:String):Number {
    if(method = "sin" || method="cos" || method="tan") {
        return Math[method](1);
    }else{
        //если накосячил
        trace("invalid param");
        return Math.sin(1);//дефолтный вариант
    }
}



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

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