Flex Games: использование Canvas и UIComponent? - PullRequest
2 голосов
/ 10 октября 2009

Для разработки простых игр с помощью Flex SDK, каковы последствия использования Canvas объекта по сравнению с UIComponent объектом в качестве поверхности для рисования? Есть ли проблемы с производительностью? Методы вообще одинаковы? Похоже, что в большинстве примеров кода, которые я нашел, используется UIComponent. Это обычное дело или есть причины?

Я уже знаю одно странное отличие - я разработал простую игру в понг, используя:

    public class MyGameCanvas extends UIComponent

, а затем решил заменить UIComponent на Canvas. Это вызвало сбой линии:

addChild(paddle);

Проведя слишком много часов в поисках, я, наконец, обнаружил, что объект Canvas требует:

rawChildren.addChild(paddle);

из-за цепочки наследования объектов, спрайты выше, чем Canvas.

Но это не похоже на причину предпочтения одного класса другому. Есть ли какие-либо конкретные причины? Благодаря.

Обновление: Хорошо, я предполагаю, что Canvas отсутствует, а UIComponent включен. Единственная причина, по которой я даже попробовал объект Canvas, - это имя. Я имею в виду, это Canvas - разве вы не должны рисовать? :)

Итак, второй вопрос, который возник, касается использования Flex SDK (и я не знаю, должен ли это быть совершенно новый вопрос, или все в порядке).

Однако я должен кое-что подтвердить, будучи новичком во Flex и различной терминологии. Я предполагаю , что люди говорят, что я не должен использовать MXML для игр, когда они сказали Flex SDK . Поскольку я думал, что Flex SDK был тем, что предоставил компилятор, который генерирует файлы .swf. Иначе, где / как бы я вообще скомпилировал AS3?

Если предположить, что это так, то мой вопрос будет касаться пригодности использования MXML и AS3 для (простых) игр. Исходя из того, что я читал об обоих, казалось, что предполагаемое использование их было MXML для элементов интерфейса и AS3 для всего остального. Разве это плохо для MXML?

Джон С>

Ответы [ 3 ]

3 голосов
/ 11 октября 2009

Я думаю, что нет никакого смысла использовать flex sdk для разработки игры. Flex SDK был разработан с учетом разработки приложений, поэтому вы не должны использовать его для создания игр.

Есть ли у вас конкретные причины использовать его вместо простого проекта AS3?

2 голосов
/ 12 октября 2009

Canvas имеет множество дополнительных кодов макета, а также полосы прокрутки. Это определенно тяжелее, чем один UIComponent. Также важно знать, что Canvas требует, чтобы все дочерние элементы были подклассами UIComponent. Использование rawChildren для добавления не UIComponent является хаком, если только вы не создаете какой-то «хром» для контейнера Flex (полосы прокрутки на Canvas и границы / фон в Panel).

Я согласен с PeZ, хотя. Flex Framework, вероятно, не является правильным выбором для игры. Если у вас нет игрового интерфейса с такими вещами, как DataGrids, Trees, Charts и т. Д., Вы можете получить меньший и более оптимизированный SWF без Flex.

0 голосов
/ 11 октября 2009

Если вам не нужны дополнительные вещи на холсте, такие как полосы прокрутки, это, очевидно, причина для предпочтения UIComponent. Холст - это просто более тяжелый объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...