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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 29.10.2003, 20:03
Techmaker вне форума Посмотреть профиль Отправить личное сообщение для Techmaker Найти все сообщения от Techmaker
  № 31  
Techmaker
"человек"
 
Аватар для Techmaker

Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
я что-то непонямаю

а вообще по-моему вот самй лучший вариант
Код:
function SuperClass() {
	trace("SuperClass constructor called");
	this.__proto__.f1 = function() {
		trace("f1 called");
	};
	this.__proto__.f2 = function() {
		trace("f2 called");
	};
}
function SubClass() {
	trace("SubClass constructor called"); 
}
SuperClass.prototype.f3 = function() {
	trace("f3 called");
};
SubClass.prototype.__proto__=SuperClass.prototype
obj = new SuperClass();
trace("---------------");
obj.f1();
obj.f2();
obj.f3();
trace("******************************");
obj2=new SubClass();
trace("---------------");
obj2.f1();
obj2.f2();
obj2.f3();
__________________
flash it

Старый 29.10.2003, 20:33
iLoveYou вне форума Посмотреть профиль Отправить личное сообщение для iLoveYou Найти все сообщения от iLoveYou
  № 32  
iLoveYou
wanted

Регистрация: Sep 2002
Сообщений: 1,737
Алексей, приятно разговаривать с человеком, который, по всей видимости, читал Дебройля
SubClass.prototype.__proto__=SuperClass.prototype -- объяснишь, как это работает?

Старый 30.10.2003, 18:04
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 33  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Как это работает - Дебройль прекрасно и объяснил :
"Хитрость в том, что нужно сделать два класса и направить __proto__ прототипа первого на прототип другого (вместо Object.prototype). Таким образом вы получите "младший" класс, подкласс (SubClass) и "старший" класс, суперкласс (SuperClass). Делается это простой операцией:

SubClass.prototype.__proto__ = SuperClass.prototype;"

Нам же что бы найти F2 надо порыться не в прототипе
SuperClass, а в его конструкторе. Ну так и поройтесь,
чего притихли, где продолжение банкета?

Старый 30.10.2003, 18:47
iLoveYou вне форума Посмотреть профиль Отправить личное сообщение для iLoveYou Найти все сообщения от iLoveYou
  № 34  
iLoveYou
wanted

Регистрация: Sep 2002
Сообщений: 1,737
Цитата:
Оригинал написал(а) Штрек
Как это работает - Дебройль прекрасно и объяснил :
"Хитрость в том, что нужно сделать два класса и направить __proto__ прототипа первого на прототип другого (вместо Object.prototype). Таким образом вы получите "младший" класс, подкласс (SubClass) и "старший" класс, суперкласс (SuperClass). Делается это простой операцией:
SubClass.prototype.__proto__ = SuperClass.prototype;"
ГЫ как там в анекдоте? "если бы это сказал ты, мне было бы приятней".

Цитата:
Нам же что бы найти F2 надо порыться не в прототипе
SuperClass, а в его конструкторе.
ага, в этой фразе есть смысл. я вижу, что мы приближаемся к ответу на первый вопрос. ура!

Старый 31.10.2003, 10:58
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 35  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Цитата:
Оригинал написал(а) Sergey"iLoveYou"
Techmaker, ты сейчас очень поднялся в моих глазах, говорю без всякой иронии.
Молодец Лёха. Как житуха? Учёба напрягает...
__________________
flash/flex/unity

Старый 31.10.2003, 15:26
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 36  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Ладно, раз Нуран сдался, мне то чего тянуться.
Подтягивай Серёга тяжелую артилерию.
Я так понял, ты котегор. не хочешь засовывать
метод f2 в прототип SuperClass, типа
SubClass.prototype.__proto__=SuperClass.prototype ;
SuperClass.prototype.f2=function() {
trace("f2 called");
};
Вариант
SubClass=SuperClass.prototype.constructor ;
тоже не проходит, при нём твою строчку
SubClass.prototype.__constructor__ = SuperClass;
можно вообще убрать, трэйсится будет что надо,
но механизм наследования не вырисовывается.
Я скажу по простому - инфы ни хрена нету ниде.
У Мука constructor - 15 строчек, у Дебройля - 2страницы Но даже не в этом дело.
Врубится бы чего ты написал
SubClass.prototype.__constructor__ = SuperClass;
Стыдно признаться не знаю что есть
__constructor__
Ставлю
trace(SuperClass.prototype.__constructor__);
выводится undefined
Ставлю
trace(SuperClass.prototype.constructor);
выводится всё путём - [type Function]
В общем бардак.
Мож у нас на Руси Дебройли и есть, но тока куда то попрятались. Дембинского очень уважаю, так у него последнее обновление с год назад. Здесь на Флэшере уроков по ООП и близко нету.
Потрошитель уделил этому делу 10 строчек в глосарии.
Разбирайтесь мол сами.
Мож ничего не подсказывать, только чиркани, чем отличается
__constructor__ от constructor

Старый 31.10.2003, 17:49
iLoveYou вне форума Посмотреть профиль Отправить личное сообщение для iLoveYou Найти все сообщения от iLoveYou
  № 37  
iLoveYou
wanted

Регистрация: Sep 2002
Сообщений: 1,737
Цитата:
Ладно, раз Нуран сдался, мне то чего тянуться.
а вот это неправильная позиция
нуран не сдался, он даже не пытался.
Цитата:
Я так понял, ты котегор
кот Егор?
Цитата:
Стыдно признаться не знаю что есть
__constructor__
Мож ничего не подсказывать, только чиркани, чем отличается
__constructor__ от constructor
абсолютно ничего стыдного.
__constructor__ -- штука как бы недокументированная, но работает, как видишь. чтоб не нагружать тебя словесным бредом:
a=obj2.__constructor__; --> Ctrl+Alt+V
мысль продолжим?

Старый 31.10.2003, 18:36
Techmaker вне форума Посмотреть профиль Отправить личное сообщение для Techmaker Найти все сообщения от Techmaker
  № 38  
Techmaker
"человек"
 
Аватар для Techmaker

Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
По умолчанию 2Штрек

Цитата:
Оригинал написал(а) Штрек
Врубится бы чего ты написал
SubClass.prototype.__constructor__ = SuperClass;
Стыдно признаться не знаю что есть
__constructor__
Ставлю
trace(SuperClass.prototype.__constructor__);
выводится undefined
Ставлю
Код:
SubClass.prototype.bla_bla = SuperClass;
trace(SubClass.prototype.bla_bla)
__________________
flash it

Старый 31.10.2003, 18:43
iLoveYou вне форума Посмотреть профиль Отправить личное сообщение для iLoveYou Найти все сообщения от iLoveYou
  № 39  
iLoveYou
wanted

Регистрация: Sep 2002
Сообщений: 1,737
ну-ка не хулигань тут! не видишь, конструктивная беседа завязалась?

Старый 31.10.2003, 18:47
Techmaker вне форума Посмотреть профиль Отправить личное сообщение для Techmaker Найти все сообщения от Techmaker
  № 40  
Techmaker
"человек"
 
Аватар для Techmaker

Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
По умолчанию Повторный ответ на первый вопрс :)

Цитата:
Оригинал написал(а) Sergey"iLoveYou"

Цитата:
Нам же что бы найти F2 надо порыться не в прототипе
SuperClass, а в его конструкторе.
ага, в этой фразе есть смысл. я вижу, что мы приближаемся к ответу на первый вопрос. ура!
в конструкторе говорите? это как интерестно?
вот вариант, но метод f2 унаследовать всеровно не получится
Код:
SubClass.prototype.constructor.prototype.__proto__ = SuperClass.prototype.constructor.prototype;
мой ответ - решений нет можно только клонировать функцию, как я предложил в моём первом ответе:
Цитата:
Оригинал написал(а) Techmaker
Код:
...
SubClass=SuperClass; 
...
__________________
flash it


Последний раз редактировалось Techmaker; 31.10.2003 в 18:54.
Создать новую тему   Часовой пояс GMT +4, время: 20:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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