ActionScript и JavaScript очень похожи по своей сути. В некотором смысле вы можете думать о ActionScript как о более надежной библиотеке, наслоенной поверх ECMAScript. Есть несколько отличий (а именно ActionScript любит думать о себе как о оопе на основе классов, где JavaScript основан на прототипах), но если вам удобно с одним, то вам должно быть легко с другим.
ActionScript имеет систему наследования, основанную на классах, и поддерживает интерфейсы (но вы все равно можете использовать магию прототипов, если хотите, но это не рекомендуется). Он также поддерживает строго типизированные объекты.
var object:MovieClip = new MovieClip();
Это будет строго печатать переменную object
как экземпляр класса MovieClip
.
Если ваша игра очень требовательна к 3D, вы захотите взглянуть на новые классы Flash 11 Stage3D и Context3D . Они предоставляют низкоуровневый API с ускорением на GPU, который до Flash 11 был невозможен. Вы можете делать интересные 3D-вещи с Flash 10, но вы обычно используете drawTriangles () , который не был аппаратно ускорен. Flash 11 в настоящее время находится в бета-версии, но она должна выйти очень скоро. Существуют бета-версии Flex SDK, которые позволяют компилировать данные для проигрывателя Flash 11.
Существует также несколько 3D-библиотек, которые построены поверх этих низкоуровневых API. Если вы поглядываете на них, их легко найти. Но я бы рекомендовал получить четкое представление о том, как работает ActionScript, прежде чем углубляться в библиотеки 3D.
HUD во флэш-памяти прост, независимо от того, используете ли вы Flash 11 или Flash 10. Для «классической» флэш-памяти вы захотите ознакомиться с концепцией дерева отображения , которую они используют во флэш-памяти. Просто убедитесь, что порядок отображения правильный, и ваш HUD DisplayObject
всегда будет "поверх" вашего рендеринга DisplayObject
Для Flash 11 объекты StageVideo
и Stage3D
располагаются непосредственно над сценой, но за всеми обычными вспышками DisplayObjects
, прикрепленными к сцене. Поэтому в этом случае я бы позволил API Stage3D
позаботиться обо всех ваших тяжелых операциях рендеринга и использовать традиционный стек отображения для элементов HUD.
Возможно, вы захотите взять себе Flash Builder поверх Flash CS5.5. Если вы программист (как я полагаю, поскольку вы публикуете здесь), это не заставит вас кровоточить, пытаясь кодировать. FB основан на затмении, и это довольно прилично, но не идеально. Но если вы возьмете бесплатный Flex SDK и не возражаете против использования командной строки, вы можете приступить к компиляции SWF-файлов довольно быстро и дешево (иначе бесплатно).
Кроме того, посмотрите на FlashDevelop . Я не использовал его некоторое время, с тех пор, как переключился на FB для его встроенного профилировщика, но он может быть вам полезен.
Импорт изображений и аудио довольно прост с Flex SDK.
[Embed(source="logo.gif")]
public var LogoBitmapData:Class;
, а затем создать экземпляр класса:
var bitmapData:BitmapData = (new LogoBitmapData()) as BitmapData;
А потом используй его там, где захочешь.
Просто заметка о Flex. Flex - это набор библиотек пользовательского интерфейса, созданный поверх обычного Flash API. Flex SDK включает в себя библиотеки и инструменты для компиляции файлов кода MXML и ActionScript. Таким образом, несмотря на то, что вы должны использовать Flex SDK для компиляции приложений Flex, вы также можете использовать его для компиляции прямого кода ActionScript.
Есть встроенные классы для Vector3D и Matrix3D .
Что касается учебных пособий или ссылок, то мне нечего предложить. Я обнаружил, что большая часть информации в Интернете о программировании на ActionScript довольно удачна (если вы можете найти что-то, что не написано графическим дизайнером). Я бы покопался в здесь и посмотрел, сможешь ли ты найти что-нибудь, что имеет для тебя смысл.
Очевидно, я мог бы рассказать об этом гораздо больше, но, надеюсь, это даст вам толчок в правильном направлении.