![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Здравствуйте, как в Main вызвать у экземпляра RedBall метод его предка Ball?
public class Main extends Sprite { public var vec:Array = new Array; public function Main() { var ball:RedBall= new RedBall(); Ball(ball).name(); // выведет RedBall хотя по идее должен Ball } } public class Ball { public function Ball() { } public function name():void { trace("Ball") } } |
|
|||||
|
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Цитата:
Создайте в Ball метод и не переопределяйте его, тогда можно будет вызвать |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Я удивился, то потому, что в AS2 сработал бы метод именно Ball т.е. метод типа к которому мы приводим объект. Что бы это обойти там мне пришлось использовать интерфейсы, думал и в AS3 также.
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
А можно пример для AS2?
|
|
|||||
|
Регистрация: Jun 2009
Сообщений: 61
|
Сделал так
Добавил в класс RedBall метод name1 public class RedBall extends Ball { public function RedBall() { } public function name1():void { super.name() } public override function name():void { trace("RedBall"); } } |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
udaaff
Увы, дело было давнишние и код утерян. Правда вполне возможно, что такое свойство AS2 я нашел только благодаря кривизне своих рук! ![]() stflasher Не-не-не, так не интересно! Вот если бы можно было вызвать метод из Main не трогая другие классы... |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 61
|
А зачем так извращаться? Задача была такая "как в Main вызвать у экземпляра RedBall метод его предка Ball?"
Модифицируйте класс RedBall до добавления ещё одного метода и юзайте в Main'e. Вроде больше никак нельзя. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:53. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|