|
|
|||||
Регистрация: Dec 2008
Сообщений: 41
|
Инжект связей при компиляции
На сцене есть прямоугольник - Sprite.
Так же в проекте есть класс RotateSprite. public class RotateSprite extends Sprite { public function RotateSprite() { addEventListener(Event.ENTER_FRAME, _rotate); } private function _rotate (event:Event) { this.rotation += 1; } } Или можно допустить, что существует некий третий класс, который при компиляции заинжектит связь... Если такое возможно, то как это реализовать? Какие либо махинации с метаданными?... Ещё варианты?... Конечная цель сего действия - крутящий прямоугольник на сцене. Код класса RotateSprite до момента компиляции и соответственно после компиляции - БЕЗ ИЗМЕНЕНИЙ!. В RotateSprite дописывать руками ссылку на прямоугольник - нельзя! |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Добавлено через 5 минут Можно сделать "декорирования" или при добавлении в список отображения передавать прямоугольник в метод, где его будет крутить. Но это не будет подменой extends. |
|
|||||
Такого инжекта в as3 нет. Если пользуетесь fla -> swc/swf в качестве библиотеки с ассетами, отнаследуйтесь от класса нужного мувиклипа, в котором и будет нарисован прямоугольник. Либо нарисуйте прямоугольник в graphics-контейнере экземпляра класса RotateSprite, либо создайте экземпляр прямоугольника в этом классе, либо передайте ссылку на этот прямоугольник и рулите им (композиция).
__________________
тут я |
|
|||||
Товарищи, мне кажется, что вы забываете про управление / передачу контекста вызова. Например:
В AS3 полная свобода в плане динамики и полиморфизма: вы можете, например, расширять (наследоваться от) класса, который 1) расширяет Proxy; 2) подменяет контекст по вашему желанию. Таким образом можно реализовать хоть множественное наследование. Я уж не говорю про некое подобие конструирования классов и их экземпляров в рантайме
|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
|
|||||
Разумеется, множественное наследование аналогично Пайтоновскому в AS3 так просто не получить. Да и зачем. Эзотерика это всё, но если очень надо - пожалуйста:
1. Вспоминаем реализацию наследования на прототипах, например, как в JS; 2. Смотрим вот это; 3. Примешиваем Proxy, контролируем каждый access & call, и перенаправляем куда надо, не забыв про подмену контекста исполнения; 4. Можно реализовать гетДеседентс и доступ к атрибутам ( ".." и "@" ) 5. А ещё можно попытаться найти мой старенький MagicObject, замешанный как раз на Proxy. Там гордиться особо не чем, но идею объяснит. Добавлено через 1 минуту А вообще есть Haxe для таких вещей. Добавлено через 7 минут MagicObject & post. |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
Часовой пояс GMT +4, время: 12:52. |
|
« Предыдущая тема | Следующая тема » |
Теги |
Инжект связей , связи , связь кода с объектом |
Опции темы | |
Опции просмотра | |
|
|