![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
lexass, яж грил в самом начале - нада была спрашивать про ГоТо
а так тебе ничего никто не объяснил, да еще и во флудеры записали... ![]() |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
__proto__ как говорилось выше,
это ссылка на prototype конструктора, и все, конструктор в принципе может уже использовать другой прототип, (подменить), но потомок будет иметь тот же объект в __proto__ , что получил при рождении. все просто, у конструктора prototype у экземпляра - __proto__ Но помоему большинство мессаг этого топика посвещено другому, и к этой теме не посвящены, глумление короче, все все знают и глумятся ![]() модно это стало на форуме.... обратно к теме, я почти не использую __proto__ кроме некоторых случаев, использование общих для всех экземпляров каунтеров, или ссылок на все экземпляры классы, пример : this.depth = ++this.__proto__.counter + 999;
var o = this.holder = _root.createEmptyMovieClip("alt_"+c+"_mc",this.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
например хочется в цикле пройтись по всем полям и не трогать наследованные, вот пример,
//-------------------------------------------------------------------------
// 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;
}
Последний раз редактировалось УильямБрэдберри; 05.09.2002 в 19:57. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
ну, вот, все встало на свои места :))
здравствуй, джон :))) давно тебя не видно что-то... скучно стало ? ;)) я, если честно, вчера думал, что лехасс прикалывается... сегодня прихожу - а тут такого нагнали... флудеры короче :) гнусные мерзкие флеймеры :) |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
неконструктивное замечание:
Цитата:
а почему именно '131' ? ;) можно было написать, к примеру, ASSetPropFlags(_global,"C_PrimerCLASS",187227); :) хотя ASSetPropFlags(_global,"C_PrimerCLASS",3); - это не для настоящих мачо :)) это да :)) |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
привет, Nox Noctis ![]() да, заскучал слегка... Цитата:
но такая циферка используется при создании всех классов флэша, видел в коде инициализации плейера вот и подумал что она получшее ![]() и еще можно класс после регистрации (registerClass) вообще удалять, как поле, чтобы не плодить, но вдруг нужен будет, например будет суперклассом для другого класса, вот я и закрываю его просто. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
хммм.... видать это поставлено "на всякий пожарный"...
видимо критична единичка в старшем бите... в пятерке например вместо нуля нужно ставить 8 - чтобы полностью разлочить свойства... просто забавно :) вместо '3' ставить '131'... :)) |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
Ой как смешно, ха-ха три раза...
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
бэээээ :))))
*показывает язык* |
|
|||||
|
покидались кусками кодов :/
Цитата:
ЗЫ про функцию "ASSetPropFlags()" я ничего не слышал, не знаю и спрашивать небуду ![]() ЗЗЫ Ладно вопрос ДНЯ: Как это все применимо во флеш5 ??? и не флудеры мы вовсе, так вопросики решаем...
__________________
Старый плюс лучше новых двух. I like RTFM попросил - подожди - обработай Chr(255) == '\xFF' - это про "я" lexass |
|
|||||
|
2john
спасибо! а то я все голову ломал над тем как и где можно найти для __proto__ реальной применение.... ЗЫ lexass, слезай с пятерки, переходи на........ четверку Последний раз редактировалось Baltika; 06.09.2002 в 10:51. |
![]() |
Часовой пояс GMT +4, время: 11:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|