Как работает Flash? - PullRequest
       1

Как работает Flash?

5 голосов
/ 27 ноября 2008

Сейчас я разрабатываю небольшой графический движок для холста, ориентированный на игру, и искал несколько источников для подсказок, которые можно применить к дизайну моей системы. Но, очевидно, самое проверенное решение - Flash, поэтому мне было интересно, как Flash построен. Я нашел несколько источников о работе Flash, но большинство из них очень просты и ориентированы на дизайнеров и художников, но я хотел бы узнать больше о внутренностях системы. Мой следующий шаг - загрузить исходный код Flex и просмотреть его, но перед этим я хотел бы получить «руководство», которое поможет мне лучше всего провести время в кодовой базе. Любые предложения хороших интернет-ресурсов и статей?

Спасибо!

Редактировать: Чтобы прояснить ситуацию, я ищу внутреннюю работу Flash, потому что моя цель здесь - сделать что-то похожее на Flash, но, конечно, не настолько мощное, которое работает в браузер без плагинов. Увы чистый HTML + Javascript.

Кроме того, причина того, что я не использую Flash как таковую, заключается в том, что он не соответствует моим требованиям (бесплатно + нет плагина), и потому что у меня нет поддержки Flash на моих целевых платформах, кроме того, что я заново изобретаю колесо здесь для удовольствия и самообразования. Ох, и я уже знаю, как использовать Flash:)

Ответы [ 3 ]

8 голосов
/ 27 ноября 2008

Ну, в корне вашего Flash-содержимого находится объект сцены (экземпляр класса Stage ). Этот этап является корневым узлом дерева экранных объектов, любой из которых может содержать графические объекты (строки, текстовые поля и т. Д.) Или другие экранные объекты. Как работает Flash, так это то, что X раз в секунду проигрыватель Flash отображает все дерево отображения на экране. Плеер также собирает пользовательский ввод ( KeyboardEvents и т. Д.) Из ОС и доставляет их любому объекту, который для них зарегистрирован.

Ваша задача как создателя контента состоит в том, чтобы заполнить эту стадию дочерними элементами (типа DisplayObject или любым подклассом), которые движок Flash отобразит на экране для вас. Вы можете заполнить его низкоуровневыми дочерними элементами, такими как Sprite и MovieClip и TextField, которые являются основными строительными блоками содержимого Flash, или создать такие экземпляры, как ScrollBar или DataGrid , которые компоненты более высокого уровня с обычной сложной внутренней работой.

И, конечно, вы можете расширить любой из этих классов, включив в него свои собственные визуальные элементы или логику классов, или создать невизуальные классы, которые не являются частью дерева отображения. И вы можете загрузить другой флэш-контент, или установить HTTP-соединения и т. Д. И т. Д.

Это все, если вы имеете в виду AS3. Это помогает? Если нет, то вам придется сделать свой вопрос более конкретным. ;)

1 голос
/ 27 ноября 2008

Если вы собираетесь создать игру, держитесь подальше от Flex. И, честно говоря, просмотр исходного кода для этого может сбить вас с толку, а не помочь вам. Flex очень хорош для приложений с интенсивным графическим интерфейсом и помогает ускорить разработку таких продуктов. Это, однако, не очень быстро и не особенно хорошо подходит для игр.

Одним из основных преимуществ Flash является то, что вам на самом деле не нужно особо заботиться о «внутренней работе», хотя естественное понимание их естественным образом помогает.

Flash Lite довольно сильно отличается от взрослого старшего брата, так что не обращайте на это особого внимания.

Кроме того, ради любви к Богу, изучите Actionscript 3.0 и держитесь подальше от Actionscript 2. 3.0 лучше всех возможных способов (по крайней мере для нас, программистов).

РЕДАКТИРОВАТЬ: уточнить: Есть некоторая путаница в отношении термина Flash. Здесь есть три части: плагин, который работает в вашем браузере, «сама технология» и инструмент авторинга. Все это просто называется Flash. Гибкость еще более запутанная. Это фреймворк, работающий поверх Flash. Во многом как скажем, Swing для Java (я никогда не использовал это, чтобы сравнение могло быть совершенно неверным). Все, что вы можете сделать во Flex, можно сделать и во Flash. Flex является бесплатным открытым исходным кодом, но IDE, Flex Builder - нет. Flex Builder очень полезен, даже если вы делаете «чистые» проекты ActionScript. Но есть также много более дешевых альтернатив. Я лично предпочитаю FlashDevelop .

0 голосов
/ 27 ноября 2008

Лучшая ссылка, которую я нашел (хотя и довольно пафосная):

Архитектура Flash Lite

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