Показать сообщение отдельно
Старый 08.05.2009, 12:33
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>и не совсем понимаю, что есть ссылкаНаЭкземпляр

затруднительно в этом случае что-то объяснить, хотя все и предельно просто на самом деле:
ссылкаНаЭкземпляр - это буквально ссылка на экземпляр
метод (start_f, например) можно вызвать у того, у кого он есть..
в твоем примере он есть у всех экземпляров Picture_loading
т.е. и вызов должен выглядеть как (мувик класса Picture_loading).start_f()

с другой стороны start_f может быть и не только у экземпляров Picture_loading, можно определить его просто в кадре какого-то мувика, того же _root' а, например, тогда и _root.start_f() тоже будет работоспособным..

должен предупредить, что писать такое ( обращение к _root, _parent и т.п.) в классах - полный абсурд, даже при том что будет работать работать заставишь

Upd.
про ссылку: можно передавать ее, например, в init этого Btn_class
Код AS1/AS2:
class Picture_loading extends MovieClip {
 
	public function init() {
		_root.btn.__proto__ = Btn_class.prototype;//подключаю кнопке на сцене Btn_class
		_root.btn.init(this);//Вызываю функцию init в Btn_class
	}
	public function start_f() {//функция не срабатывает
		trace("start_f");
	}
}
class Btn_class extends MovieClip 
{
	private var _owner:Picture_loading;
	public function init(owner:Picture_loading) {
		onRelease = release;
		_owner = owner;
	}
	private function release() {
		_owner.start_f();//при нажатии пытаюсь вызвать функцию
	}
}
повторюсь, что это скорее костыли для иллюстрации, чем нормальные решения
не берусь предугадать каких именно, но граблей на таком пути будет не мало, мужайся..


Последний раз редактировалось silin; 08.05.2009 в 12:56.