Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   [FMX] Object-oriented programming (http://www.flasher.ru/forum/showthread.php?t=36535)

WD` 05.09.2002 21:42

2 Nox Noctis:
 
огром пасиба:)


т.е. то, что наход между скобками выполняется только при создании экземпляра? (так кажется называется:))
function Kvdr()
{
trace("OBJ")
}

SphinX 05.09.2002 21:53

k = new Kvdr(); создаёт экземпляр класса Kvdr и конструктор выполняется только один раз когда надо экземпляр сконструировать ;)
у тебя плохой стиль, я бы конструктор отделил, см. выше

WD` 06.09.2002 00:40

Цитата:

Оригинал написал(а) SphinX
k = new Kvdr(); создаёт экземпляр класса Kvdr и конструктор выполняется только один раз когда надо экземпляр сконструировать ;)


эт я понял уже:)
Цитата:

у тебя плохой стиль, я бы конструктор отделил, см. выше
куда его еще отделить?:)
если честно, это первое подобное извращение написанное мною:) (ессно упрощенное для форума:))

WD` 06.09.2002 02:05

Хэлп-2
 
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);

Nox Noctis 06.09.2002 20:48

все просто :)
у тебя нет глобальной переменной 'n'...
то есть выражение
eval("k"+(n+1)).go(1,2);
интерпретируется как eval("k"+1).go(1,2); (вместо 'n' - пустое место)
...получаем рефлексивное замыкание :) то есть бесконечную рекурсию...

кстати,
obj=eval("kv"+n);
создает переменную 'obj' в том контейнере, где находится сама функция Kvdr... оно тебе надо ? :)


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

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