Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Множественное наследование или траблы с SWC (http://www.flasher.ru/forum/showthread.php?t=177578)

Universe 03.04.2012 15:09

Множественное наследование или траблы с SWC
 
Столкнулся с проблемой, попробую описать её на простеньком примере:
1. Есть fla файл в котором есть графика - круглый, зелёный шарик.
2. Есть класс который описывает поведение шарика, Ball.as
3. Всё это нужно запихнуть в SWC и использовать в FlashDevelop.
4. Возникает первый вопрос: Для того чтобы я мог нормально юзать свою графику мне необходимо отнаследоваться от класса который создал сам флеш в своих Properties (допустим какой-то Ball_swc). Получается у меня есть реальный класс и тот что создаётся в момент компиляции. В итоге Ball extends Ball_swc и вроде бы всё ок. Но... мне нужно сейчас отнаследовать Ball от более общего класса BasicBall, но при этом сохранить всю доступную мне в swc графику. В итоге получается конструкция в которой уникальными всегда являются Ball и Ball_swc, но общим для всех будет класс BasicBall...как я могу реализовать подобную конструкцию?

i.o. 03.04.2012 15:43

Вероятно интерфейсами.

fljot 03.04.2012 16:05

см. мои посты http://www.flasher.ru/forum/showthread.php?t=147884

Метод мутный, но позволит решит твою проблему именно в таком виде, как ты её обозначил. Т.е. во Flash IDE указываешь пару class+baseclass BallAsset+Ball, при этом пустой класс Ball (просто extends MovieClip) зашивает в swc, а при компиляции подменяется на реальный Ball extends BasicBall.. Ну или сразу Ball+BasicBall.

Simplifier 03.04.2012 18:48

А почему Ball_swc не наследовать от BasicBall? Или хочешь, чтоб в Ball_swc была чистая графика? Тогда функциональность из BasicBall в Ball можно добавить композицией вместо наследования

Universe 03.04.2012 19:45

Решил сделать через code behind, как советовал fljot т.к. мне этот метод показался самым простым...т.е. я наследуюсь от BasicBall, это мой базовый класс. А в FD уже екстендю свой Ball от Ball_swc. Какие минусы есть у подобного подхода? И можно пару статей по созданию композиции? А то я никогда их не создавал

fljot 03.04.2012 20:11

@Universe

ты понял, что по моему способу реальные классы в swc не должны попадать? Чтобы компиляция fla-swc была безболезненная (мало ли что в базовом классе и его зависимостях), быстрая и чтобы не надо было перекомпиливать swc при изменении базовых классов?

Dukobpa3 03.04.2012 20:17

Я за композицию.
Ball_swc - просто мувик, т.е. графика.
Ball - наследуется от BallBasic и содержит в себе графику - Ball_swc

in4core 03.04.2012 21:51

Dukobpa3 - все верно описал, и даже немного перегнул, мне кажется достаточно
class Ball extends Ball_swc , но в зависимости от конкретной задачи, возможно и такое поведение , как показал автор.
Такая композиция верна по всем хар-ам


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

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