Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   ??? __proto__ ??? - хАчу сЪесть, а как ... (http://www.flasher.ru/forum/showthread.php?t=36697)

lexass 05.09.2002 16:03

Цитата:

Оригинал написал(а) Sami
отбой
какой отбой?
ровняйсь, смирно,
отвечать на поставленый вопрос..............

Sami 05.09.2002 16:06

Цитата:

Оригинал написал(а) lexass

какой отбой?
ровняйсь, смирно,
отвечать на поставленый вопрос..............

командовать буишь сваим куриным мозгам ;)

lexass 05.09.2002 16:15

2Sami, дружественно обменяемся взаимными оскАрблениями???
мозга у мЯ неМа вааще, у мЯ проц от ВМ-12, потому пытаюсь инфу по данному вопросу упаковать.......
ЗЫ
неможешь говорить по делу молчи...
ЗЗЫ
и так блиЖе к телУ, или никто толком ничего обЪяснить неможет???
доходчиво...

infinity 05.09.2002 16:20

да, Sami, было б неплохо чтоб ты попусту не пИсал, а пораскинув своими
Цитата:

куриными мозгами
ответил хоть на один ответ, а не отмазывался типа - "читай там", или
"Экшн скрипт написан по подобию Ява" :D :D :D :D

Sami 05.09.2002 16:25

вы уже не задаете.. а издеваетесь :)
2infinity
писни чем Ява особо сильно отличается от АС5...

infinity 05.09.2002 16:28

одно другому не мешает :D

Sami 05.09.2002 16:31

дебилам.., - возможно...

infinity 05.09.2002 16:34

да пошел ты, Г№;%ДОН :mad:

lexass 05.09.2002 16:38

2Sami
 
о моей принадлежности IQ поговорим во флейме или на едине

ЗЫ
по сабжу ответы будут?

2infinity, ненервничай оно того нестоит...

Baltika 05.09.2002 16:40

Цитата:

Оригинал написал(а) Sami
__proto__ - раздает слонов, т.е. дарит свой прототип тому, кому ты ето скажешь...
и что это значит ?
--
a = {};

ну и кому и чЕго будет "дарить" a.__proto__

:confused:

ЗЫ хватит членами трясти, давайте по сабжу..

lexass 05.09.2002 16:47

a = {};
b=[]
a.__proto__ = b

моЖ кому чего и перепадет ;)

ЗЫ
Baltika, представляю твои круглые глаза :D :)

Baltika 05.09.2002 16:56

ГЫ%))))))))))

со своей стороны предлагаю нечто более простое для понимания:
--
a = {};
trace(a.__proto__ == Object.prototype);

:cool:

lexass 05.09.2002 17:01

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

шо не ясно?

Baltika 05.09.2002 17:22

Re: поехали дальше..
 
Код:

Object.prototype.func = function() {
        trace("I'm func");
};

a = {};
a.func();
b = []
b.prototype.__proto__ = a.prototype;
b.func();

lexass, куда дальше ?

lexass 05.09.2002 17:32

все понятно, что ничего непонятно :(
 
куда дальше ?
а фиг его знает :mad:

----------------------------------------------------------
infinity, с победой тебЯ;)
----------------------------------------------------------

Свойство объекта __proto__ является ссылкой на свойство prototype ф-ции конструктора этого объекта

в этой фразе безусловно есть смысЛ!
Но если ее прочитать медленно и вдумчиво, то масло масленое:/

ЗЫ
а я вот где-то слышал что в прототипе моно добиться чтоб функции были "протектед", эт как??? Хачу, если моно :rolleyes:

infinity 05.09.2002 17:38

ну ты lexass и нудный :)

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

а насчет протектед итд:
давай напишем свой АС, в котором будет и протектед и переопределение операторов и много чего еще :D :D :D
как тебе? :p

Baltika 05.09.2002 17:40

Re: все понятно, что ничего непонятно :(
 
Цитата:

Оригинал написал(а) lexass

а я вот где-то слышал что в прототипе моно добиться чтоб функции были "протектед", эт как??? Хачу, если моно :rolleyes:

а нафига это нужно ? :cool: ;)

lexass 05.09.2002 17:45

я не нудный, я достаевскиЙ :D ;)

свой AS писать не бум, ленно :/

Цитата:

и зачем тебе этот АС вообще?
дыг без него одни гифы анимированые получаются:(
правда векторные:)

Цитата:

а нафига это нужно ?
Baltika, поверь на слово нужНО!.

ЗЫ
Кручу верчу всех запутать хАчУ :D ;)

infinity 05.09.2002 17:48

мда... твои флудерские качества всем давно известны :D
эт для нас не новость :cool:

Baltika 05.09.2002 18:32

lexass, яж грил в самом начале - нада была спрашивать про ГоТо :cool:

а так тебе ничего никто не объяснил, да еще и во флудеры записали... ;) :p

john 05.09.2002 19:21

__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);
- это не для настоящих мачо :)) это да :))

john 05.09.2002 20:12

: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

бэээээ :))))
*показывает язык*

lexass 06.09.2002 10:20

Пришли наконец-то знаюшие лЮди
 
покидались кусками кодов :/

Цитата:

глумление короче, все все знают и глумятся
сумневаюсЬ что все знают :/

ЗЫ
про функцию "ASSetPropFlags()" я ничего не слышал, не знаю и спрашивать небуду ;)

ЗЗЫ
Ладно вопрос ДНЯ:

Как это все применимо во флеш5 ???


и не флудеры мы вовсе, так вопросики решаем...

Baltika 06.09.2002 10:49

2john

спасибо!
а то я все голову ломал над тем как и где можно найти для __proto__ реальной применение....

ЗЫ lexass, слезай с пятерки, переходи на........ четверку :p :D

lexass 06.09.2002 10:54

на пятерку заставляют :mad:

на четверку нехачу , там #include нет , а блокнот рулит

infinity 06.09.2002 11:12

блокнот сакс - рулит FAR+Colorer :)

и действительно, МЫ - не флудеры, ФЛУДЕРЫ - не мы
просто, так, по теме материмся :D

lexass 06.09.2002 16:47

блокнот сакс
 
блокнот - рулит, но не светит:/

john 06.09.2002 17:49

2lexass

все примеры применения __прото__ которые я привел,
приминимы и в пятерке, если выделить суть,

1. создание и изменение общих параметров для всех инстансвов класса из экземпляров.

2. перебор собственных параметров экземпляра класса без наследованных. (сохранение прото в переменную, присвоение __прото__ значение undefined, цикл, возращение значение прото из переменной)

новых применений __прото__ в МХ я не придумал еще :)
все это работало и в пятерке.

lexass 02.10.2002 19:15

давайте медленно все сначала, я после отпуска вааще только вспомнил как комп включать ;)

Baltika 03.10.2002 17:14

gotoAndPlay(1);

;))

lexass 03.10.2002 18:41

:D ;)


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

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