Просмотр полной версии : MovieClip в классе
Привет, создаю свой класс, в этом классе создаю мувиклип, как получить ссылку на мой класс из дочернего MovieClip? Это нужно для отслеживания событий, помогите пожалуйста))
class Preview extends MovieClip
{
public var _ID:Number;
public var _clip:MovieClip;
public function Preview(id,url,loader)
{
_ID = id;
_clip = _root.createEmptyMovieClip("picts_"+id+"_mc",_root.getNextHighestDepth());
loader.loadClip(url, _clip);
}
chingachgoog
07.02.2009, 22:21
_clip.ссылка_на_мой_класс=Preview
_clip.ссылка_на_экземпляр класса=this
А как добавить в _clip атрибут ссылки так называемый "ссылка_на_экземпляр класса"?
Psycho Tiger
07.02.2009, 23:41
Всегда был _parent из дочернего.
А chingachgoog имел ввиду что можно просто определить переменную мувиклипу (благо мувиклип динамичный класс), и туда присвоить ссылку на себя, то есть this.
По правилам ООП конечно лучше 2 вариант, с "расширенным" классом от мувиклипа содержащего дополнительно 1 переменную - как раз ссылку, которую мы и присвоим после добавления
Вот так не работает:
class Preview
{
public var _ID:Number;
public var _clip:MovieClip;
public function Preview(id,url,loader)
{
_ID = id;
_clip = _root.createEmptyMovieClip("picts_"+id+"_mc",_root.getNextHighestDepth());
loader.loadClip(url, _clip);
_clip._link = this;
}
Далее создаю массив классов Preview
Previews[i] = new Preview(i,url,pict_mcl);
И в цикле
onEnterFrame = function () {
for(var i=0; i<allPicts; i++)
{
Previews[i]._clip.onRollOver = function()
{
trace(this._link);
}
}
}
Результат - undefined; Что не так? =\
Добавлено через 40 минут
Всем спасибо, вроде решение нашлось, просто буду в _clip._name = ID - записывать ID класса потом вытаскивать из массива)
Psycho Tiger
08.02.2009, 00:45
Ну, начнем с этого:
onEnterFrame = function () {
for(var i=0; i<allPicts; i++)
{
Previews[i]._clip.onRollOver = function()
{
trace(this._link);
}
}
}
В каждом кадре ты пересоздаешь обработчики - зачем? Повесь их один раз.
Вверху - Previews[i]
Ты перебираешь: Previews[i]._clip
Начните, пожалуй, с азов ООП. Про наследование и композицию особенно.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.