![]() |
|
||||||||||
|
|
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
До сего дня не когда не пользовался переопределением классов ( не считая event ), а создавал класс и в нем уже собирал нужные свойства от нужного класса и так далее. Но сегодня решил попробовать и сразу конфуз,
то ли я не так понимаю, то ли не так, что то делаю. Выручайте. Нужно применить TextFormat с к нескольким полям и я решил расширить его и в нем написал: ниже. Затем я переопределил свойство setTextFormat и создал сам экземпляр класса TextView и присвоил его свойству text текст. У меня была надежда, что у меня текст будет белого цвета. Но нет. В чем моя ошибка? package { import flash.text.TextFormat; /** * ... * @author */ public class FormatView extends TextFormat { public function FormatView() { super(); } override public function get color():Object { return super.color; } override public function set color(value:Object):void { value = 0xffffff; super.color = value; } } } package { import flash.text.TextField; import my_path.FormatView; /** * ... * @author */ public class TextView extends TextField { public function TextView() { super(); } override public function setTextFormat(format:FormatView, beginIndex:int = -1, endIndex:int = -1):void { super.setTextFormat(format, beginIndex, endIndex); } } } |
|
|||||
|
Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
|
Покажите полный код, что вы делаете в основном классе? В классе FormatView вы переопределили метод set, если вы извне не вызвали метод format.color = xxx, то цвет не станет белым. А вообще, вам бы почитать литературу про ООП.
__________________
FlashPress.ru | Blog |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
maincode то есть мой вариант "некакой"?) Жаль...Смысл тогда полностью отпадает...
|
|
|||||
|
Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
|
Зачем переопределять класс если вам нужно только цвет изменить? создайте экземпляр TextFormat и задайте ему значение .color=0xffffff. Какую задачу пытаетесь решить? дайте больше информации
![]()
__________________
FlashPress.ru | Blog |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Основная Задача - нескольким текстовым полям, задать определённый стиль ( очень много из TextFormat )
Второстепенная Задача - научится переопределять. На счёт "смысла" я немного не подумал, разницы особой нет. В место класса TextView можно просто TextField создавать, у которого появится свойство setTextFormat и применять его ко всем экземплярам, но упрощения, которого я пытался добиться ( не писать много раз setTextFormat, вручную или циклом ) нет. А ещё mouseEnabled к каждому полю писать... Последний раз редактировалось Akopalipsis; 18.07.2013 в 00:49. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Что-то я не понял — это что, компилится?
Компилятор не может позволить ТАК оверрайдить метод. При оверрайде сигнатура метода не может быть изменена. Новый setTextFormat никак не может принимать Ваш кастомный FormatView.
__________________
Reality.getBounds(this); |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
в конструкторе: Добавлено через 25 минут Спасибо! разобрался. |
|
|||||
|
Регистрация: Jan 2013
Сообщений: 126
|
При переопределении как и в Interface - сигнатура метода должна быть идентична в соответствующих методах класса.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:38. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|