Показать сообщение отдельно
Старый 23.09.2002, 08:07
SphinX вне форума Посмотреть профиль Отправить личное сообщение для SphinX Посетить домашнюю страницу SphinX Найти все сообщения от SphinX
  № 1  
SphinX

Регистрация: Sep 2001
Адрес: Asgard
Сообщений: 85
Отправить сообщение для SphinX с помощью ICQ
2Nox noctis

а код, который ты предложил почему то работает некорректно: если в объекте, который перекидываю в новосозданный мовиклип присутствуют свойства созданные addProperty, то они перестают работать.
Код:
// эта ф-ция маленько отличается от твоей
// в неё передаю имя класса, а объект создаётся onthefly
// + мне надо в конструктор параметры передать,
// придумал только этот извращенский способ
MovieClip.prototype.newMCClass = function(className,instanceName,params)
{
	var obj = new className();
	obj.init.apply(obj,params);
	var mc = this.createEmptyMovieClip(instanceName,this.maxDepth);
	this.maxDepth++;
	for (var i in obj) mc[i] = obj[i];
}

Class = function()
{
	this.param = "another param";
	this._property = "default value";
}
// когда устанавливаю свойство вижу в выводе "set"
Class.prototype.setp = function(val)
{
	trace("set");
	this._property = val;
}
// когда беру свойство вижу в выводе "get"
Class.prototype.getp = function()
{
	trace("get");
	return this._property;
}
Class.prototype.addProperty("property",Class.prototype.getp,Class.prototype.setp);
Class.prototype.init = function(par)
{
	trace("construction with param="+par + " and another param=" + this.param);
	this.property = "fff";
}

_root.newMCClass(Class,"c",["qwe"]);
// здесь должна вывести set, а не выводит (в конструкторе инициализирую своё свойство)


// а если выполнить это, то всё в порядке ...
// c = new Class();
// c.init("qweqfqqefqwef");
Мож есть какие соображения ?
__________________
flash 'em all