Создание текстовых эффектов в Flash

30 Август 2008 Автор: admin

Создание собственных текстовых эффектов в Flash

Первым эффектом, который мы рассмотрим, является стандартный эффект пишущей машинки, заключающийся в том, что текст в текстовом поле отображается так, будто он напечатан вручную. Мы рассмотрим два различных способа создания эффекта пишущей машинки. Прежде всего, мы изучим основные принципы работы данного эффекта.

Нам нужно, чтобы с каждым кадром в текстовом поле появлялась все большая часть строки текста. Этого можно добиться, введя переменную-счетчик и увеличивая ее значение с каждым кадром, и затем располагать текст в текстовом поле, используя этот счетчик для задания длины текста в каждом новом кадре. Во Flash 5 мы могли бы отображать текст в текстовом поле, присваивая ему переменную. Каждый раз при обновлении этой переменной текстовое поле также обновлялось бы соответствующим образом. Во Flash MX текстовое поле является объектом с параметром text. Чтобы текст отображался в текстовом поле, нам нужно присвоить фрагмент текста параметру text текстового поля.

Имейте в виду, что все еще можно добавить переменную текстовому полю (Var). Мы не будем использовать этот метод, так как, скорее всего, эта возможность была сохранена лишь для обеспечения корректной работы с файлами, созданными во Flash.

Создание эффекта пишущей машинки
Откройте новый файл Flash и расположите текстовое поле на позиции (217,113). Теперь перетащите кнопку текстового поля, чтобы изменить размер поля примерно на 360 пикселей в ширину и на 150 в высоту.

Всегда лучше изменять размер динамических текстовых полей, перетаскивая кнопку текстового поля. Если изменить размер текстового поля, указав значения W и H в Property inspector, текст будет искаженным.
Выберите шрифт Verdana, размер шрифта 9 и черный цвет. Установите параметр текстового поля Dynamic Text, затем в ниспадающем списке Line Type выберите Multiline. Убедитесь в том, что опция Selectable не отмечена. (Selectable является опцией, определяющей, может ли пользователь делать изменения в тексте при просмотре фильма.) Назовите инстанс текстового поля tf_txt. Окно Property inspector должно выглядеть примерно следующим образом:

увеличить изображение
Теперь создайте новый слой scripts и введите следующий ActionScript в кадре 1. Прежде всего мы присвоим текстовому полю некоторый текст:

tf_txt.text = "When a vibrating source of waves is
approaching an observer, the frequency observed is higher
than the frequency emitted by the source. When the source is
receding, the observed frequency is lower than that emitted.
This is known as the Doppler effect, or Doppler's principle.";

Запустив фильм, вы увидите, что Flash расположил текст внутри нашего текстового поля. На данном этапе имеет смысл выбрать команду меню Debug > List Variables и выяснить, в каком состоянии находится текстовое поле. В окне Output вы увидите примерно следующее:

Это дает нам исчерпывающее представление о том, что происходит с текстовым полем. Каждое динамическое текстовое поле или текстовое поле ввода, размещенное на рабочем месте, имеет параметры и свойства, которые могут изменяться во время выполнения.
До сих пор мы выводили весь текст одновременно, а теперь нам нужно, чтобы он отображался посимвольно с каждым кадром. Чтобы добиться этого эффекта, возьмем наш фрагмент текста и присвоим его переменной вместо параметра текстового поля text. Просто замените tf_txt.text на text_str:

text_str="When a vibrating source...";

Теперь мы создадим функцию enterFrame для добавления символов в текстовое поле один за другим с использованием метода substr объекта строки. Этот метод передает два аргумента - один из них позволяет указывать стартовую позицию, а другой указывает число символов. Затем метод получает фрагмент строки. Итак, имея в виду текстовую строку, рассмотренную выше, обратимся к следующему ActionScript:

Text_str.substr (0, 6);

Это выражение будет получать фрагмент “When a”, т.е. первые шесть символов строки. При реализации эффекта пишущей машинки первый передаваемый аргумент будет всегда равен нулю, так как текст должен отображаться с начала строки, в то время как второй аргумент (длина полученной строки) будет увеличиваться с каждым разом, отображая все больший фрагмент строки.
Введите следующий ActionScript под имеющимся в слое scripts кодом:

this.onEnterFrame = function() {
// assign the portion of the string from 0 to count to the
// textField.
tf_txt.text = text_str.substr(0, count);
count += 2;
};

Сохраните ваш фильм в файле typeWriter001.fla и запустите его. Вы можете ускорить появление текста, увеличив число, на которое возрастает значение count в каждом кадре. Одним из неприятных побочных эффектов является некорректный перенос. Мы можем обойти этот недостаток, вставив в текстовую строку символы новой строки (\n):

text_str="When a vibrating source of waves is approaching
an observer, the frequency observed is higher
than nthe frequency emitted by the source.
When the source is receding, the observed frequency is lower than
that emitted. This is known as the Doppler effect,
or Doppler's principle."

Сохраните ваш файл под именем typeWriter001b.fla. Запустив его, вы увидите, что текст появляется в новой строке, начиная с того места, в которое вы добавили символ \n.

Несмотря на то, что этот эффект работает как надо, он далеко не идеален, так как он никогда не перестает выполняться: счетчик будет продолжать свое действие до бесконечности. Кроме этого, мы настроили функцию onEnterFrame в корневом уровне на управление эффектом. Гораздо лучше доверить тексту самостоятельное управление самим собой. Но об этом уже в следующий раз

Особенность FLASH-технологии

26 Август 2008 Автор: admin

Долго не писал, есть проблемы со свободным временем. Но блог бросать всеже не планирую, поэтому решил добавить отредактированную и дополненую мною статью об особенностях FLASH технологии.

Особенностью технологии Flash есть тот случай, что она может успешно заменить обыкновенную страницу, написанную на html. Тут открываются существенные достижения технологии Flash перед языком HTML.

Интересны внутренние резервы языка ActionScript, а конечно объединение его и самого конечного продукта с другими языками программирования и базами данных. Окончательное творение - это так называемый flash-ролик, которые представляет собой элемент active-x, который существует как самостоятельное приложение, и который, встраивается в html-документ по средствами включения его в тело документа как объекта active-x. Разумеется, для проигрывания такого ролика от браузера потребуется наличие установленного плагина, но это не проблема, т.к. почти всё браузеры уже имеют предустановленный flash-плагин, а если такового всё же в системе не имеется, то произойдёт автоматическая его загрузка с сервера производителя. Для достижения более сложной интерактивности Flash может взаимодействовать с JavaScript или VBScript.

Организация ссылок внутри flash-ролика может происходить как обычно, т.е. пряма ссылка на какой либо документ/cgi-шлюз, либо ссылка может приводить к загрузке новых роликов, которые могут содержать данные, и которые будут являть аналогом документов, загружаемых по щелчку на обыкновенную html-ссылку. Ссылка на другие ролики происходит внутри ролика, текст ссылки не покидает пределов ролика, его нельзя скопировать, либо просмотреть в строке состояния. Также перемещение по таким ссылками не будет вызывать перезагрузку главной страницу, в которую вставлен flash-ролик (разумеется, если не указаны специальные инструкции в самом ролике). Также как и в фреймовом представлении документа (перезагружается содержание фреймов) , здесь перезагружается/догружается только сам ролик. Причём загружаемый ролик может находиться и на другом сервере - пользователь об этом никогда не узнает.

Технология FLASH средствами языка ActionScript позволяет обращаться непосредственно к любому cgi-шлюзу изнутри ролика, при этом скрывая от пользователя место обращения и сам запрос. Но также есть один недостаток данного метода - ограниченность принимаемой информации от шлюза, flash-ролик не сумеет интерпретировать код html, части которого часто встречаются в ответе на запрос к cgi-программе, но зато без труда можно оперировать с обычной текстовой информацией. Конечно, ограниченность функциональной стороны технологии FLASH можно расширить, написав на встроенном языке ActionScript дополнительные модули разбора и парсинга ответов cgi-программ (например, модуль интерпретации html внутри flash-ролика).

Анимация кнопки при наведении на нее курсора

1 Август 2008 Автор: admin

Шаг 1

В этом уроке вы научитесь, как создать плавную анимацию при наведении курсорана кнопку и отведении его от нее. Для этого мы не будем помещать анимацию в саму кнопку, а сделаем отдельный мувиклип с анимацией, которая будет проигрываться при наведении на кнопку, на главной сцене поверх кнопки, дабы всегда можно было легко и быстро отредактировать его. Суть урока состоит в том, что мы создадим всего один мувиклип, в котором будет анимация появления эффекта над кнопкой, и при наведении он будет проигрываться нормально, а при отведении - в обратную сторону. Соответсвтенно в этом уроке будет задействован ActionScript, который будет определять положение курсора.

Для начала создадим новый мувиклип, и теперь все, что мы будем делать дальше, будем делать в нем.

Создадим пустой мувиклип нажатием кливаш Ctrl+F8 и назовем его MyButtonMC:

g

Шаг 2
Создадим собственно анимацию: допустим я хочу, чтобы над кнопкой появлялся текст. Для этого в мувиклип, который мы тоьлко что создали, поместим текст. Теперь вернемся в самый первый мивиклип, о котором я говорил раньше, создадим новый слой (на первом слое у нас уже должен находится рисунок, который будет нашей кнопкой - у нас черный кружок) и поместим на этот слой в первом кадре клип, который создали только что.

Зададим его прозрачность на 0 (для этого выделим его, откроем панель Propeties, в выпадающем меню Colors выберем Brightness и установим значение на 0. Теперь создадим перейдем на 10 кадров вперед и создадим новый ключевой кадр нажатием F6. Мувиклип по умолчанию имеет прозрачность как в первом кадре, однако нам нужно, чтобы он был полностью непрозрачен. Для этого опять выбираем Brightness и устанавливаем значение на 100. Теперь нажимаем правой кнопкой мыши на пространстве между первым и последним кадрами и нажмем в появившемся меню Create Motion Tween. Получается, что за десять кадров мувиклип будет изменять свою непрозрачность от 0 до 100.

1

Шаг 3
После создания анимации нам нужно создать объект, который будет взаимодействовать с курсором пользователя, т.е. в нашем случае саму кнопку. Для этого выделим наш черный круг и переведем его в кнопку: F8 -> button.
Выделим нашу новоиспеченную кнопку, откроем панель Propeties и зададим ей instance name - “enter_btn”.

2

Шаг 4
Теперь вернемся на главную сцену и вставим наш самый первый мувиклип, содержащий в себе саму кнопку и анимацию при наведении / отведении от нее курсора.

Выделим этот мувиклип, откроем панель Action и вставим следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
onClipEvent (enterFrame) {
if (go) {
nextFrame();
} else {
prevFrame();
}
}
 
onClipEvent (load) {
var go;
stop();
enter_btn.onRollOver = function() {
go = true;
};
enter_btn.onRollOut = function() {
go = false;
};
enter_btn.OnRelease = function (){
//тут вы можете задать любое действие,
//которое хотите, чтобы выполняла кнопка
//при нажатии на нее
}

Теперь тестим клип, нажимаем Ctrl+Enter. Код работает достаточно просто: анимация либо играется вперед или назад в зависимости от значения переменной “go”. Эта переменная меняется при подведении или отведении курсора от кнопки.

Аналоговые часы

25 Июль 2008 Автор: admin

Шаг 1
Создайте новый документ во флэш. Начните с рисования стрелок. Учтите, что минутная стрелка должна быть не выше, чем половина высоты и ширины сцены (чтобы она могла поворачиваться).

v

Шаг 2
Выберите минутную стрелку, сделайте её MovieClip нажатием клавиши F8 и назовите её MinuteHand. То же самое проделайте с часовой стрелкой и назовите её HourHand. Каждой стрелке нужно также присвоить соответствующее instance name (панель properties). Создайте новый слой и переместите в него одну из стрелок. Проверьте появились ли обе стрелки в библиотеке.

v

Шаг 3
Теперь нужно определить центр для слипов со стрелками. Для этого начните редактирование клипа (двойной щелчок по нему) и установите изображение стрелки так, чтобы центр находился в этом месте:

v

Шаг 4
Вернитесь к основной сцене и выровняйте обе стрелке по центру. Теперь нужно добавить экшен, который будет загружать значения часов и минут из asp файла. Создайте новый слой, назовите его actions, откройте панель actions (правой кнопкой по кадру > actions) и вставьте следующий код:

v

Шаг 5
Создайте еще один слой и нарисуйте в нем циферблат ваших часов. Добавьте второй кадр во всех слоях (выбираем кадр > F5). В слое actions второй кадр будет ключевым (выбираем кадр > F6). В него нужно вставить этот код:

1
2
3
4
5
6
7
8
<%@Language = "VBScript"%>
<%
Option Explicit
Response.Buffer = True
Response.Expires = -1000
Response.Write "Hour=" & Hour(Now) & "&Minute=" & Minute(Now)
Response.Flush
%>

Наши часы готовы!

Кнопка для включения/выключения звука

20 Июль 2008 Автор: admin

Шаг 1
В этом уроке вы научитесь создавать кнопку для включения/выключения звука во флэше, используя ActionScript.

Итак, начнем. Создайте 2 кнопки - первая будет включать звук, вторая выключать. Далее, нужно создать 2 клипа:

- Для звуков
- Для кнопок

Шаг 2
Создаем клип для звуков:

- Создайте 3 ключевых кадра
- Добавьте экшен stop() в каждый кадр
- Вставьте звук (музыку) в первый кадр
- Во второй кадр добавьте такой экшен: gotoAndStop(1);
- В третий кадр добавьте такой экшен: gotoAndPlay(1);

Шаг 3
Создаем кнопку:

- Создайте 2 ключевых кадра
- Добавьте экшен stop() в каждый кадр
- Вставьте кнопку OFF в первом кадре
- В экшены этой кнопки вставьте код:

1
2
3
4
5
6
7
8
on (release) {
tellTarget ("../music") {
stopAllSounds();
}
}
on (release) {
nextFrame();
}

- Вставьте кнопку ON в первом кадре
- В экшены этой кнопки вставьте код:

1
2
3
4
5
6
7
8
on (release) {
tellTarget ("../music") {
nextFrame();
}
}
on (release) {
prevFrame();
}

- Разместите клип с музыкой на главной сцене. Назовите его music в панели instance
- Разместите кнопку на главной сцене

Нажмите Ctrl+Enter, чтобы запустить ролик.

Случайное перемещение во флэш с использованием ActionScript

17 Июль 2008 Автор: admin

Шаг 1
Импортируем фоновый рисунок. Откройте новый файл (File > New). Войдите в его настройки (Modify > Document) и задайте такие размеры сцены: 237px на 268px. Ваш фоновый рисунок должен быть этого же размера. Выберите рисунок, который хотите сделать фоном и импортируйте его в библиотеку (Select File > Import to Library). Откройте библиотеку (Window > Library), найдите свой рисунок, перетащите его на сцену. Слой, в котором находится рисунок, назовите background.
Шаг 2
Создаем клип - точку. Создайте новый слой и назовите его dot. Нарисуйте красный круг инструментом «окружность» . Чтобы круг получился ровным, при рисовании удерживайте shift. Удалите внешнюю линию границы. Задайте кругу размер 2 на 2. Выберите круг и нажмите Modify > Convert to Symbol. В появившемся окне выберите Movie Clip, назовите клип dot_mc и нажмите ок.
Шаг 3
Создаем клип - сердце. Создайте новый слой и назовите его heart. Нарисуйте или импортируйте рисунок сердца. Задайте сердцу размер 10 на 10. Выберите сердце и нажмите Modify > Convert to Symbol. В появившемся окне выберите Movie Clip, назовите клип heart_mc и нажмите ок.
Шаг 4
Добавляем простой ActionScript код клипам. Выберите круг, и откройте панель actions. Скопируйте туда этот код, чтобы придать клипу случайное перемещение:

1
2
3
4
5
6
onClipEvent(enterFrame)
{
_alpha=random(100);
_x=_x=random(50);
_y=_y=random(50);
}

Проделайте то же самое с клипом сердце. Вместо 100 и 50 вы можете вписать другие числа. Поэкспериментируйте и проверьте, как это будет смотреться.

Шаг 5
Скопируйте клип точку и клип сердце несколько раз и разместите копии в разных местах на сцене.
Сохраните файл и нажмите Ctrl+Enter, чтобы посмотреть результат.

Создание Flash сайтов

14 Июль 2008 Автор: admin

Дискуссия о месте технологии Flash в волшебном мире Интернет велись с момента появления технологии, и были даже не дискуссиями а скорее постоянным нытьем о том, что flash противоречит usability (в понимании традиционного user experience пользователя броузера как интерфейса взаимодействия с веб-контентом), с одной стороны - и растущим количеством Flash сайтов с другой. Flash мог все больше и больше, и требования его противников сменялись с “верните нам кнопку Back” на “Проиндекструйте флеш-сайт”, потом на “Сделайте флеш-сайт динамическим”, потом на “Где поиск?” - и так далее, или же все одновременно. Все эти пожелания, как и многое другое, составили на данный момент некую догматику требований к современному флеш-сайту - не зафиксированную в документациях и стандартах, но в то же время довольно четкую и универсальную. Возможно, изначальная цель этих требований - максимально приблизить флеш-сайт, как интерфейс и как приложение, к html сайту - и потеряла актуальность, но сам подход, делающий флеш-сайт понятным, удобным, легким в использовании как посетителем, так и владельцем, надежным и интегрированым в html и серверное окружение - стал для создателей флеш-сайтов тем, от чего принято отталкиваться.

Поэтому я бы хотел уделить внимание некоторым деталям этого подхода, которые будет полезно узнать человеку, который создает флеш-сайты. Поскольку я буду попутно приводить объяснения - как именно реализовать то или другое из описанного - видимо, этот текст будет интересен флеш-разработчикам в большей степени, чем кому либо другому.

Первое о чем хотелось бы поговорить - структура сайта. Глобально сайт (как флеш, так и любой другой)представляет собой некий набор единиц иформации (страницы), связанных между собой ссылками(навигация). Это - тот постулат, от которого мы будем отталкиваться. Поскольку 99 процентов интерактивности на нашем “идеальном сайте” составляет переход от одной единицы информации к другой - очевидно, что от того, как организованы связи между этими страницами зависит очень многое - а именно, возможность или невозможность реализовать тот или иной функционал. Попытки построить логику работы сайта, отталкиваясь от размышлений вида “вот мы зашли на первую страницу/открыли первый уровень главного меню/оказались на странице ‘о нас’ — и теперь мы должны отсюда смочь выйти на страницу продукции - поэтому мы тут поставим ссылку” - обычно приводят к созданию html - сайтов с путаной навигацией, что плохо, но не смертельно - потому что в html сайте всегда можно поставить эту злополучную ссылку, потом еще 10 ссылок в разных местах - и будет работать.

При создании сайтов на flash такой подход приводит к гораздо более печальным последствиям - мы оказались на странице “о нас”, а ссылку на страницу, где помещена история разработки нашего логотипа (разел “работы”/ подраздел “работы для себя - любимых”/ выбор-из-выпадающего-списка “логотипы”) - мы поставить не можем, потому, что перед разделом “работы” у нас проигрывается анимация поднимающегося занавеса, после этого выползает боковое меню с клиентами (да - еще надо не забыть убить автивность кнопок главного меню и запустить звук фанфар), опять же этот выпадающий список надо открыть на нужном пункте - в общем, хаос приходит в гости и прочно обустраивается в скрипте (в котором появляется десяток новых условий), дизайне (который мы быстро лишаем поднимающегося занавеса) и голове, которая готовится к коллапсу мозга. Как всего этого избежать и что надо сделать чтобы мы были готовы к любым, самым неожиданным поворотам в структуре контента?

Ответ - присваивание каждой единице информации своего пути, создание центральной системы навигации, и завязка всего интерактива на неё. Мы не будем заниматься флеш-извращениями вроде создания динамической навигации бесконечной вложенности и применения нашего подхода к ней - не потому, что это гипер-сложно, а потому, что это не имеет отношения к 99 процентам конкретных задач, которые встают перед разработчиком сайта.

Обратимся к реальности - некая фирма заказывает сайт, с неким количеством уровней структуры информации - пусть этих уровней будет три, чтобы нам было проще - главные страницы [банальные "о нас", "услуги", "продукция", "контакты"], вложенные страницы первого уровня ["бетонные плиты", "кованое железо", "бочки"] и второго уровня ["бочки круглые", "квадратные" "тругольные"]. Раскидав все имеющиеся страницы примерно равномерно по обозримому пространству нашего воображения, мы видим, что не все так просто, как кажется - навигация не получается такой же прямолинейной, как на схеме - (от более крупного к менее крупному и обратно): из “круглых бочек” нам понадобится ссылка на список клиентов, отуда, в свою очередь - на продукцию для конкретного заказчика - и так далее. И это только то, что заказчик написал в ТЗ - вполне вероятно, что за неделю до сдачи проекта, он захочет на КАЖДЫЙ продукт повесить ссылки на ВСЕ продукты для клиента, которые заказал этот продукт. Поэтому правильным подходом будет изначальное обеспечение возможности из любой страницы перейти на любую другую.

Так как у нас 3 уровня вложенности - прикидываем дефолтное расположение страниц - и присваиваем каждой переменную вида “1/2/3″ - где 1 - это индекс одной из главных страниц, 2 - индекс вложенной страницы первого уровня, с которой мы попали на текущую - которая и есть номер 3. Проще всего присваивать эти переменные прямо при построении главной навигации. Это просто, но это только 10 процентов от того, чо нам предстоит сделать. Если мы хотим без проблем перейти со страницы “2/5/12″ на страницу “4/1/2″, нам надо создать такой механизм навигации, который будет считывать текущий путь, в обратной очередности проиводть сопутствующие навигации действия - открывание вложенных меню, анимацию появления страниц и так далее - а затем делать все тоже самое с “нуля” - пока мы не окажемся на странице, которую мы хотим открыть. Каждое действие пользователя должно проходить такой путь - даже если он переходит с одной товара на другой внутри одной страницы одного раздела - в этом случае система должна принимать, но игнорировать те участки искомого пути, которые идентичны текущему - т.е уже открыты. Как именно построить такой механизм я рассказывать не буду - это долго, беспредметно, сугубо профессионально и неуниверсально. Универсальность заканчивается на принципах: отрывать действия от событий, чтобы их можно было вызвать в любой момент, строить и оптимизировать конвееры исполняемых операций, которым можно будет посылать список требующих поочередного выполнения действий, следить, чтобы все это не тормозило - а именно, не запускать одновременно ВСЁ, что можно - на то у нас и существуют пути, чтобы спокойно по очереди все открыть-закрыть. Дальше идет область применения вашей фантазии.

Построив навигацию по такому принципу, мы получаем несколько очень важных преимуществ:

- во-первых, мы можем в любой момент в любом месте сайта повесить ссылку на любое другое место - нам достаточно будет просто послать в функцию, осуществляющую контроль над открытием и закрытием уровней искомый путь “a/b/c”

-во-вторых, мы можем легко привязать сайту дополнительный функционал - допустим, поиск: послав запрос на сервер по keywords нам достаточно будет разбить полученный xml, состоящий из путей вида “1/2/3″ (который также легко генерится ), быстренько выстроить в ряд кнопки и присвоить каждой - нужный путь.

Поиск - еще одна важная деталь, присутствие которой на флеш-сайте во многом смягчает критику посетителей по поводу его usability и позвляет посетителем расслабиться и получать удовольствие от летающих звезд, видео-плейбеков, потрясающих пружинящих контакт-форм и прочих прелестей, которые нам предоставляет flash.

-в-третьих, мы можем - также без особых усилий - привязать наш сайт к навигации броузера - кнопкам back и forward например. Описание механизма работы perma links можно найти на сайте flashguru.co.uk - так показан пример из страницы с двумя фреймами - в кратце принцип таков: основной swf лежит в одном фрейме, вспомогательный - в другом. При навигации первый посылает некую переменную, соответствующую искомой странице на php-скрипт, который перегружает фрейм с вспомогательным swf - присваивая ему параметром эту переменную - после чего вспомогательный swf по local connection передает эту переменную обратно в главный - и тот осуществляет переход на следующую страницу. Таким образом мы получаем document.history со всеми посещенными страницами сайта - и можем соответственно пользоваться навигацией back и forward для перемещения по нему. Надо ли говорить, что если мы строим сайт по схеме, предложеной выше - то нам понадобится лишь пропустить нашу систему навигации еще одним звеном через local connection - чтобы все наши “a/b/c” записыавлись в историю броузера. И не надо мне рассказывать, что это ненажедно, медленно, муторно итд - я делал это много раз и знаю, о чем говорю. Тем более, что интеграция с навигацией броузера - одно из тех негласных требований к современному флеш-сайту, о которых я говорил в самом начале.

-в-четвертых, сам факт того, что мы всегда знаем - где находится пользователь - и можем при желании сообщить об этом - а также проследить его путь по сайту - не может не радовать и не успокаивать. Главное - чтобы пользователь не потерялся. О том, что мы можем забыть о таких глобальных вещах, как нестыковки анимации, зависание ненужных пунктов меню, а главное - разрастании скриптов и дублирвании элементов дизайна на сцене - я думаю говорить не надо, это мы получаем во всей красе - и это приятно, удобно, и понятно.

Кроме тех выгод, которые мы получаем при разработке самого флеша, данный подход идеально ложится на окружение, в котором находится сайт - а именно, серверные скрипты, создающие xml-ы для него и на back-end системы, которые наполняют контент. Положим, и на то, и на другое нам - флеш-разработчикам - более или менее наплевать: мы получили xml, а как он сгенерился, через что он прошел - это уже не наши проблемы, наше дело его прочесть и интерпретировать. Тем не менее, существующая система вложенности папок с контентом на сервере - те же самые готовые пути, нам не надо ничего придумывать чтобы как-то обозначить ту или иную информацию.