УильямБрэдберри
20.09.2001, 20:34
var funName=["a","b","trace"]
function a()
{
trace("a")
}
function b()
{
trace("b")
}
function a_b()
{
_root[funname[0]]();
_root[funname[1]]();
_root[funname[2]]();
}
0 и 1 работает, а вот 2 никак :(
запутался я чей-то
gOloVasTicK '~
20.09.2001, 20:37
Дык а трейсить то чего? Ты ж флашу сказал _root.trace :)
УильямБрэдберри
20.09.2001, 20:45
сорри
просто скопировал строки
funname[2]();
но все-рно не работает
хоть как мучаюсь
УильямБрэдберри
20.09.2001, 21:00
все,
просто непонятно чъим методом является трэйс
зато плэй и стоп работает.
а мне тока это и надо
всем пасибо.
ЗЫ: кто до трэйса докопается, тому отдельное спасибо =)
Нужно вызывать так - eval(funName[2])(), тогда должно работатать.
н.р. следующий фрагмент - работает:
foo="trace";
eval(foo)(foo);
:)
сочиNetz
21.09.2001, 02:49
а по-моему дело в том, что трейс требует наличия параметра. Если сделать просто trace() флеш ругнется на тему того, что ф-ция requires exactly one parameter. Здесь параметров не передается.
Однако если сделать _root[funname[2]]('param') то тоже ничего не происходит.
Вывод: глюк реализации. Очередная недоработка объектной модели.
хехе.. однако нет. Если сделать
function a(par){trace(par)} a потом funname[0]('qwer'), выдаст qwer
Темный лес это ООП во флеше. Ну его в баню до выхода шестого :)
........ Да, кстати......
Чтобы вызвать функции более хитрым способом нужно сделать немного не так - а следующим образом:
.........
function a() {
......
};
function b() {
......
};
....
var funNum=[];
funNum[0]=eval("a");
funNum[1]=eval("b");
funNum[2]=eval("trace");
или, например :
funNum[3]=eval("Math.sin"); // или другие функции
тогда можно вызывать фунции так -
funNum[0]();
funNum[1]();
funNum[2](.......);
или н.р.
funNum[2](funNum[3](1)); !!!!!
и всё должно работать!! :)
УильямБрэдберри
21.09.2001, 03:46
Пасиб =)
foo="trace";
eval(foo)("YO");
работает, вот, блин гадство.
ненавижу евалом пользоваться :)
:)
Если ненавидишь пользоваться eval-ом, то можно обойтись и без него..
Пишешь -
foo=trace;
foo("YO");
- тоже работает!! :)
Удачи!
[subway]design
05.12.2001, 18:07
может, кто-то мне объяснит, почему евал() всем так не нравится? Ответ "не модно" не катит...
Мне лично нравится, всегда им пользуюсь.
2[subway]design
ИМХО
Иногда без евала не обойтись :(
А большое их кол-во, работает не оч. быстро :mad:
По ентой причине он мне тоже не нравиться :(
ЗЫ
Хотя eval() :cool: :cool: :cool: :cool: :cool:
[subway]design
06.12.2001, 19:29
понял, спасибо. Но я сейчас обнаружил, что АС не различает размер символов в именах переменных, а я хотел так сделать:
A_x= new Array(0, 8.85, 14.5, 18, 21.2, 22.85, 24.15, 25, 25.8, 26.3, 27.4, 28.75, 30.1, 30.9, 28.5, 26.6, 24.2, 22.6, 21.25, 18.55, 15.35, 9.95, 6.45, 3.8);
A_y= new Array(51.05, 38.4, 29.3, 20.95, 11, 5.65, 0, 9.95, 17.45, 21.75, 29.3, 36.8, 44.6, 51.05, 41.35, 39.2, 37.6, 36.8, 36, 34.9, 34.1, 33.05, 32.5, 32.5);
a_x= new Array(22.7, 18.3, 16.15, 12.25, 8.1, 4.85, 4.05, 4.7, 5.8, 11, 16.4, 21.25, 25.1, 26.75, 25.1, 23.25, 22.3, 21.9, 21.75, 22.3, 23.1, 25, 27.95, 34.4, 40.3, 43.5);
a_y= new Array(32, 31.7, 32.25, 34.95, 38.95, 43.15, 46.65, 47.15, 47.3, 45.15, 41.95, 38.45, 34.95, 33.85, 37.25, 40.45, 42.75, 44.5, 45.95, 47.3, 47.7, 47.95, 47.45, 46.1, 44.9, 44.2);
а он рисует маленькую а
кстати, это большая и маленькая буквы а в массиве для прорисовки, можете пользоваться.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.