Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.03.2011, 13:47
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию Очистка Оверрайдов

Такой вопрос интересен, если мы наследуемся например от DisplayObjectContainer , я бы хотел например, удалить методы name , addChild и т.д. Понятно, что можно запретить

Код AS3:
override public function addChild(child:DisplayObject): void {
    throw new Error('');
}
А как вообще скрыть этот метод или удалить его ? Возможно ли ?

Старый 16.03.2011, 13:51
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Код AS3:
override public function addChild(child:DisplayObject): void {
}
Чем не устраивает?
Нельзя скрыть метод, да и смысла нет.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 16.03.2011, 13:57
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
GBee смотрика.

Код AS3:
class someClass extends Sprite  {....}
 
var cl:someClass = new someClass (); // теперь я хочу, чтобы пользователь не видел в списке addChild
 
cl.add
...
...
...
...
...
? // в списке его не видно.
Хорошо - пользователь думает, что это особый класс имеющий только свои методы. Даже наследование от Object - имеет ненужные мне методы типа toString() - зачем мне каждый раз оверрайдить с ошибкой?

Добавлено через 50 секунд
ВОт я и хочу узнать - как то можно удалить или скрыть методы. Если нельзя вопрос отпадает

Старый 16.03.2011, 14:03
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 4  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
нельзя, используй композицию
__________________
low +

Старый 16.03.2011, 14:08
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 5  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
нельзя, используй композицию
И как? Писать свой addChild для каждого контейнера?
__________________
...вселенская грусть

Старый 16.03.2011, 14:10
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 6  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
зачем для каждого, для одного, а от него дальше наследовать, все нужные методы в нем сделать
__________________
low +

Старый 16.03.2011, 14:13
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 7  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Я имею ввиду, что когда этот хитрый класс кто-то захочет добавить на сцену, то он обломается. Неудобно, на мой взгляд
__________________
...вселенская грусть

Старый 16.03.2011, 14:18
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 8  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
да, будет вселенская грусть =) но возможно автору и не требуется его на сцену добавлять, нужно конкретную задачу смотреть уже
__________________
low +

Старый 16.03.2011, 14:24
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 9  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Я имею ввиду, что когда этот хитрый класс кто-то захочет добавить на сцену, то он обломается.
Ну так и не надо "хитрый класс" добавлять. Может, кто-то еще захочет и Number на сцену добавить, у него тоже проблемы будут. В типичном случае при композиции будет вызов одного дополнительного метода:
Код AS3:
container.addChild(specialObject.getUI());
 
public final class SpecialObject {
  public function getUI() : DisplayObject {return ui;}
}
В этом случае как раз все логично. Есть какой-то объект (с необходимыми методами). У этого объекта есть UI. При этом сам объект не является UI как таковым (спрайтом и т.п.). Второй вариант - объект таки является "чистым" UI, но при этом не хочется, чтобы были видны детали реализации. В этом случае спасают функции:
Код AS3:
internal final class SomeUI extends Sprite {
...
}
 
public function createSomeUI() : DisplayObject {
  return new SomeUI();
}

Старый 16.03.2011, 14:41
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
А какие методы, например, нужно перекрыть?

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:18.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:18.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.