Можно ли использовать отражение AS3, чтобы узнать, был ли метод переопределен?AS3 отражение. Как узнать, отменен ли метод?
мне нужен метод, как:
protected function isOverriden(methodName:string) : bool
{
//magic here!
//...
return awesomeLocalVariable;
}
Итак, я перехожу в имени метода в виде строки и метод isOverridden дает верно только тогда и только тогда, когда объект имеет метод этого имени, и это переопределен из его первоначальной реализации.
Любая идея о том, как закодировать магию там?
Спасибо.
Edit: В соответствии с просьбой, контекст проблемы:
Я создание основы для создания AS3 игры. Я хочу предоставить «компоненты» для своих игровых объектов, каждый компонент предоставляет функциональность игровому объекту, который он применяет. Компоненты основаны на событиях (onClick, onUpdate, onShapeCollision и т. Д.). Мне нужен этот код в классе Component, поэтому я могу зарегистрировать только те события, которые реализует класс (производный от класса).
Пример Компонент:
public class CTrace extends ScriptComponent
{
public override function onClick(event:MouseEvent = null):void
{
trace(Owner.Id);
}
}
Рамки должны зарегистрировать метод OnClick как обработчик события для события MouseEvent.CLICK, поскольку он перекрывает реализацию по умолчанию.
Зачем мне нужна реализация по умолчанию? Поскольку я хочу, чтобы классы переопределяли поддерживаемые методы, тогда будет ошибка времени компиляции, если пользователь попытается использовать неподдерживаемое событие.
Это имеет смысл?
Зачем вам это нужно? Можете ли вы предоставить какой-то контекст? – jtbandes
Согласовано. Мне интересно посмотреть, какая проблема это решает. –
Надеюсь, это объяснит это. –