Просмотр полной версии : ??? __proto__ ??? - хАчу сЪесть, а как ...
сабЖ :)
ЗЫ
ну понакидайте интересной инфы, а то все про гОтО и прочую бяку :D
ЗЗЫ
вопрос про getGidrometcenter() - был решен даааавно :D :D :D
http://debreuil.flashmaster.ru/ch01_Proto.htm
приятного аппетита!
А я думал для начала будет ответ :
" http://flasher.ru/forum/sets/flasher/top_search.gif "
;)
__proto__ - слово страшное :eek:
ни у кого с поиском не ассоциируется! :)
. prototype
/
-- addProperty
\
. registerClass
о чем еще бы интересном поговорить?
ЗЫ
странно, тему никто не поддерживаеТ:/
видимо название вопросу я дал страшноЕ :mad:
никто ничего непишеТ :/
нодо было назвать:
" А как это работает"
или
"что это за фишка"
или
".........." :D ;)
DeliMIter
04.09.2002, 18:55
Я бы с безумным удовольствием рассказал это все под хорошее пиво с обильными креветками... ну, на крайняк с маслинами... Но в форуме выкладывать всю эту скучную техническую инфу на три-четыре лекции... Неее...
P.S. Есть урок ООП от john'а и психический урок про бублик от Уилла.
в двух словах могу сказать обо всём:
prototype
смотри мой топик (http://flasher.ru/forum/showthread.php?s=&threadid=36535)
registerClass
как пользоваться:
1) создаёшь символ с возможностью экспорта в AS
2) даёшь ему идентификатор
3) определяешь класс со свойствами и методами
4) кодируешь: Object.registerClass("идентификатор",класс);
и теперь, когда ты будешь импортировать свой символ с
идентификатором, он будет содержать свойства и методы твоего
класса
addProperty
определяет у твоего класса новое свойство:
YoursClass.prototype.addProperty(pName,getFName,setFName);
pName - имя свойства (типа _width, _height, _alpha, ...)
getFName - функция, которая возвращает значение свойства
setFName - функция, которая устанавливает значение свойства
__proto__
это почти то же самое, что и prototype, по крайней мере я так думаю
ну чё, остался только кусок кода про addProperty
// установщик
function getf()
{
return this.str;
}
// получатель
function setf(s)
{
this.str = s;
}
// какой-нибудь класс
function Class()
{
this.init();
}
// его конструктор
Class.prototype.init = function()
{
trace("constructor");
this.str = "init_string";
}
// добавляем свойство
Class.prototype.addProperty("property",getf,setf);
c = new Class();// новый объект класса
trace(c.property);// печатаем свойство
c.property = "some_new_string";// задаём новое значение
trace(c.property);// печатаем свойство
удачи ... :D :D :D
Спасибо за красивую расСкраСку или расСкаЗку :cool:
Оригинал написал(а) SphinX
2lexxas если что непонятно, пиши ...
Ох, Эх, пишу :/
Все понятно, что ничего непонятно :rolleyes:
---------------------------------------------------------
Оригинал написал(а) Nox Noctis
правильно-правильно... объясни лехассу трудные места по части флэша и ООП в нем ...
*катается по полу*
Nox Noctis, у меня дома тоЖ полы некому убирать :D ;)
подтягивайся, я пиво поставлю :D
ЗЫ
заодно с полами про опп поговорим :D :D :D ;)
---------------------------------------------------------
Оригинал написал(а) DeliMIter
Я бы с безумным удовольствием рассказал это все под хорошее пиво с обильными креветками... ну, на крайняк с маслинами...
Гы%)
А я бы под все это дело с безумным удовольствием ПОСЛУШАЛ
;)
---------------------------------------------------------
ЗЫ
Извеняйте уважаемые флешеры, но как-то моло инфы... .
Или туплю Я :(
Вообжем почти ничего непонял:/
СПАСАЙТЕ - а то я так ничего и неузнаю!!!
кто верует, тот спасен .... (©)
%))))
http://www.debreuil.flashmaster.ru/ch01_Proto.htm
упс..... уже было... :(
но, "повторение - мать ...."
а можт всеж про ГоТо покалякаем ?
;))
Оригинал написал(а) Baltika
а можт всеж про ГоТо покалякаем ?
неа, про ГоТо нехачу!:/
ЗЫ
Я понятливый, просто много читать западло (хоть и ссылка толковая), вы мне обясните по человеческИ. ПЛЗ.
Оч. нехотца серым быть...
2lexass:
если тебе "нехотца серым быть...", то придётся читать, и думать тоже :p ... много-много ...
как говорят: "без труда не выловишь и инфу из ман`а"
Оригинал написал(а) SphinX
то придётся читать, и думать тоже
читал
думал
...
ТРебую разЪяснений , обЪяснений и пояснениЙ ;)
...
не бросайте на произвол судЬбЫ, а то такого наПрототаЙплЮ :eek:
ты б хоть попробовал чо сделать-та.. а то все разъясните, да...
в опщем попытайся, что не получится спросишь... а так те на пальцах без оных сложно объяснить... а в двух словах не получиЦЦа...
а в двух словах не получиЦЦа...
Гы%)))
готов выслушать в трЁх ;)
ЗЫ
отмазки непринимаются!!!
Оригинал написал(а) lexass
Гы%)))
готов выслушать в трЁх ;)
ЗЫ
отмазки непринимаются!!!
а в трех... те линк дали.. сиди и читай!!!
второй же мессагой...
там все разжевано...
можешь посидеть за компонентами и разбираться в АС... весело... тама все на пальцах...
2Sami
раз человек спрашивает - значит ему это нужно...
объяснил бы, если сам разобрался ;) и другим наверняка будет интересно(имхо)
а чего рассказывать то??? если уже все написано...
если он не задает конкретных вопросов...??
мне остается только скопировать текст и вставить сюда...
я изначально сидел и разбирался в компонентах... сначала все понял там, а потом прочитал линк в етой теме и доразобрался...
Оригинал написал(а) Sami
а чего рассказывать то???
я изначально сидел и разбирался в компонентах...
такС, начнем с малого:
1 что такое "компонентах"
ЗЫ
вопросы всплывают, медле-е-енно, по мере обЪяснениЙ ;)
что такое компонент разъяснить могу ... а про "компонентах" - не знаю :D ...
ну давай про компонент ;)
ЗЫ
А про "компонентах" раскажет Sami :cool:
шо... опять решил надприкалываться....?
еси не знаешь что такое множественное число в русском яязыке... тада я те ничего объяснять не буду.. времени жаль...
я тож про копнонеты хочу услышать... :rolleyes:
Sami, не жмись временем :), выкладывай чего знаешь..
Оригинал написал(а) Baltika
я тож про копнонеты хочу услышать...
Sami, не жмись временем , выкладывай чего знаешь..
во еще один интересующийся :cool: (теперь не так стыдно)
ЗЫ
Sami, нераскажешь сам, будем пытать :D ;)
Оригинал написал(а) lexass
Sami, нераскажешь сам, будем пытать :D ;)
раскаленным прототипом :cool: :)
Оригинал написал(а) Sami
см выше... :rolleyes:
насколько "выше" ?:/.
раскаленным прототипом с новыми пропертями :)
я щас за Толстяком - Доброе ... ... ... 4 пакетика сухариков ... cUULLL'er
поэтому возьмусь ... :cool: :cool: :cool:
про наследование свойств & методов Вы, дорогие товарищи, надеюсь, уже в курсе ...
компонеты - это классы обладающие свойствами мови-клипов т.е. они могут быть кнопками, умными эффектами, целыми разделами на сайте ...
кроме того, я к стати говорю о ФЛЕШЬ компонентах, они имеют несколько своих методов (это можно узнать из собственно исходников этих компонентов)
про наследование свойств & методов Вы, дорогие товарищи, надеюсь, уже в курсе ...
неА, поподробней ПЛЗ.
Оригинал написал(а) lexass
насколько "выше" ?:/.
наверно в разделе ActionScript:
this.__proto__ = ActionScript.prototype;
:rolleyes: :confused:
выше смари линк...
2SphinX
шо-то тя тож на компонентах потянуло... гыыыыыы!!
Харе болтологиЮ разводить, давайте разЖёвывать тему!
вот жуем жуем... никак наесться не могем...
__proto__ - раздает слонов, т.е. дарит свой прототип тому, кому ты ето скажешь...
тому, кому ты ето скажешь
непонял:/
например ...
infinity
05.09.2002, 15:50
ну про компоненты во флеш мы разобрались :p
теперь расскажите о компонетах в Delphi :D
хотел бы услышать подробную инструкцию о том, как их писать :D :D :D
погодЬ с Delphi
тут еще с флешОй непонятки ;)
ЗЫ
ждемС......
Оригинал написал(а) infinity
ну про компоненты во флеш мы разобрались :p
теперь расскажите о компонетах в Delphi :D
хотел бы услышать подробную инструкцию о том, как их писать :D :D :D
пИсать ты сможешь в зависимости от твоей пыпыски...)
Оригинал написал(а) Sami
отбой
какой отбой?
ровняйсь, смирно,
отвечать на поставленый вопрос..............
Оригинал написал(а) lexass
какой отбой?
ровняйсь, смирно,
отвечать на поставленый вопрос..............
командовать буишь сваим куриным мозгам ;)
2Sami, дружественно обменяемся взаимными оскАрблениями???
мозга у мЯ неМа вааще, у мЯ проц от ВМ-12, потому пытаюсь инфу по данному вопросу упаковать.......
ЗЫ
неможешь говорить по делу молчи...
ЗЗЫ
и так блиЖе к телУ, или никто толком ничего обЪяснить неможет???
доходчиво...
infinity
05.09.2002, 16:20
да, Sami, было б неплохо чтоб ты попусту не пИсал, а пораскинув своимикуриными мозгами ответил хоть на один ответ, а не отмазывался типа - "читай там", или
"Экшн скрипт написан по подобию Ява" :D :D :D :D
вы уже не задаете.. а издеваетесь :)
2infinity
писни чем Ява особо сильно отличается от АС5...
infinity
05.09.2002, 16:28
одно другому не мешает :D
infinity
05.09.2002, 16:34
да пошел ты, Г№;%ДОН :mad:
о моей принадлежности IQ поговорим во флейме или на едине
ЗЫ
по сабжу ответы будут?
2infinity, ненервничай оно того нестоит...
Оригинал написал(а) Sami
__proto__ - раздает слонов, т.е. дарит свой прототип тому, кому ты ето скажешь...
и что это значит ?
--
a = {};
ну и кому и чЕго будет "дарить" a.__proto__
:confused:
ЗЫ хватит членами трясти, давайте по сабжу..
a = {};
b=[]
a.__proto__ = b
моЖ кому чего и перепадет ;)
ЗЫ
Baltika, представляю твои круглые глаза :D :)
ГЫ%))))))))))
со своей стороны предлагаю нечто более простое для понимания:
--
a = {};
trace(a.__proto__ == Object.prototype);
:cool:
Baltika, ответ true даже без вставляния во флешак.
ЗЫ
этоЖ прозрачно;) ,
но неочевидно :(
поехали дальше
ЗЫ
infinity и Sami на задней парте устроили дуЭль на линейкаХ ;)
infinity
05.09.2002, 17:21
2 lexass
Sami эту дуэль проиграл, съехав на оскорбления :D
теперь по сабжу:
так что тебе не понятно?
Свойство объекта __proto__ является ссылкой на свойство prototype ф-ции конструктора этого объекта, короче говоря:
iobj=new Obj();
trace(iobj.__proto__==Obj.prototype); //true
шо не ясно?
Object.prototype.func = function() {
trace("I'm func");
};
a = {};
a.func();
b = []
b.prototype.__proto__ = a.prototype;
b.func();
lexass, куда дальше ?
куда дальше ?
а фиг его знает :mad:
----------------------------------------------------------
infinity, с победой тебЯ;)
----------------------------------------------------------
Свойство объекта __proto__ является ссылкой на свойство prototype ф-ции конструктора этого объекта
в этой фразе безусловно есть смысЛ!
Но если ее прочитать медленно и вдумчиво, то масло масленое:/
ЗЫ
а я вот где-то слышал что в прототипе моно добиться чтоб функции были "протектед", эт как??? Хачу, если моно :rolleyes:
infinity
05.09.2002, 17:38
ну ты lexass и нудный :)
и зачем тебе этот АС вообще?
__прото__ используется интерпретатором в основном для нахождения унаследованных свойств объекта, и юзать его самому не нада. ну а если уж сильно хочется, то можно так, как я выше написал. а по другому (читай: круче) - так это уже извратом пахнет ;)
а насчет протектед итд:
давай напишем свой АС, в котором будет и протектед и переопределение операторов и много чего еще :D :D :D
как тебе? :p
Оригинал написал(а) lexass
а я вот где-то слышал что в прототипе моно добиться чтоб функции были "протектед", эт как??? Хачу, если моно :rolleyes:
а нафига это нужно ? :cool: ;)
я не нудный, я достаевскиЙ :D ;)
свой AS писать не бум, ленно :/
и зачем тебе этот АС вообще?
дыг без него одни гифы анимированые получаются:(
правда векторные:)
а нафига это нужно ?
Baltika, поверь на слово нужНО!.
ЗЫ
Кручу верчу всех запутать хАчУ :D ;)
infinity
05.09.2002, 17:48
мда... твои флудерские качества всем давно известны :D
эт для нас не новость :cool:
lexass, яж грил в самом начале - нада была спрашивать про ГоТо :cool:
а так тебе ничего никто не объяснил, да еще и во флудеры записали... ;) :p
__proto__ как говорилось выше,
это ссылка на prototype конструктора,
и все,
конструктор в принципе может уже использовать другой прототип, (подменить), но потомок будет иметь тот же объект в __proto__ , что получил при рождении.
все просто, у конструктора prototype у экземпляра - __proto__
Но помоему большинство мессаг этого топика посвещено другому, и к этой теме не посвящены,
глумление короче, все все знают и глумятся :)
модно это стало на форуме....
обратно к теме,
я почти не использую __proto__ кроме некоторых случаев,
использование общих для всех экземпляров каунтеров, или ссылок на все экземпляры классы,
пример :
this.depth = ++this.__proto__.counter + 999;
var o = this.holder = _root.createEmptyMovieClip("alt_"+c+"_mc",this.depth )
это чтбы все экземпляры класса имели различные depth у своих мувиков....
или же
//*************************************************************************
//*************************************************************************
//
// Primer CLASS created: [17:29:22 , Thursday, September 05, 2002]
//
//*************************************************************************
//*************************************************************************
#initclip
//-------------------------------------------------------------------------
// class constructor
//-------------------------------------------------------------------------
_global.C_PrimerCLASS = function()
{
this.init();
}
//-------------------------------------------------------------------------
// create prototype
//-------------------------------------------------------------------------
C_PrimerCLASS.prototype = new MovieClip();
//-------------------------------------------------------------------------
// class default attributes
//-------------------------------------------------------------------------
C_PrimerCLASS.prototype.allInstances = [];
//*************************************************************************
//-------------------------------------------------------------------------
// class methods
//-------------------------------------------------------------------------
C_PrimerCLASS.prototype.init = function()
{
this.__proto__.allInstances.push(this);
/*
и так далее
*/
}
//-------------------------------------------------------------------------
// class methods
//-------------------------------------------------------------------------
C_PrimerCLASS.prototype.onUnload = function()
{
var a = this.__proto__.allInstances;
for (var i=0;i<a.length;i++)
{
if(a[i] == this)
{
a.splice(i,1);
}
}
}
//-------------------------------------------------------------------------
// call all instances
//-------------------------------------------------------------------------
C_PrimerCLASS.prototype.callAll = function()
{
var a = this.__proto__.allInstances;
for (var i=0;i<a.length;i++)
{
a[i].onChange(this);
}
/*
и так далее
*/
}
//-------------------------------------------------------------------------
// onChange
//-------------------------------------------------------------------------
C_PrimerCLASS.prototype.onChange = function(changed)
{
trace(changed);
}
//-------------------------------------------------------------------------
// register
//-------------------------------------------------------------------------
ASSetPropFlags(_global,"C_PrimerCLASS",131);
Object.registerClass("C_PrimerCLASS",C_PrimerCLASS)
#endinitclip
еще одно применение (у меня) __proto__ это обработака только "локальных" , "собственных" полей класса, и не обработка наследованных,
например хочется в цикле пройтись по всем полям и не трогать наследованные,
вот пример,
//-------------------------------------------------------------------------
// clone object
//-------------------------------------------------------------------------
Object.prototype.clone = function()
{
var empty_object = new this.constructor();
empty_object.__proto__ = this.__proto__;
return empty_object.copy(this);
}
//-------------------------------------------------------------------------
// copy params of any object
//-------------------------------------------------------------------------
Object.prototype.copy = function()
{
var proto = arguments[0].__proto__;
arguments[0].__proto__ = undefined;
for(var v in arguments[0])
{
this[v] = arguments[0][v];
}
arguments[0].__proto__ = proto;
return this;
}
//-------------------------------------------------------------------------
// clear params by default
//-------------------------------------------------------------------------
Object.prototype.clear = function()
{
var proto = this.__proto__;
this.__proto__ = undefined;
for(var v in this) delete this[v];
this.constructor.apply(this,arguments)
this.__proto__ = proto;
}
удачи
Nox Noctis
05.09.2002, 19:56
ну, вот, все встало на свои места :))
здравствуй, джон :)))
давно тебя не видно что-то... скучно стало ? ;))
я, если честно, вчера думал, что лехасс прикалывается... сегодня прихожу - а тут такого нагнали... флудеры короче :) гнусные мерзкие флеймеры :)
Nox Noctis
05.09.2002, 20:03
неконструктивное замечание:
ASSetPropFlags(_global,"C_PrimerCLASS",131);
прикольно :)
а почему именно '131' ? ;)
можно было написать, к примеру,
ASSetPropFlags(_global,"C_PrimerCLASS",187227);
:)
хотя
ASSetPropFlags(_global,"C_PrimerCLASS",3);
- это не для настоящих мачо :)) это да :))
:D
привет, Nox Noctis :)
да, заскучал слегка...
а почему именно '131' ? ;)
ты прав, конечно можно и другую циферку,
но такая циферка используется при создании всех классов флэша, видел в коде инициализации плейера
вот и подумал что она получшее :)
и еще можно класс после регистрации (registerClass) вообще удалять, как поле,
чтобы не плодить,
но вдруг нужен будет, например будет суперклассом для другого класса, вот я и закрываю его просто.
Nox Noctis
05.09.2002, 21:00
хммм.... видать это поставлено "на всякий пожарный"...
видимо критична единичка в старшем бите...
в пятерке например вместо нуля нужно ставить 8 - чтобы полностью разлочить свойства...
просто забавно :) вместо '3' ставить '131'... :))
DeliMIter
05.09.2002, 21:16
Ой как смешно, ха-ха три раза...
Nox Noctis
05.09.2002, 21:25
бэээээ :))))
*показывает язык*
покидались кусками кодов :/
глумление короче, все все знают и глумятся
сумневаюсЬ что все знают :/
ЗЫ
про функцию "ASSetPropFlags()" я ничего не слышал, не знаю и спрашивать небуду ;)
ЗЗЫ
Ладно вопрос ДНЯ:
Как это все применимо во флеш5 ???
и не флудеры мы вовсе, так вопросики решаем...
2john
спасибо!
а то я все голову ломал над тем как и где можно найти для __proto__ реальной применение....
ЗЫ lexass, слезай с пятерки, переходи на........ четверку :p :D
на пятерку заставляют :mad:
на четверку нехачу , там #include нет , а блокнот рулит
infinity
06.09.2002, 11:12
блокнот сакс - рулит FAR+Colorer :)
и действительно, МЫ - не флудеры, ФЛУДЕРЫ - не мы
просто, так, по теме материмся :D
блокнот - рулит, но не светит:/
2lexass
все примеры применения __прото__ которые я привел,
приминимы и в пятерке, если выделить суть,
1. создание и изменение общих параметров для всех инстансвов класса из экземпляров.
2. перебор собственных параметров экземпляра класса без наследованных. (сохранение прото в переменную, присвоение __прото__ значение undefined, цикл, возращение значение прото из переменной)
новых применений __прото__ в МХ я не придумал еще :)
все это работало и в пятерке.
давайте медленно все сначала, я после отпуска вааще только вспомнил как комп включать ;)
gotoAndPlay(1 (http://www.flasher.ru/forum/showthread.php?s=&threadid=36697&perpage=15&pagenumber=1));
;))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.