![]() |
|
||||||||||
|
|||||
|
огром пасиба
![]() т.е. то, что наход между скобками выполняется только при создании экземпляра? (так кажется называется )function Kvdr() { trace("OBJ") } |
|
|||||
|
k = new Kvdr(); создаёт экземпляр класса Kvdr и конструктор выполняется только один раз когда надо экземпляр сконструировать
![]() у тебя плохой стиль, я бы конструктор отделил, см. выше
__________________
flash 'em all |
|
|||||
|
Цитата:
эт я понял уже ![]() Цитата:
![]() если честно, это первое подобное извращение написанное мною (ессно упрощенное для форума ) |
|
|||||
|
function Kvdr(n)
{ trace("kv."+n); attachMovie("kv","kv"+n,n); } Kvdr.prototype.go=function(x,y) { obj=eval("kv"+n); eval("k"+(n+1)).go(1,2); // хотел обратится к след. объекту - флэш плюется на слишком длинный скрипт.. как сделать такое обращение? } k1=new Kvdr(1); k2=new Kvdr(2); k1.go(1,1); Последний раз редактировалось WD`; 06.09.2002 в 02:07. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
все просто :)
у тебя нет глобальной переменной 'n'... то есть выражение eval("k"+(n+1)).go(1,2); интерпретируется как eval("k"+1).go(1,2); (вместо 'n' - пустое место) ...получаем рефлексивное замыкание :) то есть бесконечную рекурсию... кстати, obj=eval("kv"+n); создает переменную 'obj' в том контейнере, где находится сама функция Kvdr... оно тебе надо ? :) |
![]() |
Часовой пояс GMT +4, время: 00:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|