Вчера в чате FPUG по инициативе Александра Козловского случилась дискуссия о компиляции Flex-приложений из-под Flex Builder и из командной строки (mxmlc). И по результатам этого обсуждения Александр выложил короткую статью: Как узнать параметры компиляции во Flex Builder. Кстати, читайте у него же: Почему люди не используют интерфейсы?
Все, с чем я не согласен в статье "Программирование под флэш платформу", я уже сказал ее автору. Он кое-что изменил. Я продолжаю не соглашаться со многими высказанными в статье мыслями, и при этом считаю ее очень полезной.
И мне очень интересно: а что вы скажете вы на такие слова: "Лично для себя я не вижу особой пользы от MXML, с тем же успехом можно генерировать и ActionScript-код из режима дизайнера".
Я подозреваю, что не только автор этой статьи так считает. А может быть, он по-своему прав? В общем, читайте: "Программирование под флэш платформу" от Yzh (о нем).
Продолжая неделю украденных заголовков, выкладываем еще несколько трофеев и ссылку на их источник, упустить который просто нельзя.
Фла-Мастер публикует множество хороших статей в ЖЖ, как переводных, так и собственных: Интерфейсы AS3 (с великолепным примером из жизни резюме Пупкина), Шаблон Модель-Представление-Контроллер — это Глава 12, "Model-View-Controller Pattern" из книги ActionScript 3.0 Design Patterns (O’Rеillу).
Есть и статьи по Flex: Клиент-серверный обмен данными — Глава 16, "Remote Data Communication" из книги Prоgrаmming Flеx™ 2 (O’Rеillу)., Использование Эффектов и Переходов — глава 11 той же книги.
Многие статьи состоят из нескольких частей — поэтому не пропустите, читайте весь журнал Фла Мастера.
Для меня метод, в общем, уже не нов, но думаю многим пригодится:
"Скриншот флеш клипа нарисованого на основе динамических даных и сохранение картинки в формате PNG на сервер".
Полезно: кроме AS3-кода, там есть и код cерверного PHP-скрипта, сохраняющего полученный из флэша массив байтов в виде файла на сервере.
Дим, спасибо за ссылку :)
Опубликовано еще в августе 2006, но кто ищет в архивах сайтов, когда нет времени читать даже все новости? Не пропустите: перевод серии статей Simon'a Wacker'a об Инверсии Контроля на OrangeFlash.
Merlin и Dimchansky написали статью о том, как создать полноценный визуальный редактор текста во Flash (WYSIWYG, или Rich Text Editor), наподобие того, что продается на FlashLoaded за $129 (для одного сайта, а OEM-лицензия стоит $749).
И вообще, парни жгут: читайте статью Знакомство с Flash 9 и ActionScript 3.0 на примере создания аркадной игры от Merlin (исходники -- там же).
Один эволюционирующий идиот в своем очередном делириозном каталепсисе опубликовал статью под вызывающим названием "Техника "слабого связывания" в разработке Flex приложений". Форменное безобразие, скажу я вам. Кто таких к компьютеру пускает? А статью лучше вобще не читайте. Мало ли чего понапишут.
Nox Noctis перевел с английского статью о базовых алгоритмах определения столкновений. В статью вошли "теорема о разделяющих осях для разных геометрических фигур, а также приёмы определения столкновений для маленьких и быстро движущихся объектов". Причем большая пиксельная длина этой статьи во многом определена большим количеством просто офигенных интерактивных ее иллюстраций.
Похоже, эта статья -- не последняя: Нокс собирается перевести еще несколько статей этих же авторов, о чем написано на странице "N: уроки по программированию игр во флэше". Почитайте там примечания переводчика внизу.
Спасибище тебе, Нокс!
Это очень похоже на самый основательный труд на тему "Flash, Eclipse, FDT". Читайте статью Antares'a "FDT: еще 6 часов в ваших сутках".
Нокс написал фундаментальный труд на классическую тему "Взаимодействие Flash — JavaScript и навигация по флэш-сайту".
Вот его собственная аннотация: "Рассматриваются все виды взаимодействия Flash и JavaScript на примере решения практической задачи: заставить работать кнопки back/forward броузера на флэш-сайте."
Кстати, а у Нокса уже много статей.
Constantiner сдержал слово и опубликовал свой доклад для семинара New Media "Разработка Flash-проектов с использованием Apache Ant". Качество получившейся статьи -- лучше увидеть.
(Добавлено 21.02.2006:)
Перед прочтением статьи стоит посмотреть презентацию, разъясняющую происхождение, назначение, достоинства, недостатки, процесс установки и рекомендации по использованию Apache Ant при разработке Flash-проектов в легкой, доступной форме(185 Кб).
Кстати, данная статья может служить также и руководством к настройке среды Eclipse и FDT -- добрая ее половина посвящена именно этому.
Подтверждая широко распространившиеся в последнее время слухи о том, что, цитирую, "У Человека Дождя конечно самый лучший блог, который (без всякой иронии) принес флэш-аудитории в рунете много нового", тот самый Человек Дождя, дитя ноября, пароход и стеклорез, и просто кровожадный флэш-маньяк Миша Майк Майкл "Antares" Клишин Первый публикует на своем сайте уже скандально популярную более чем в 70 странах статью под кодовым названием "ActionScript 3.0 : тутор #0, ImageLoader".
На самом деле это действительно первая статья-туториал по ActionScript 3 из замеченных мной, а если у кого-то есть еще -- то я с радостью опубликую ссылки здесь в новостях.
Класс ExternalInterface предназначен для полноценной связи между ActionScript и внешней средой, содержащей Flash Player. Класс ExternalInterface с большим перевесом заменяет собой целую связку старых методов типа getURL("javascript:.."), fscommand и setVariable. В проектах, рассчитанных под Flash Player 8, рекомендуется использовать именно ExternalInterface, как, например, в этом работающем и наглядном примере External Interface от Мартина.
ExternalInterface
getURL("javascript:..")
fscommand
setVariable
Данная статья—это адаптация уже переведенной на русский язык части документации к Flash 8 к формату статьи, поэтому в комментариях к данной записи можно писать замечания по переводу.
Читать: External Interface—новый класс для связи Flash Player со внешней средой.
Nirth перевел с английского языка статью Карлоса Ровиры и опубликовал ее на своем сайте: Разработка Open Source Flash приложений.
Цитата:
"Если вам нравится технология Flash и Open Source разработка, то вы счастливчик, ибо добрые люди из Flash-сообщества разрабатывают по-настоящему хорошие «инструменты», которые можно интегрировать в уже существующие Open Source программы. Результат: Среда разработки для Flash, о которой можно мечтать. Теперь больше не нужно платить за лицензии, и у вас есть возможность модифицировать исходный код любой программы. На протяжении данной статьи я хочу собрать все «кусочки» которые нам нужны. Другими словами, я хочу рассмотреть вместе с вами мощную связку состоящую из MTASC-компилятора и Eclipse IDE (а также встраиваемые модули (plug-ins) для ActionScript редактирования и просмотра SWF). Лучше всего то, что, в некоторых случаях вы даже можете разрабатывать целые приложения не «вылезая» из предложенной среды."
И эта статья -- далеко не единственное, что вы можете найти на сайте Nirth'a onorange.com ;-)
David Vexler написал статью "Создание компонента для Macromedia Flash MX 2004 на основе ActionScript 2.0 класса".
Слово -- автору:
"Цель данной статьи -- донести в очередной раз до начинающих флэшеров все плюсы компонентов и нового языка ActionScript 2.0. В данной статье мы будем делать маленький компонент (и класс для него), который поможет нам скрыть адрес нашей почты (и не только нашей) от злостных СПАМ роботов".
Так воздадим же злостным Спамороботам по заслугам, прочтем статью "Создание компонента для Macromedia Flash MX 2004 на основе ActionScript 2.0 класса", создадим компонент, -- и пусть они сам едят свой спам!
"Компьютеры упрощают многие вещи, но многие вещи, которые они могут упростить, просто не нужны. (Энди Руни). Чем плох Flash? Да, собственно, ничем. Более того, Flash просто великолепен! Как по-своему великолепен молоток: трудно придумать что-то лучшее для забивания гвоздей. Но пытаться построить при помощи только лишь молотка целый дом — далеко не самый рациональный шаг".
Чем плох Flash? Да, собственно, ничем. Более того, Flash просто великолепен! Как по-своему великолепен молоток: трудно придумать что-то лучшее для забивания гвоздей. Но пытаться построить при помощи только лишь молотка целый дом — далеко не самый рациональный шаг".
Статья спорная но стоящая: "Чем плох Flash? Или как ложка дегтя в бочке меда придает меду пикантный вкус".
"В четверг Macromedia заняла центральное место на конференции Flashforward2005 в Сан-Франциско, пообещав значительные перемены в своем ПО флэш-анимации. Главный архитектор ПО Кевин Линч обратился к собравшимся, почти до отказа заполнившим Herbst Theater, чтобы описать детали будущих новшеств, содержащихся в предстоящем выпуске плеера Flash 8 с кодовым названием Maelstrom и инструменте разработки с кодовым названием 8Ball. Линч рассказал также о планах в отношении FlashCast, новой системы разработки, которая поможет мобильным операторам исполнять разнообразные флэш-приложения. «Это крупнейшее обновление за всю историю Flash, — сказал Линч. — Мы существенно улучшили производительность плеера и добавили еще больше графической экспрессии. Мы достигли принципиально нового качества видео и текста."
Главный архитектор ПО Кевин Линч обратился к собравшимся, почти до отказа заполнившим Herbst Theater, чтобы описать детали будущих новшеств, содержащихся в предстоящем выпуске плеера Flash 8 с кодовым названием Maelstrom и инструменте разработки с кодовым названием 8Ball. Линч рассказал также о планах в отношении FlashCast, новой системы разработки, которая поможет мобильным операторам исполнять разнообразные флэш-приложения.
«Это крупнейшее обновление за всю историю Flash, — сказал Линч. — Мы существенно улучшили производительность плеера и добавили еще больше графической экспрессии. Мы достигли принципиально нового качества видео и текста."
Читать всю статью: "Flash на пути больших перемен" на сайте netz.ru.
Оргинал статьи на английском: "Big changes in Flash".
// via Apellz | RuFlash
George Forest недавно открыл свой сайт, посвященный программированию на ActionScript и разместил на нем статью об оптимизации кода и графики во Flash (длинную). В статье описываются особенности оптимизации графики и программного кода ActionScript для ресурсоемких игровых приложений, 3D-моделирования и обработки массивов данных.
Приятного чтения!
"AS2 классы привнесли новые понятия в программирование на ActionScript. Приватные и публичные методы, статические члены класса и т.п. Однако, тот факт, что AS2 класс может быть откомпилен в 6-ю версию плеера говорит от том, что в самой сути кода ничего не изменилось, что всё это реализуемо в AS1. Как?"
Читаем дальше на сайте Ивана Дембицкого: "Нарядная инициализация AS1 классов"
В среде Флэш-разработчиков, как дизайнеров, так и программистов, довольно часто возникает вопрос, почему частота кадров в 31 кадр/с считается оптимальной для большинства SWF-документов.
Уже невозможно узнать, кто первым объяснил это, но давайте запишем данное объяснение здесь, просто для того, чтобы можно было на него ссылаться при необходимости (а вот -- англоязычный аналог, Magic Framerate by Brajeshwar, и еще один, Magic Framerate Info by Mike Williams).
Итак, речь идет о так называемой "Волшебной частоте кадров" ("Magic Framerate") -- когда значение частоты кадров равняется нечетным числам типа 21 и 31. Вопрос в том, почему именно частоты кадров такого рода считаются оптимальными. Ответ заключается в том, что значение частоты кадров, FPS, хранится в числе с плавающей запятой формата "16/16" (можно также встретить обозначение "16.16"). В таком числе 16 бит отводится под целую часть, и 16 бит -- под дробную. На практике арифметические операции с такими числами довольно ограничены в точности -- и с каждой новой операцией накапливается ошибка. При использовании FPS в 21 и 31 эта ошибка минимальна.
Например, заданное разработчиком значение частоты в 24 кадр/с сначала преобразовывается в ряд длительностей каждого кадра, равных 41 миллисекунд; затем ряд длительностей фактически преобразовывается обратно в частоту кадров, но частота после этих преобразований равна уже 24,39 кадр/с -- из-за неточностей при арифметических операциях с числами типа "16/16". А поскольку длительности кадров хранятся как относительные значения, а не как абсолютные, то в результате накапливается действительно значительное искажение частоты кадров. На Макинтошах это искажение больше, на PC -- меньше, но оно достаточно большое в любом случае.
Числа (21 и 31 потому и называются "Волшебными Частотами Кадров", что при их использовании отклонение реальной FPS от заданной разрабочиком минимально. Но, как вы видите, реальная причина преимуществ этих чисел лежит достаточно глубоко, так что лучше просто запомнить их (21 и 31), а не текст этого объяснения (в конечном счете мало что объясняющий тому, кто не погружен в математику).
А тем, кто желает в нее погрузиться -- ссылка: Введение в математику для чисел с фиксированной запятой.
Несколько новостей сразу:
[update #1] Затем Иван добавил к Уроку технологию создания Модных Волн.
[update #2] 2004-12-13 Еще одно обновление: Класс Path / Движемся по нарисованому пути.
[update #3] 2004-12-16 Обновление: Взаимодействие сети с мышью. (Попробуйте удерживать кнопку мыши нажатой).
Syo опубликовал на своем замечательном сайте для флэш-рабработчиков новую статью, рассказывающую о процессе создания игры Sokoban. Статья написана на русском языке, содержит иллюстрации, исходники и возможность комментирования.
Джордж Форест доступно, по-русски написал статью о программировании классов в ActionScript 2. Надеемся, эта статья пригодится всем, кто изучает (или только начинает изучать) этот замечательный язык. Тем более, что темой статьи является такой распространенный и востребованный предмет, как создание систем частиц (в данном случае -- снегопада). Статья компактна, но при этом содержит в себе не только описание и исходные коды готовых классов, но и рекомендации по их расширению. Читать здесь: "Программирование классов в AS2. Снегопад."
Целью данных заметок было описание собственного опыта, первых шагов при работе с PrimalScript 3.1. Этим и займемся.
Сначала нам не понравилось: среда казалась недружелюбной, сложной, глючной и непривычной. Но стоило произвести необходимые настройки рабочей среды и проекта, -- и отношнение к PS3 изменилось радикально.
Следующий пример создания простейшего проекта описывает все необходимые для этого шаги. Помните: это только одна из возможных последовательностей действий, и в ходе работы вы несомненно обнаружите свои, лучшие варианты.
В данной последовательности будем предполагать, что работы ведутся в каталоге "D:\Swf\Projects\". Если у вас этот путь будет иным, не забудьте учесть это при воспроизведении следующих шагов:
В результате вы увидите структуру проекта (пока это всего строка и папка) в Нексусе Проекта. Познакомимся с Нексусом. "Нексус" означает "связующее звено", "ядро" (см. nexus и нексус). Nexus -- это боковая панель (слева) окна PS3. Эта панель предназначена для навигации (и управления) по: рабочему пространству и проектам (Workspace Nexus), классам (Sourcebrowser Nexus), файлам (File Nexus), справке (Info Nexus), сниппетам (Snippets Nexus) и т.д. Для этого в ней предусмотрены раличные закладки, отображающиеся внизу панели.
"Нексус проекта" предназначен для управления файлами и каталогами проекта (в том числе и файлами классов, как увидим позже). Чтобы увидеть его, выберите первую закладку в панели Нексуса. В ней вы увидите корневой каталог проекта. Выше него находится строка-ссылка на файл TestProject.pws - в нем и хранится описание проекта и его настроек. Это обычный XML-файл.
Только что мы создали рабочее пространство с первым проектом в нем. В дальнейшем можно будет добавлять рабочее пространство новые проекты, если будет такая необходимость.
trace("Hello PrimalScript World :)");
Сохраните файл (Ctrl+S) как "D:\Swf\Projects\TestProject\Scripts\script.as".
Заметьте, если в нексусе проекта удалить "script.as" (например, выделить его и нажать клавишу Delete), файл изчезает в нексусе проекта, но его физического удаления с диска не происходит. Дело в том, что нексус проекта -- это не просто дубликат структуры каталогов на вашем жестком диске, хотя им он тоже может быть. На самом деле, он может даже содержать несуществующие (виртуальные) папки, например, для включения в проект файлов, находящихся на другом разделе диска: это очень пригодится нам при работе с более сложными проектами, с использованием классов, например. В данном простейшем примере мы не будем использовать классы (для упрощения первых шагов).
Для создания FLA-файла воспользуемся языком JSFL. Одна из наших целей -- максимально использовать PrimalScript как автономную среду. Поэтому:
Напишите в этот новый файл код подобный следующему:
// создаем новый документ var doc = fl.createDocument(); // инклудим файл, созданный на третьем шаге: var firstFrame = fl.getDocumentDOM().getTimeline(0).layers[0].frames[0]; firstFrame.actionScript='#include "Scripts/script.as"'; // сохраняем документ fl.saveDocument(doc, "file:///D:/Swf/Projects/TestProject/testprimalproject.fla"); // сразу же тестируем doc.testMovie(); // закрываем исходный файл fl.closeDocument(doc);
Сохраните файл как "D:\Swf\Projects\TestProject\Scripts\createFla.jsfl"
6. Добавьте файл "createFla.jsfl" в проект аналогично тому, как этобыло сделано на шаге 4.
Теперь осталось только запустить мотор. Естественно, есть несколько (множество) способов сделать это. Воспользуемся таким: мы заставим Flash MX выполнять JSFL-код, записанный в нашем jsfl-файле "D:\Swf\Projects\TestProject\Scripts\createFla.jsfl". Для этого нужно только сообщить среде PrimalScript, что мы этого хотим.
Меню Tools > Options... Environment > Languages > Flash JSAPI. В первое текстовое поле вводим путь к Flash.exe. Второе текстовое поле (Arguments) можно заполнить, нажав кнопку со стрелкой справа от него и выбрав из выпадающего списка пункт ("Path and name of file in the active editor window (driver,folder,name and extension)"; Можно просто ввести в это текстовое поле строку "$File$". Жмем ОК.[скриншот]
Только что мы сообщили, среде PS3.1, что файлы с расширением JSFL посредством Flash.exe интерпретируются как скрипт. Для всех таких типов файлов, для которых задано интерпретирующее приложение, в среде PS имеется встроенная операция "Run Script", меню Script > Run Script (F7). В качестве аргумента интерпретатору мы только что указали файл, открытый в текущем активном окне среды разработки.
Это означает, что если вы сейчас нажмете F7, то запустится Flash MX 2004, выполнит "createFla.jsfl", создаст и сохранит на диске "testprimalproject.fla" и перейдет в режим TestMovie, в результате чего в окне "Output" среды Flash MX 2004 отобразится:
Hello PrimalScript World :) Это приложение было создано автоматически при помощи среды PrimalScript + JSFL
Завтра добавим к этому проекту классы.
Интересный вопрос, не так ли? На этот вопрос отвечает старый друг всех флэшеров, давний поклонник интерактивности и мастер психоделических сайтов, Якоб Нильсен. Читайте новую статью "Флэш и юзабилити: Как сделать так, чтобы пользователи (не) находили ваши флэш-приложения" Лень читать? Тогда скажем коротко: скромнее надо быть, друзья. Не прячьте свой флэш на самом видном месте сайта, сделайте его одним из рядовых элементов — и успех у Якоба Нильсена вам обеспечен.
Свершилось! Можно оценить последнюю книгу любимого Колина Мука. На сайте Macromedia выложена глава 10, о событиях и их обработке [нужно брать, пока дают :]. [Качать полную версию: [asdg2_ch10.pdf (298K)].
Дополнение от Mike Temnikov'а aka wolfhart: Вот еще глава 13, посвящённая мувиклипам с сайта самого Колина Мука.
Совсем древнее: 17-20.09.2002, 23-30.09.2002, 01-04.10.2002, 07-11.10.2002, 14-19.10.2002, 20-26.10.2002, 27.10-02.11.2002, 04-08.11.2002, 11-16.11.2002, 18-23.11.2002 25-30.11.2002, 02-07.12.2002, 09-14.12.2002 Сайт заработал 17.09.2002