![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
В основном мувике есть такой код.
Он создаёт и рисует некоторый объект. Всё работает тут. Теперь я его (эти строки) помещаю в конструктор некоторого класса Viewer, который сам будет создаваться в основном мувике таким же способом. В результате ничего не рисуется. Я вижу, что все параметры инициализации передаются верно, но визуально ничего не происходит. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
От MovieClip наследуются все классы
|
|
|||||
|
Непонятно - а почему нет слова new при создании экземпляра. А вообще у класса MovieClip нет такого свойства Background.Create (), поэтому строчка
не должна работать. Надо от класса Background наследоваться. |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 259
|
Может потому что это статик метод?
|
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
Потому, что Ruffus программирует еще и на Дельфи!!!!!!!
![]() ![]() ![]() ![]() А если серьезно, то похоже Create и есть статический метод.
__________________
Случайность, господа, это знаете ли непознанная необходимость. Последний раз редактировалось Alex_beginner; 05.06.2008 в 11:53. |
|
|||||
|
Цитата:
чтобы точно сказать, нужно знать что делает Background.Create по-видимому создает в мувике, переданном в первом параметре, пустой мувик и перенаправляет его __proto__ на Background.prototype.. в коде на линейке ты передаешь как this реальный мувик и все получается.. а в коде в классе как this ты передаешь объект, хоть и унаследованный от MovieClip, но не имеющий дисплейного воплощения, т.е. ничего увидеть и не должен.. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
public static function Create(this_movclip:MovieClip, name:String, depth:Number, init_obj:Object):Background
{
var out_movclip:MovieClip = this_movclip.createEmptyMovieClip(name, depth);
var current_constructor:Function = Background;
out_movclip.__proto__ = current_constructor.prototype;
for (var i in init_obj)
{
out_movclip[i] = init_obj[i];
}
current_constructor.call(out_movclip);
return Background(out_movclip);
}
Похоже, что silin прав чуть более, чем полностью. Как быть тогда? Я кстати с трудом понимаю, что делает строка Пробую в Background.Create передавать _root. Не помогает. Последний раз редактировалось iNils; 05.06.2008 в 15:52. |
|
|||||
|
не очень понятна логика: почему и vwr и bgr в нем ты создаешь с помощью Background.Create..
при этом vwr объявляешь как Viewer.. конструктор Viewer ни разу не исполняется (косяк еще и в этом) если уж задумано так создавать мувики, то и Viewer должен иметь аналогичный метод Create, возвращающий экземпляр Viewer , тогда var vwr: Viewer = Viewer.Create(this, "viewer", 0, {}); сработает (в том смысле что и конструктор будет вызван и на момент вызова конструктора экземпляр уже будет на сцене) PS я в свое время отказался от такого способа в пользу универсальной приспособы для создания мувиков "своего" класса, суть там та же, но все гораздо прозрачнее получается Последний раз редактировалось silin; 05.06.2008 в 14:31. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Ruffus, надо использовать кнопку
, а не создавать несколько сообщений подряд.В ActionScript принято с большой буквы писать только имена классов и интерфейсов, все методы и свойства пишут с маленькой. Поэтому вместо Background.Create правильнее писать Background.create Покажите код классов Background и Viewer полностью. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|