![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
Подскажите, плз. Голова уже не варит
![]() Хочу расширить подкласс, например, MC и возникают какие-то непонятки... Код в теле класса MC class MC extends MovieClip
{
public function MC()
{
super();
trace("Конструктор подкласса работает");
}
public function createShape(w:Number, h:Number):Void
{
super.moveTo(0, 0);
super.lineTo(w, 0);
super.lineTo(w, h);
super.lineTo(0, h);
super.lineTo(0, 0);
trace("Метод createShape работает");
}
}
В итоге не виден метод createShape, о чем свидетельствует отсутствие соответсвующей надписи в панеле Output. Что у меня не так? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Мувиклипы не создаются методом new. То есть экзмепляр класса будет создан, но он не будет обладать свойствами мувиклипа.
Кроме того, после первого задания значения mc, вы строчкой ниже перебиваете его. Вам нужно либо создать пустой клип в библиотеке и назначить ему класс MC, а потом его аттачить. Либо использовать хак, чтобы изменить суперкласс клипа. Последний раз редактировалось iNils; 28.12.2007 в 19:59. |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
Ну это понятно: конструктор класса можно было опустить.
Постоянно создавать мувиклипы в библиотеке с назначением подкласса МС, а потом их аттачить - не совсем удобно. Хакать суперкласс тоже не хотелось бы. Похоже на пляски с бубном. Есть вариант использовать "композицию" (К.Мук), но тоже оказалось в итоге много лишней писанины. Интересно, к примеру, расширить класс TextField невозможно через extends, а MovieClip? |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
Расширить - расширил, а вот работоспособность подкласса никакая и всё похоже зацикливается на этом кривом методе createEmptyMovieClip().
А на счёт хака, возникает нелицеприятный вопрос с передачей исходников заказчику: у него, то этот хак не будет проделан. P.S. Всё равно спасибо на помощь. |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
Исходник fla с классами.
А как правильно хакнуть, не повредив работоспособность суперкласса? Ведь в нём все методы и свойства не описываются (intrinsic). Можно краткий пример? Последний раз редактировалось iNils; 28.12.2007 в 20:35. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
С помощью createEmptyMovieClip вы создаете экземпляр MovieClip, а вам нужен MC расширяющий MovieClip, то MovieClip + еще что-то, о каком повреждении идет речь?
http://www.flasher.ru/forum/showpost...0&postcount=24 |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
Всё понятно, пасибо. Я не правильно представлял себе процесс хака
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:30. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|