Мы вернулись из Крыма. Фото здесь:
C Наступившим Вас!
(Было: С Наступающим новым 2004 годом Вас! Желаем здоровья, продуктивности и успеха! А также желаем вам приятного кодирования и дизайнирования в Новом Году (не путать с новогодней ночью!) :) Вернемся через неделю!)
А "cпасибо за ссылку" скажите XaMMeR'у :)
Дизайнеры, ликуйте :) Nested Timeline Panel -- это плагин для Flash, созданный одним хорошим человеком по имени Ibiz Fernandez. Плагин будет очень полезен тем, кто занимается ручной покадровой анимацией, основанной на graphic-символах библиотеки. С помощью плагина вы можете проигрывать внутренний таймлайн графического символа, не заходя в него -- вы можете делать это из внешнего таймлайна. Очень просто, мы попробовали, нам понравилось!
Вот он: Nested Timeline Panel. После установки (с помощью Extension Manager) ищите окно плагина в Window > Other Panels > Nested Timeline.
Червяк. Сделал: Roman.L.
Battle City. Сделал: syoPic.
Paratrooper. Сделал: Макс Чубин.
Bomb. Сделал: неизвестно пока.
Ралли. Сделал: Poperechny Maksim.
Ну, Погоди!. Сделал: пока неизвестно.
Тетрис (Flash 4) Сделал: Eugene Nasol.
Ссылки на игры присланы участниками конференции ruFlash. Может быть, что-то не так, вашей игры здесь не хватает быть может? Пишите в комментарии, а мы перенесем ее сюда. Игры выкладываются в порядке поступления :)
Если вы следите за развитием событий, качайте свежую бета-версию PrimalScript 3.1:
PrimalScript 3.1 beta build 429
Предыдущую версию, если таковая была установлена на вашей машине, рекомендуется предварительно деинсталлировать.
Список изменений в новой версии PrimalScript 3.1 (если будет время, переведем на русский).
Подключаем систему контроля версий SourceSafe к среде PrimalScript 3.1.
Зачем это нужно? Чтобы возложить контроль версий проекта на железные плечи машин, а свою собственную память освободить для более интересных вещей. Вы укладываете свои файлы в безопасное место, взамен получаете избавление от головной боли (ладно, от одной и них:)
Система контроля версий следит за разными версиями ваших файлов: хранит их и отдает вам в нужный момент, принимает их уже измененными обратно на хранение, чтобы затем снова отдать их вам. В результате вы всегда можете получить свой скрипт, например, в том виде, в котором он был неделю назад. От вас требуется только: сделав важное изменение, сохранив файл, "отдать" (Check In) его новую версию в систему, чтобы затем при необходимости взять (Check Out) ее оттуда. Это и есть два основных действия при работе с системой: отдать файл (Check In) и забрать файл (Check Out).
Польза от системы контроля версий становится еще ощутимее при совместной работе двух и более разработчиков над одним проектом. Если кто-то взял файл "script.as" к себе на редактирование в Рабочую Директорию (т.е. сделал Check-Out), то никто другой не сможет сохранить новую версию файла script.as в системе контроля версий, пока тот, кто "забрал" файл, не вернет его снова в базу. Таким образом, в каждый момент времени над каждый файлом будет работать не более одного человека (хотя и здесь возможны варианты..) Подробное описание работы с ситемами контроля версий здесь будет неуместно.
Практически все нужные нам действия с системой контроля версий доступны через меню Tools > Source Control.
Get Latest Version... - скопировать из базы SourceSafe последнюю сохраненную там версию файла на диск. Внимание: если вы редактировали файл и не занесли его последнюю версию в базу.. нет, вы просто всегда заносите в базу последнюю версию и забудьте о неприятностях. Check Out - Забрать файл из базы на редактирование. Check In... - Отдать отредактированный файл в базу. Undo Check Out... - Отказаться от последних изменений, например, если вы считаете, что последние правки были неудачными и лучше вернуться к предыдущей версии файла. ----------- Add to Source Control... - Добавить в базу новый файл. Remove from Source Control... - Удалить файл из базы. ----------- Show History... - Показать историю файла (версии) Show Differences... - Показать различия между разными версиями файла Source Control Properties... - Настройки системы контроля версий. Можно вообще здесь ничего не трогать :) Resresh Status - Обновить статус файлов в базе системы контроля версий ----------- Source Control... - Запустить приложение контроля версий. Начинайте работу с нажатия этой кнопки. Connect Folder... - Подключить каталог к системе контроля версий.
Вполне возможно, вам не нужно ничего делать из нижеперечисленного. Если все работает нормально, лучше ничего не трогать :)
Теперь можно наслаждаться процессом:
При создании нового файла через Нексус Проекта вы получите диалог: "Do you want to put the newly added files(s) under the source code control? - что в точности дословно переводится как "Хочешь, я буду следить за версиями твоих новорожденных файлов?".
Вы можете открыть занятый файл. Редактировать - нет. При первом же нажатии на клаишу вам будет выдан вопрос: "Do you want to check it out?" - то есть: "Хочешь забрать файл к себе для редактирования?"
Вы можете установить автоматическое обновление файла в системе SourceSafe: при закрытии файла в PS будет возникать стандартный диалог "Check In", предлагающий вам сохранить версию в базе данных SourceSafe. Меню Tools > Option > Souce Control > радиокнопка Check In when file is closed.
И скажите теперь кому-нибудь, что вы потеряли файл %) Если возникли вопросы, пишите в комментарии. Постараемся ответить.
Вчера мы создали простейший проект в PrimalScript 3.1 (коротко -- PS3.1). Однако, присмотревшись к этому проекту, заметим, что аналогичного результата мы могли достичь и без привлечения среды PS3.1. Но то был простейший проект. Теперь пришла пора включить инструмент на его полную мощность, или хотя бы наполовину :)
Одно из главных достоинств PS3.1 -- легкий доступ к классам и их членам. Настолько легкий, что даже неподготовленный разработчик имеет шанс начать новую жизнь с классами. Полюбить их. Сейчас мы этим и займемся, а заодно полюбим и встренные классы от Macromedia.
Предполагаем, что вы сохранили первую верию проекта. Если нет, качайте: Тестовый проект для PrimalScript 3.1, версия 1. Будем называть его "базовым проектом". Запускаем PrimalScript 3.1.
Создадим новое (временное) рабочее пространство Classes. Его единственное назаначение -- подключение встроенных классов Flash MX 2004 путем создания соответствующего проекта.
Меню File > New > Project... В открывшемся диалоге выберите Project Type: "ActionScript", Templates: "New Project from existing folder", Name: "Classes", Location: укажите путь ко встроенным классам Flash MX 2004. У нас это "F:\Documents and Settings\Ro\Local Settings\Application Data\Macromedia\Flash MX 2004\en\Configuration\Classes". Жмите ОК.
Находим на диске файл рабочего пространства базового проекта. У нас это "D:\Swf\Projects\TestProject\TestProject.pws". Двойной клик или нажатие Enter на файле рабочего пространства приводит к открытию этого рабочего пространства в PrimalScript 3.1. Предыдущее рабочее пространство заменяется новым.
Итак, рабочее пространство базового проекта (TestProject.pws) открыто.
Добавим в наш базовый проект классы. В Нексусе Проекта кликаем правой кнопкой по самой верхней строке и выбираем пункт "Inser Project into Workspace...". В открывшемся диалоге находим файл, в котором было сохранено созданное на первом шаге временное рабочее пространство Classes, у нас это файл "F:\Documents and Settings\Ro\Local Settings\Application Data\Macromedia\Flash MX 2004\en\Configuration\Classes\Classes.pws". Жмем ОК.
Проекты слились! Вот что мы видим (левая часть картинки):
Узел базового проекта "TestProjects" выделен жирным шрифтом. Это означает, что сейчас он считается активным. Позже узнаем, какое это имеет значение. Над "TestProjects" видно "Classes", по которому дважды кликаем и видим правую часть картинки.
Вывод: двойной клик по узлу Classes привел к частичному обнажению встроенных классов Flash MX 2004. Этой наготой мы обязательно воспользуемся, с налучшими намерениями, конечно, мы же нормальные флэшеры.. Полное обнажение происходит в Нексусе Исходника. Это вторая закладка (внизу) в панели Нексуса. Кликаем, видим два узла с плюсами. Кликаем по верхнему:
Видим новые узлы с плюсами. Это встроенные классы. Двойной клик по узлу приведет к открытию файла класса в редакторе. Клик по плюсу раскроет класс и покажет его членов (методы и свойства). Двойной клик по любому члену класса приведет к открытию файла класса в редакторе (курсор автоматически окажется в нужном месте, проверьте это немедленно).
Мы собирались делать ЙоЙо, так что нас интересуют методы и свойства класса mx.transitions.Tween и класса mx.transitions.easing.Elastic. Они видны внизу картинки.
mx.transitions.Tween
mx.transitions.easing.Elastic
Из всего класса Tween нам нужен его конструктор. Также нам пригодятся статические методы класса Elastic а именно -- метод easeInOut. Чтобы это узнать, мы кликали, смотрели, много думали.. Что-то до боли знакомое есть в этом классе Писал Rost, 05:38 AM 17.Декабрь.2003, Articles Первый шаг в PrimalScript 3.1 (простой проект) Целью данных заметок было описание собственного опыта, первых шагов при работе с PrimalScript 3.1. Этим и займемся. Сначала нам не понравилось: среда казалась недружелюбной, сложной, глючной и непривычной. Но стоило произвести необходимые настройки рабочей среды и проекта, -- и отношнение к PS3 изменилось радикально. Следующий пример создания простейшего проекта описывает все необходимые для этого шаги. Помните: это только одна из возможных последовательностей действий, и в ходе работы вы несомненно обнаружите свои, лучшие варианты. В данной последовательности будем предполагать, что работы ведутся в каталоге "D:\Swf\Projects\". Если у вас этот путь будет иным, не забудьте учесть это при воспроизведении следующих шагов: Создаем проект/рабочее пространство
Tween
Elastic
easeInOut
Целью данных заметок было описание собственного опыта, первых шагов при работе с 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
Завтра добавим к этому проекту классы.
Первоначальной целью данной заметки было последовательное описание наших первых, удачных шагов в среде разработки PrimalScript. Уже начав это делать, мы поняли, что лучше начать с краткого введения; затем стало ясно, что необходимо перечислить хотя бы главные особенности этой среды разработки, выдвигающие ее в число лучших. Так и поступим. А "первые шаги" будут завтра.
Компания Sapien Technologies выпустила новую (пока beta) версию редактора PrimalScript 3.1 (далее по тексту -- просто PS3). Точнее будет назвать это "интегрированной средой разработки" (IDE).
"Интеграция" в данном случае означает:
Увидеть скриншоты можно на сайте RewindLife.com. Мы рекомендуем вам посмотреть скриншоты, скачать PrimalScript 3.1 и установить его. Завтра мы будем говорить о первых шагах, и будет лучше, если вы будете немного подготовлены.
Продолжение следует.
Все чаще и чаще на сайтах, использующих флэш-заставки, можно увидеть кнопку "Пропустить интро". И даже более того -- интро может не показываться по умолчанию, но на главной странице сайта будет ссылка "Показать интро".
Причины этого очевидны: ведь в определенный момент (который, можно надеяться, уже в прошлом) на многих сайтах появились однообразные заставки, довольно быстро приевшиеся (о причинах этого можно говорить много, назовем из них только частый непрофессионализм или нетворческий подход их создателей (с одной стороны) и повышающиеся требования пользователей (с другой)). Возникла ответная реакция посетителей: заставки стали не столь любимы. И сейчас мы имеем ситуацию, описанную в первом абзаце.
Можно пойти еще дальше (что уже сделано на некоторых сайтах) по пути повышения удобства сайта с учетом интересов "интро-ненавистников". Если без заставки никак не обойтись (нечастый случай, но тем не менее), стоит к кнопке "Пропустить интро" добавить еще одну: "Пропускать всегда" (такой вариант предполагает, что посетитель придет на сайт не однажды, а это одна из главных целей разработчиков).
Многих вам постетителей!
Задача создания качественного полноэкранного режима для оффлайновых flash-приложений решена группой инициативных товарищей, известных нам под собирательным именем "Александр Лысенко" (он же -- дядя Лиса :)
Как результат решения задачи были созданы, упакованы в архив и выложены для совершенно бесплатного скачивания все необходимые для реализации флэш-фуллскрина модули. Подробности можно узнать здесь: "Полноэкранный режим совместно с Flash (full-screen)".
SciTE|Flash -- удобный внешний редактор ActionScript-кода, позволяющий прямо в процессе редактирования тестировать клип (при нажатии [Ctrl+1] на клавиатуре). Но с новой версией (Flash MX 2004) это не работает. Наверное, дело в морально устаревшей версии приложения flush.exe, которое выполняет функцию принудительной компиляции или тестирования прямо в среде разработки, без необходимости выхода из внешнего редактора кода. Кстати, если вам известно что-либо об обновленной версии flush -- просьба сообщить в комментариях, а мы пока приведем простой спрособ решения этой задачи при помощи встроенного во Flash MX 2004 языка JSFL. Итак, по порядку:
document.testMovie();
Готово. Теперь можно в SciTE|Flash нажимать [Ctrl+1], заставляя тем самым среду разработки тестировать открытый в ней документ.
Будьте внимательны, особенно при выполнении последнего, пятого пункта. Проследите, чтобы все пути были указаны верно, а также чтобы параметры в пятом пункте были заключены в двойные кавычки. Приятного вам кодирования.
У меня нет слов //via Sergi
Ниже коротко перечислим известные нам способы прослушивания событий на примере обработки события "клик по кнопке cmpButton". Если вы хотите проверять приводимый код по ходу действия, разместите на рабочем поле компонент "Button" (из набора компонентов второй версии, т.е. тех, что поставляются вместе с Flash MX 2004 Professional) и присвойте ему имя cmpButton.
cmpButton
var objListener:Object = new Object(); objListener.click = function(evtObj:Object){ trace(this) // [object Object], т.к. this здесь ссылается на объект objListener }; cmpButton.addEventListener("click", objListener);
Этот способ является предпочтительным с точки зрения хорошей практики программирования, так как приводит к минимальной путанице при создании многих обработчиков многих событий.
function fncListener(eventObj){ trace(this) // _level0.cmpButton - т.к. this здесь ссылается на компонент cmpButton } cmpButton.addEventListener("click", fncListener);
.handleEvent
.handleEvent -- встроенный метод, имеющийся по умолчанию у каждого объекта. Он вызывается каждый раз, когда объект получает оповещение о событии (а для этого его надо подписать на события, используя синтаксис типа component.addEventListener("event", objListener); где objListener -- наш объект-листенер). Не забудьте добавить на рабочее поле экземпляр компонента TextInput и присвоить ему имя cmpTextInput:
component.addEventListener("event", objListener);
objListener
TextInput
cmpTextInput
objListener=new Object(); objListener.handleEvent = function(o){ if (o.type == "click"){ trace(this) // [object Object], this сылается на объект objListener trace("кнопка кликнута"); // клик пришел от кнопки } else if (o.type == "change"){ trace("текст изменен") // в поле ввода изменился текст } } cmpButton.addEventListener("click", objListener); cmpTextInput.addEventListener("change", objListener);
Кажущаяся простота этого способа может привести к путанице при прослушивании многих событий (исходный код будет менее наглядным).
Здесь используется особенность модели событий компонентов второй версии: при возникновении какого-либо события всегда вызывается метод, имя которого состоит из имени события и суффикса "Handler" (в нашем примере это событие "click"):
Handler
click
cmpButton.clickHandler = function(o){ trace(this); // _level0.cmpButton, this ссылается на компонент cmpButton }
(Человек без подписи добавляет в комметариях: "...этот способ - довольно стрёмный. Иногда назначенные обработчики не выполняются. Так что лучше его не пользовать -- легче жить будет...")
Этот способ рекомендуется использовать только в процессе разработки, когда нужно быстро создать обработчик какого-либо события.
Выделить компонент cmpButton, и прямо на нем написать:
on(click){ trace(this); // _level0.cmpButton }
В подавляющем большинстве случаев первого способа достаточно, однако, зная остальные, вы можете сами выбирать лучший способ для конкретных обстоятельств.
Flex, Brady и Partridge -- новые, еще не вышедшие продукты Macromedia, преследующие стратегические цели.
Flex -- это новая серверная технология, предназначенная для использования опытными, профессиональными разработчиками (в основном на Java). Flex является возрождением идеи, раннее известной как Royale. Приложения, созданные с помощью Flex, будут воспроизводиться через Flash Player. Flex -- это не продолжение Flash MX 2004 (и Pro в том числе). Это самостоятельная технология, реализованная как высокоуровневая надстройка на сервере (сначала J2EE, затем и .NET). С помощью Flex профессиональные разработчики, не имеющие опыта работы с Flash, могут создавать насыщенные интернет-приложения привычными способами. Выход Flex запланирован на первую половину 2004 года.
Brady -- это визуальная среда для разработки и отладки Flex-приложений. Brady базируется на Macromedia Dreamweaver. Выход Brady запланирован на первую половину 2004 года после выхода Flex.
Partridge -- это проект внедрения инструментов разработки Flex в популярную бесплатную среду разработки Eclipse, спонсируемую компанией IBM.
Кроме этого, Macromedia обещает создать XML-файлы с описанием схем, необходимых для внедрения Flex в другие популярные редакторы от сторонних производителей.
Таким образом Macromedia продолжает внедрение в среду опытных, профессиональных разработчиков, предлагая им средства для расширения функциональности "классических" приложений. Основная идея состоит в том, чтобы скрестить мощь и производительность десктоп-приложений с гибкостью и коммуникабельностью интернет-разработок.
Отвечая на часто задаваемый вопрос: "А как же Longhorn, Avalon, XAML, Sparkle и т.д.", представители Macromedia заявляют следующее: "Да, эти новые продукты и технологии от Microsoft похожи на то, в чем мы были и продолжаем быть первыми. В обоих случаях используются описания из XML-конструкций, компонентые решения и веб-сервисы для связи приложений. Мы не сомневаемся, что эти две среды будут взаимно обогащать друг друга. Более того, насыщенные приложения технологии Flex будут не только поддерживать обратную совместимость с платформой Windows, а будут еще и заведомо совместимы с Longhorn. Так что разработчики не пострадают в любом случае. И если какая-нибудь организация сомневается в том, какую технологию выбрать для инвестирования, то мы можем сказать, что, используя Macromedia Flex, компания не проиграет, так как с помощью данной технологии можно уже сегодня начинать разработку продуктов, совместимых с будущим. Кстати, Microsoft также предупреждает, что для перехода на Longhorn потребуется апгрейд железа, что тоже займет некоторое время. Longhorn выйдет не ранее 2006 года -- а мы предлагаем свои продукты уже сейчас."
По материалам Macromedia и InternetNews.com
Кейт Петерс/Keith Peters, один из авторов готовящейся к выходу книги "Extending Macromedia Flash MX 2004" и просто маньяк флеш-экспериментов (его сайт bit-101 давно известен, а в этом году Петерс победил в категории Experimental фестиваля Flashforward 2003 Flash Film Festival) запустил собственный журнал, где держит постетителей в курсе своих дел. Кейт силен в математике, обратите внимание. Читать журнал Кейта Петерса (англ).
Совсем древнее: 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