Форум 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)
-   -   Изменение typeof (http://www.flasher.ru/forum/showthread.php?t=77189)

Futs 20.03.2006 12:46

Изменение typeof
 
Имеется массив с именами функций, они являются стрингами
Код:

var a:Function = new Function;
trace(a instanceof Function);//true
a=arrFunc[0];
trace(a instanceof Function);//false

как же тогда можно вызвать функцию из массива?

Samodelkin 20.03.2006 12:52

а если местами поменять arrFunc[0] = a;

Futs 20.03.2006 13:01

трейсит true, а как же ее вызвать?

ir73 20.03.2006 13:10

лично я не увидел в примере массива с именами функций

Samodelkin 20.03.2006 13:13

делаешь еще переменную типа var AbrFunc = arrFunc[0] и вызываешь AbrFunc() :)

__i 20.03.2006 13:24

arrFunc[0]()

Futs 20.03.2006 13:25

Цитата:

Сообщение от ir73
лично я не увидел в примере массива с именами функций

Специально для тебя
Код:

var arrFunc:Array = new Array("func1", "func2");
2Samodelkin так тоже не работает

Futs 20.03.2006 13:31

Дабы не было недопонимания привожу весь код
Код:

function  func1() {
        trace("первая функция")
}
function  func2() {
        trace("вторая функция")
}
var arrFunc:Array = new Array("func1", "func2");
var a:Function = new Function;
trace(a instanceof Function);
arrFunc[0]=a;
trace(a instanceof Function);
var AbrFunc = arrFunc[0];
AbrFunc();


Samodelkin 20.03.2006 13:41

function func1() {
trace("первая функция")
}
function func2() {
trace("вторая функция")
}
var arrFunc:Array = new Array(func1, func2);
var AbrFunc = arrFunc[0];
AbrFunc()

__i 20.03.2006 13:42

Обарываю твой код:
Код:

function  func1() {
        trace("первая функция")
}
function  func2() {
        trace("вторая функция")
}
var arrFunc:Array = new Array("func1", "func2");
var a:Function = new Function;
trace(a instanceof Function);
arrFunc[0]=a; // <- и че с чего ты решил что а у тебя функция? вернее она то функция но нужно выяснить какая
trace(a instanceof Function); // <- таже байда, ты сдесь а не менял
var AbrFunc = arrFunc[0]; // ну и что? поменял ты этот arrFunc[0] присвоил ей не понятную функцию и что дальше?...
AbrFunc();//... оно у тя никогда ниче не протрейсит

2 варианта когда оно будет работать:
Код:

function  func1() {
        trace("первая функция")
}
function  func2() {
        trace("вторая функция")
}
var arrFunc:Array = new Array(func1, func2); // убрали кавычки
arrFunc[0]();

ili
Код:

function  func1() {
        trace("первая функция")
}
function  func2() {
        trace("вторая функция")
}
var arrFunc:Array = new Array("func1", "func2"); // кавычки оставили
this[arrFunc[0]](); //но поменяли способ вызова


Futs 20.03.2006 13:50

Спасибо, как это я протупил?


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

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