Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 30.07.2002, 00:55
руль вне форума Посмотреть профиль Отправить личное сообщение для руль Найти все сообщения от руль
  № 1  
руль
 
Аватар для руль

Регистрация: May 2002
Адрес: Литва
Сообщений: 109
Отправить сообщение для руль с помощью ICQ
Attention Помогите с ООП во Флэш

у меня есть кусок кода:
Код:
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
__________________
Все что не делается - все к лучшему
Все что к лучшему - то не делается

Старый 30.07.2002, 04:08
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 2  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: 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']
видишь ? получается не три объекта а три ссылки на один и тот же object #1
— читай в хэлпе что должно быть параметром конструктора 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.
Старый 30.07.2002, 04:33
руль вне форума Посмотреть профиль Отправить личное сообщение для руль Найти все сообщения от руль
  № 3  
руль
 
Аватар для руль

Регистрация: May 2002
Адрес: Литва
Сообщений: 109
Отправить сообщение для руль с помощью ICQ
2 Nox Noctis биг респект.
Будем пробывать.
зы: кстати ты угадал мне нужен именно класс. Правда с геттером и путерром промахнулся =)
зыы: Есть еще метод RegisterClass(); для чего он?. Насколько я понял он привязывает класс к муву но когда возникает такая необходимость - ума не преложу
зыыы: Доступны ли для записи свойсва созданного класса прямиком из рута? _root.MyClass.MyProperty=10;
__________________
Все что не делается - все к лучшему
Все что к лучшему - то не делается


Последний раз редактировалось руль; 30.07.2002 в 04:42.
Создать новую тему   Часовой пояс GMT +4, время: 05:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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