![]() |
|
||||||||||
|
|||||
|
у меня есть кусок кода:
z = new Object(); z.addProperty(p); z_1 = new Object(z); z_1.p = 100; z_2 = new Object(z); z_2.p = 200; trace(z_1.p); создаю обьект z у него есть свойсво p.Далее от Z создаю 2 дочерних обьекта с такими-же свойствами. по идеи в окошке должно выскочить 100 т.к. у обьекта z_1 есть свойсво p и оно припавнивается именно 100 однако выскакивает почему-то 200. Help
__________________
Все что не делается - все к лучшему Все что к лучшему - то не делается |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
1.
сделай trace(z.addProperty(p)); и убедись что свойство объекта z не создается. (в аутпуте получаем false) — читай в хэлпе синтаксис и способ использования метода addProperty :) ты уверен что тебе вообще нужно геттер-сеттер свойство ? 2. запусти одельный мувик в котором будет только этот код и ничего больше, нажми ctrl+alt+V и понаблюдай следующее: Variable _level0.z = [object #1, class 'Object'] {
p:200
}
Variable _level0.z_1 = [object #1, class 'Object']
Variable _level0.z_2 = [object #1, class 'Object']
— читай в хэлпе что должно быть параметром конструктора new Object 3. ты видимо собирался создать класс... есть такое подозрение :) тогда для начала тебе нужен конструктор // конструктор класса
z_class = function (num) {
// здесь описываешь свойства и методы
if (num) {
/* если передан параметр, то создаем приватное свойство
(если нет - то при обращении получим наследованное от прототипа)*/
this.addProperty("p", this.getP, this.setP);
this.p = num;
}
};
// предположим, что геттер-сеттер тебе правда нужен
/*функция получения p*/
z_class.prototype.getP = function() {
return this.p;
};
/*функция изменения p*/
z_class.prototype.setP = function() {
this.p = arguments[0];
};
/*можно еще добавить дефолтовое значение p*/
z_class.prototype.p = 666;
//
z_1 = new z_class(100);
z_2 = new z_class(200);
z_3 = new z_class();
trace(z_1.p);
trace(z_2.p);
trace(z_3.p);
*какой я добрый к трем часам ночи... ужас :)* Последний раз редактировалось Nox Noctis; 30.07.2002 в 04:13. |
|
|||||
|
2 Nox Noctis биг респект.
Будем пробывать. ![]() зы: кстати ты угадал мне нужен именно класс. Правда с геттером и путерром промахнулся =) зыы: Есть еще метод RegisterClass(); для чего он?. Насколько я понял он привязывает класс к муву но когда возникает такая необходимость - ума не преложу зыыы: Доступны ли для записи свойсва созданного класса прямиком из рута? _root.MyClass.MyProperty=10;
__________________
Все что не делается - все к лучшему Все что к лучшему - то не делается Последний раз редактировалось руль; 30.07.2002 в 04:42. |
![]() |
Часовой пояс GMT +4, время: 05:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|