![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Цитата:
Добавлено через 2 минуты Цитата:
__________________
ranga |
|
|||||
|
Modus ponens
|
baseObjectPtr:curClass= new curClass();
Вот эта строчка - это что? Метка цикла? Объявление переменной (без var)? curClass нельзя использовать в качестве типа, тип должен быть известен на момент компиляции. А зачем 2 функции, и одну из двух оверрайдить, если можно только одну, и ее же оверрайдить?
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
|
Да уж, варианты интересные, особенно порадовал с использованием ByteArray ))
Пожалуй, оставлю, как есть ) |
|
|||||
|
Как вариант можно сделать метод applyAllParametrs, чтобы метод clone выглядел вот так:
Это решит проблему.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
только наоборот, как я понимаю Если нужна компактность, то вот как такой вариант: public class BaseObject { ............... public function clone():BaseObject { var _clone:BaseObject = new BaseObject(); _clone.copyFrom( this ); return _clone; } public function copyFrom( source:BaseObject ):void { this.id = source.id; this.name = source.name; this.type = source.type; } ............... } public class WorldObject extends BaseObject { private var currAnim:String; override public function clone():BaseObject { var _clone:WorldObject = new WorldObject(); _clone.copyFrom( this ); return _clone; } override public function copyFrom( source:BaseObject ):void { super.copyFrom( source ); if( !(source is WorldObject) ) return; this.currAnim = (source as WorldObject).currAnim; } } Добавлено через 14 минут Ну вот вообще компакт ))) public class BaseObject { ............... public function clone():BaseObject { return copyTo( new BaseObject() ); } public function copyTo( dest:BaseObject ):BaseObject { dest.id = this.id; dest.name = this.name; dest.type = this.type; return dest; } ............... } public class WorldObject extends BaseObject { private var currAnim:String; override public function clone():BaseObject { return copyTo( new WorldObject() ); } override public function copyTo( dest:BaseObject ):BaseObject { super.copyTo( dest ); if( dest is WorldObject ) (dest as WorldObject).currAnim = this.currAnim; return dest; } } Последний раз редактировалось i.o.; 01.06.2010 в 15:32. |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:19. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|