Flash на практике часть-10Flash на практике часть-9Flash на практике часть-8Flash на практике часть-7Flash на практике часть-6 Flash на практике часть-4Ответы на Ваши вопросыFlash на практике часть-2Flash на практике часть-1Интерактивность и ActionScript часть-7Интерактивность и ActionScript часть-6Интерактивность и ActionScript часть-5Интерактивность и ActionScript часть-4 ~ Lesson flash

четверг, 7 февраля 2008 г.

Flash на практике часть-10

Темой сегодняшнего выпуска послужило большое количество писем, в ко-торых авторы интересовались автономной работой flash проектов, а точнее соз-дание файлов с расширением exe. К нашему общему счастью Macromedia предусмотрела возможность публикации проектов в виде самостоятельных про-грамм. Профессионалы, несомненно знают что, достаточно в настройках пуб-ликации установить нужную галочку и файл будет создан автоматически. Итак, откройте панель Publish Settings File/Publish Settings [Ctrl+Shift+F12], снимите галочку с Flash на вкладке Formats, при этом автоматически снимется галочка HTML, осталось только установить галочку на Windows Projector и при жела-нии указать имя программы, сняв галочку Use Default Names. Ох, уж мне эти Галочки, Любочки, Ирочки ... нет я конечно не против, но иногда уж очень они надоедливы. Впрочем, я отвлекся. Все-таки лето, солнышко ... Теперь доста-точно нажать кнопку Publish и о чудо! В папке с сохраненным ранее проектом fla появился файл с расширение exe, который будет работать даже на компью-тере, на котором не установлен Flash.


Теперь поговорим немного о самом проекте, вернее о том, что требуется для нормальной работы в виде самостоятельной программы. Основное требо-вание - разбиение текста Modify/Break Apart [Ctrl+B] используемого в проекте (любого текста!). Если имеются динамические поля или поля для ввода, уста-новите для них стандартные шрифты. Можно установить включение шрифтов Use Devise Fonts на панели Text Options.


Созданный нами файл exe обладает парой неприятных для автора особен-ностей. Во первых в заголовке окна написано Flash, во вторых отражается стан-дартное меню и при нажатии правой кнопки мышки появляется контекстное меню Flash. Для того чтобы при запуске, программа открывалась на весь экран (при этом будет скрыта даже кнопка "Пуск") и блокировалось контекстное ме-ню (хотя все же, будет отображаться один пункт), необходимо в первом кадре вставить следующий скрипт:


fscommand ("fullscreen", "true"); fscommand ("allowscale", "true"); fscom-mand ("showmenu", "false");
А, для предотвращения возврата окна в обычное состояние при нажатии кнопки Esc добавьте строчку:
fscommand ("trapallkeys", "true");
В том, случае, когда размеры проекта не совпадают с масштабом полного экрана, необходимо предусмотреть цвет фона гармонирующим с основным фо-ном проекта или использовать стандартный - черный. В любом случае при от-крытии окна, проект сохранит пропорции без искажений.
Уж если, мы запретили сворачивание окна, необходимо предусмотреть за-крытие программы. Разместите на кнопке закрытия строчку:
fscommand ("quit");


И на сладкое, то о чем спрашивают больше всего - о сохранении информа-ции в файле. Оказывается, возможно и такое, но только для проекта с расшире-нием exe. Воспользуйтесь так называемым недокументированным действием:
fscommand ("save", "mydate.txt");


После исполнения данного действия в папке Вашего проекта появиться файл mydate.txt со всеми глобальными переменными проекта. Если необходимо сохранить какие то конкретные данные, без сохранения всего - поместите дей-ствие в отдельный объект, например кнопку, и присвойте внутренним перемен-ным значения глобальных. Теперь после выполнения действия в файле будут храниться только необходимые переменные, которые можно прочитать, напри-мер, при запуске программы или нажатия специальной кнопки следующим об-разом:
loadVariablesNum ("mydate.txt", 0);


Разумеется, имя файла, как впрочем и расширения могут отличаться от mydate.txt

Flash на практике часть-9

Рекомендации по изготовлению Flash баннера Существует ряд простых правил, придерживаясь которых Вы можете создавать Flash баннеры соответст-вующие принятым стандартам в международных баннерных системах. Следует сказать, что в России пока оплата на изготовление подобного баннера редко превышает стоимости растрового jpg, gif или png формата, хотя за рубежом ра-бота Web-мастера владеющего Flash ценится значительно выше. Как мне ка-жется, это связано, прежде всего, с тем, что многие, освоив примитивные азы, сразу пытаются на этом заработать. В результате, мы являемся свидетелями не-ряшливых и аляповатых поделок и как следствие, большинство заказчиков на-чинают считать работы на Flash, слишком простыми в изготовлении для на-стоящей оплаты. Конечно, сама технология не требует больших временных за-трат на сборку баннера, но разработка общей концепции и проработка сценария с учетом малого времени показа и ограничениями в объеме, накладывают осо-бые требования к Flash дизайнеру.

Использование Flash в рекламе очень инте-ресно само по себе и заслуживает отдельного разговора. В каждом конкретном случае имеются свои ограничения и выработанные стандарты, которых необхо-димо придерживаться в работе. Это касается не только баннеров, но и создание презентаций, рекламных роликов и разнообразных Flash заставок.


Но вернемся к тому, что нам ближе - к баннерам.


Основное требование всех баннерных систем, наличие в баннере кнопки управляющей переходом на Ваш сайт и отправляющей необходимые данные системе, для подсчета кликов по данному баннеру. Разумеется, достаточно соз-дать символ кнопки требуемого размера и разместить ее на баннере, присвоив ей необходимое действие (обычно достаточно GetURL с параметрами передачи данных). Я рекомендую для изображения кнопки, использовать прямоугольник основного цвета баннера и равный ему по размеру. Саму кнопку поместить в самый нижний слой. Таким образом, она будет выполнять сразу две функции; переход на сайт и служить фоном. Некоторые баннерные системы позволяют наличие нескольких зон нажатия с последующим переходом на соответствую-щие разделы рекламируемого сайта. У нас пока не так часто, можно встретить баннеры включающие в себя не только баннер сам по себе, но и небольшую ин-терактивную систему - микро-игру, систему навигации, управляемый клип и т.д. Пользователь настолько привык, что в баннерах используют элементы управления системы (кнопки, полосы прокрутки), что уже перестал обращать на них внимание. В результате, популярные за рубежом html-баннеры, не полу-чили у нас большого распространения, а к Flash баннерам, пока относятся лишь, как к разновидности анимированного gif.


Второй совет, может показаться странным, но его выполнение поможет избежать неприятных казусов. Заключается он во введении дополнительного, самого верхнего, слоя маски. Все нижележащие слои, разумеется, следует сде-лать маскированными. Зачем такие сложности, спросите Вы. Дело в том, что Flash баннер, может быть загружен не только на html странице, но и в так назы-ваемый FlashBannerBar. И если у Вас присутствуют въезжающие, или выле-тающие за пределы баннера элемента, то в случае, когда разработчики FlashBannerBar'a не предусмотрели автоматическую защиту, они будут видны за пределами баннера. Впрочем, вряд ли подобные рекламные технологии по-лучат у нас распространение, да и за рубежом это очень большая экзотика.


Пожалуй, самое главное правило, особенно для русскоязычных баннеров, или использующих декоративные, национальные и нестандартные шрифты. Обязательная разбивка (Modify/Break Apart) имеющегося текста. Тем самым Вы гарантируете одинаковое отображение баннера у всех пользователей. К сожа-лению, за все надо платить. В этом случае, увеличением объема. У начинающих баннер-мейкеров огромной популярностью пользуется программа Swish, по-зволяющая создавать текстовые Flash баннеры с разнообразными эффектами. Я всегда скептически отношусь к программам, рассчитанным на штамповку стан-дартных приемов в неограниченном количестве и предназначенных для школь-ников возомнивших себя крутыми дизайнерами. Не представляет труда повто-рить все предложенные эффекты в редакторе Flash. Конечно, это займет значи-тельно больше времени, но в результате мы получаем баннер меньшего объема, с авторскими эффектами, который будет оценен значительно выше.


Не рекомендуется, а в некоторых рекламных системах категорически за-прещаются фоновые звуки и эффекты сопровождения действий. Недавно, я был бесконечно удивлен, зайдя на собственный сайт "Учебный курс Flash". Те, кто на нем был, помнят, что на первой странице изображен аквариум с рыбками. Неожиданно для себя, я услышал собачий лай. Оказалось, что подобные звуки издает баннер системы UncleWeb, а вовсе не попавшая в аквариум рыба-пес :-).


Ничто так не увеличивает объем баннера, как импортированная растровая графика. Но порой только с ней, можно воплотить необходимое рекламное ре-шение. Работа с растровой графикой настоящее искусство, которое требует не только умения работать с соответствующими графическими редакторами, но и художественного таланта при дизайне баннеров. И если талант можно развить, то опыт лучше всего перенимать у профессионалов. Наиболее популярным яв-ляется редактор растровой графики PhotoShop. В интернет существует огром-ное количество сайтов посвященных работе с этой программой.


Создавая баннер, помните, что Flash позволяет реализовать те возможно-сти, которые раньше были недоступны. Старайтесь придерживаться популяр-ного рекламного принципа "волшебной тройки". Первая часть ролика должна заставить пользователя задержать взгляд на Вашем баннере. Второй части во-все не обязательно быть прямым логическим продолжением первой. Гораздо эффективнее прием неожиданности развитие сюжета. И уже после того, как зритель полностью Ваш, нужно убедить его нажать на баннер. Причем, это должно быть не тривиальное "нажми меня" или "кликни, что бы разбогатеть". Необходимо, что бы к этому времени пользователь был готов к переходу на Ваш сайт.


Как ни странно, но далеко не каждый, даже очень опытный Web-дизайнер может создавать эффективные баннеры. И дело здесь не в качестве графики или отсутствии (присутствии) анимации. Настоящая реклама, требует профессио-нального подхода. В большей степени следует ориентировать на психологиче-ские моменты, ведь именно от того станет пользователю интересно или нет, за-висит, нажмет ли он на баннер. Идеальный вариант, особенно при рекламе коммерческих проектов, наличие команды из трех специалистов: художника (web-дизайнера), психолога и специалиста по маркетингу (причем интернет-маркетингу).


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

Flash на практике часть-8

Сегодня мы займемся переноской тяжестей, а конкретно будем брать то, что плохо лежит, и нести туда, где это будет лежать хорошо, т.е. делать - Drag and Drop. Практическое применение подобный прием находит в различных иг-рах, которые на Flash сделать значительно быстрее и проще, чем другими сред-ствами.


Что Вы делаете, если Вам нужно перенести иконку на рабочем столе ком-пьютера из одного угла в другой? Берем иконку нажатием левой кнопки мышки и не отпуская кнопку перемещаем на необходимое расстояние, ставим иконку простым отпусканием кнопки. Таким образом, выполняется целый ряд опера-ций над объектом (иконкой): выбор объекта, его фиксация относительно курсо-ра мыши, перемещение и установка объекта при отпускании кнопки. За все эти операции отвечает действие Drag Movie Clip.


Drag Movie Clip - перетаскивание клипов Данное действие имеет целый ряд настроечных параметров, используя которые, можно создавать самые раз-нообразные проекты: Start Drop Operation - начать перетаскивание. Включив этот пункт, мы должны указать какой объект будет выступать в качестве груза для переноски. Target - имя целевого объекта, или говоря проще имя экземпля-ра клипа который мы станем перемещать. Constrain to rectangle - включив этот пункт, мы можем указать размеры области для перетаскивания. Размеры зада-ются в полях: Left, Top, Right и Bottom, значения указываются в пикселях Вле-во, Верх, Вправо и Вниз от центра того объекта в котором находится перетас-киваемый клип. Таким образом, можно ограничить возможные перемещения внутри определенной части проекта. Lock Mouse to Center - центровка перетас-киваемого клипа относительно курсора мыши. Этот параметр удобно включать, если перетаскиваемые клипы небольшого размера. Stop Drag Operation - отклю-чение режима переноски клипа.

Использование действия Drag Movie Clip, поначалу может вызвать некото-рое затруднение. Рассмотрим его применение на конкретных примерах. Для на-чала создадим проект, в котором вместе с указателем мыши будет неотступно перемещаться экземпляр клипа. Разместите на сцене экземпляр клипа из Вашей библиотеки Укажите в Instance Properties имя клипа, например Baloon В первом кадре проекта разместите скрипт следования клипа за курсором мыши, для это-го после выбора действия Drag Movie Clip, введите имя клипа (в нашем случае /Baloon) и отметьте Lock Mouse to Center. В результате мы получим: Start Drag ("/Baloon", lockcenter) Используя этот прием, можно получить интересные ре-зультаты, например во Flash5 добавлена команда отключения стандартного указателя мыши, таким образом, появилась возможность создавать собствен-ные мышиные курсоры для своих проектов.


Следует уточнить, что Lock Mouse to Center позиционирует клип относи-тельно его реального центра. Поэтому, если в самом клипе рисунок находится не точно по центру (о позиционировании объектов рассказывалось в 8 выпус-ке), то и при перемещении будет создаваться ощущение, что рисунок находится в стороне.


После того, как Вы поняли принцип работы действия Drag Movie Clip, научимся не только перемещать клип, но и предварительно его брать и ставить. Получается, что нам необходимо контролировать кнопку мыши, как Вы помни-те, для этого служит действие On Mouse Event, которое появляется только на кнопках.


Здесь приходится применять следующую хитрость: нужно создать клип, в котором будет располагаться кнопка с необходимым рисунком или без него, но с указанием области срабатывания (кадр кнопки Hit), создать для этой кнопки скрипт управления клипом расположенным на сцене, а этот клип не что иное, как экземпляр того клипа над которым мы сейчас и работаем. Получилось не-сколько запутанно, но надеюсь, дальше все станет на свои места.


Для работы нам нужен любой символ (рисунок или клип). Создайте новую кнопку Поместите в ней выбранный Вами символ, также можно разместить на соответствующих кадрах изменение символа в зависимости от действия. Соз-дайте новый Movie Clip В него из Вашей библиотеки скопируйте, только что созданную кнопку


Задайте для кнопки следующий скрипт: On (Press) Start Drag ("/dragclip", lockcenter) End On On (Release) Stop Drag End On Осталось только, скопировать созданный таким образом клип на сцену и указать в Instance Properties имя ука-занное в скрипте (в данном примере dragclip).


Как видите ничего сложного :)


Но применение действия Drag Movie Clip можно найти не только для пере-таскивания объектов. Бывают случаи, когда нужно узнать координаты курсора мыши. В этом случае необходимо создать "приклеенный" к курсору пустой символ и определять именно его координаты.


В примере Вы увидите использование перетаскивания объекта, опре-деление координат мыши и имени того объекта, над которым переносят клип.


Домашнее задание На этот раз я не стану давать Вам конкретный сцена-рий, а предложу принять участие в "Новогоднем проекте". Реальная работа Flash-дизайнера редко ограничивается индивидуальным творчеством, в боль-шинстве случаев необходимо уметь работать в коллективе. Какими бы хоро-шими профессиональными качествами Вы не обладали, одно из основных тре-бований предъявляемых при трудоустройстве в студию Web-дизайна, умение и опыт работы в коллективе, и разумеется, чувство общего стиля.

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


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


Желаю удачи!

Flash на практике часть-7

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


Если у Вас сложный проект с множеством подгружаемых частей, содер-жащих собственные объекты, которыми необходимо управлять или обеспечить необходимую последовательность воспроизведения. Даже если у Вас нет под-гружаемых частей, но в проекте имеются клипы, содержащие кнопки, которые управляют объектами, находящимися в других клипах, или их параметрами и данными, то необходимо каким-то образом это осуществить. Говоря официаль-ным языком программистов "Необходимо осуществить обращение к Timeline дочерних объектов и их данным из других дочерних объектов или родительско-го проекта". Но прежде, чем это сделать на практике, познакомимся с действи-ем Tell Target.


Определение клипа для его управления и изменения его данных. Предпо-ложим, что у нас на рабочей сцене имеется кнопка и клип, состоящий из 40 кадров, в первом кадре которого стоит действие Stop (т.е. клип остановлен на первом кадре). При нажатии на кнопку клип начинает проигрываться. Назна-чим кнопке скрипт производящий запуск клипа. Для этого, как обычно, откро-ем окно Instance Properties и щелкнем на закладке Actions. Из списка действий выберите Tell Target. В правом части появится поле со списком имеющихся на сцене клипов. Если Вы задали данное действие уже находясь в клипе, то при наличии в нем других клипов, они будут отражены. Если же Вы хотите обра-титься из клипа к другому клипу, но находящемуся на основной сцене или в другом клипе, Вам придется самостоятельно указать его местонахождения -путь (см.ниже). Выберете необходимый объект, дважды щелкнув по нему пра-вой кнопкой мыши. В поле Target появится его название, а точнее путь к дан-ному объекту (клипу), например /MovieClip Теперь Вам будет доступно управ-ление проигрывания клипа или его данными. В нашем примере, для запуска клипа movie скрипт будет выглядеть следующим образом: On (Release) Begin Tell Target ("/movie") Play End Tell Target End On


Очень удобно применять Tell Target, когда нужно показывать поочередно, по одному местоположению, множество различных клипов. В этом случае дос-таточно все клипы разместить в одном, но в разных кадрах и управлять именно им, например, задавая в команде Go to and Stop необходимый кадр.


Впрочем, если вы хотите изменить какие то параметры объекта, то прибе-гать к Tell Target не обязательно. Действия, требующие указания пути, уже со-держат необходимый пункт, в котором Вам необходимо его указать. Например, изученное в прошлом выпуске действие Load/Unload Movie или Set Property.


Пути к объектам К сожалению, далеко не всегда есть возможность указать объект (клип) просто щелкнув мышкой. Очень часто нужно самостоятельно вводить путь к объекту. Если у Вас есть опыт создания сайтов с несколькими папками, то Вы знаете принцип ссылок на страницы находящиеся в других папках. Во Flash указание пути происходит подобным образом. Что бы, не го-ворить понапрасну давайте, рассмотрим несколько возможных ситуаций:


Указание пути со сцены к клипу Movie: /Movie
Указание пути со сцены к клипу Happy находящемуся в клипе Movie: /Movie/Happy
Указание пути к сцене из клипа Movie ../
Указание пути к клипу Table из клипа Movie ../Table
Указание пути к клипу Happy находящемуся в клипе Movie из клипа Table: ../Movie/Happy


Разумеется, перечисленные варианты не охватывают всех возможных слу-чаев адресации, которые могут встретиться, но надеюсь, что теперь сам прин-цип для Вас понятен и как видите, не так уж страшен, как мог показаться вна-чале.


В нем вы увидите принцип управления клипом из выпадающего меню и звуковое сопровождение объектов (в одном из эпизодов применен синтез ре-чи с использованием программного обеспечения Microsoft).


Домашнее задание На сей раз, сделайте - телевизор с видеомагнитофоном. Проигрывание фильма производится с дистанционного пульта, на котором имеются кнопки перехода по эпизодам. В видеомагнитофоне стоит кассета с фильмом-сказкой "Приключение Колобка". Сценарий фильма: Жил, да был лы-сый выпускник ПТУ, прозванный Колобком. И решил он уйти от своих ста-реньких предков в поисках легкой наживы. И первое, что пришло в его стриже-ную голову - стать виртуальным наркобароном. И встретился ему крупный специалист по втягиванию в сети криминала - Заяц, больше известный под страшной кличкой Косой, которая приводит всех работников уголовного розы-ска и защитников авторского права в священную ярость. И начал он свой чер-ный бизнес - сбывая самый жуткий наркотик именуемый в официальных рек-ламных проспектах "время доступа в интернет". Но не сладко жилось Колобку. Матерый провайдер "Серый Волк" придушивший за свою деятельность немало колобков, мешал ему развиваться. Но не только сбытчики "ВДИ" (время досту-па в интернет) мешали Колобку развернуться во всю силу, но и профессио-нальный рэкетир - налоговый инспектор Медведь Бурый в униформе, старался наложить свою мохнатую лапу. Долго ли, коротко ли существовало частное предприятие "KolobokNet" никто не знает. Но за свою деятельность оно подса-дило на сеть не одну сотню наивных владельцев компьютеров. Так и процветал бы Колобок, так бы и румянились его щечки, и толстел кошелек, если бы не пришла однажды Лиса из министерства связи, и не рассказала бы всем о том, как замечательно будет жить при поминутной оплате. И начались тогда ломки страшные, и взбунтовались сетяне... А чем закончилась сказка, милый внучек, никто не ведает, потому, как и не сказка это, а страшная правда.


Технические требования: Пульт и телевизор - клипы. Показываемые сцены могут быть загружаемыми или находится непосредственно в проекте. Допуска-ется применение звукового сопровождения.

Flash на практике часть-6

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


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


- Что у человека на рабочем столе, то у него и в голове! И если на столе куча хлама и беспорядок, то и в мыслях полный бардак.


Конечно, это несколько преувеличено, но почему-то, с тех пор я невольно стараюсь быть максимально аккуратным. Впрочем я, кажется отвлекся и ушел от темы сегодняшнего выпуска. А, о чем я хотел вам рассказать? … Мммм… А! О загрузке информации. (Видимо, нужно навести порядок в своих дискетах :-)


Обычно, любая дополнительная информация загружается отдельной стра-ницей в том же окне броузера или в окне фрейма. Мне очень часто приходят письма, в которых встречается один и тот же вопрос - Как, вставить страницу HTML в проект Flash. Отвечаю - никак! Flash изначально создавался как бро-узенезависимый модуль, позволяющий отображать содержимое проекта одина-ково вне зависимости от броузера, операционной системы, и компьютера. Если бы была возможность интегрировать окно броузера в сам Flash проект, то ка-кому броузеру отдать предпочтение? Тут, вмешиваются вопросы бизнеса и межкорпоративной политики. Если создавать, собственное средство просмотра, то опять возникнут проблемы совместимости отображения информации. В пя-той версии Flash сделана попытка конвертировать XML (не путать с HTML) непосредственно в проект, но это совсем другая тема для разговора.


Пока же, эту проблему (вставки HTML во Flash) обходят следующим обра-зом: создают сайт состоящий из фреймов, боковые части которого, содержат Flash, а основная - HTML страницу. Этот вариант подходит для сайтов содер-жащих большой объем текстовой информации или для модернизации старого сайта и упрощения управления (например, избавлении от JavaScript и как след-ствии простоты и надежности работы). Но уж если Вы решили создать, сайт целиком на Flash, то необходимо научится подгружать дополнительные проек-ты непосредственно в уже имеющийся.


Загрузка внешних данных: У нас есть возможность загрузить в работаю-щий проект не только дополнительный файл формата swf, т.е по сути еще один проект, но и информацию из текстового файла или сгенерированную cgi. При-чем в первых двух случаях, на не важно, позволяет ли сервер использовать соб-ственные сценарии, главное, что бы он поддерживал корректную работу Flash (о необходимых требованиях к серверу читайте в 22 выпуске).


Загрузка данных из текстового файла Создайте основной проект, в котором будет редактируемое текстовое поле для отображения загружаемой информа-ции и пара кнопок для управления загрузкой.


Рассмотрим подробнее команду Load. Откройте окно свойств Instance Properties для выбранной кнопки или Frame Properties для кадра, как это сделать не раз описывалось в начальных выпусках ActonScript. Из списка возможных действий укажите Load/Unload Movie и установите необходимые параметры: Action Load movie into location -загружает файл формата swf на определенный уровень или в указанный объект. Unload movie from location - удаляет загру-женный ранее фильм с уровня или из объекта. Load variables into location - за-гружает данные, причем данные могут хранится не только в текстовом файле, но и генерироваться сценарием cgi.


В поле URL указывается адрес, по которому находится swf, текстовый файл или сценарий cgi.


Location - здесь мы указываем "локацию", т.е. место назначение, куда бу-дет загружена информация: либо уровень - Level, либо объект - Target. Мы с Вами уже знаем, что сцена может иметь несколько слоев, каждый из которых содержит объекты-символы, которые в свою очередь могут находится на раз-ном уровне по отношению друг к другу, но есть еще один тип уровней - уровни фильма.


Уровни фильма Создавая проект, мы имеем дело с фильмом нулевого уровня. Когда загружаем внешний файл формата swf, то как бы кладем его над основным фильмом. Сколько дополнительных фильмов Вы загружаете, столько уровней нужно указывать. В том случае, если Вы укажите номер уже имеюще-гося уровня, то фильм находящийся в нем будет заменен на загружаемый. Фильм, загруженный на определенный уровень, полностью доступен для управления, только в данном случае, необходимо будет указывать не имя объ-екта, а уровень. Если Вы хотите управлять объектами загруженного фильма или его данными, то будет необходимо указывать полный путь к объекту или дан-ным, но об этом мы поговорим в следующем выпуске.


Но загружать фильмы можно не только на уровни, но и в объекты клипов, что обычно и делается. В этом случае указывается не номер уровня, а путь к имеющемуся объекту (см. ниже). При этом будут сохранены параметры объек-та, т.е. размер, положение на сцене, угол поворота и степень прозрачности.


И последний параметр Variables - переменные: предназначен для опреде-ления способа передачи данных. Don't send - не отправлять. Send using GET - отправить методом Get (добавляет данные в конец адреса URL, используется, как правило, для совместной работы со сценарием cgi). Send using POST - от-править методом POST (удобен для отправки большого количества данных на-пример, обработка почтовых форм).


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


Задание данных в текстовом файле На самом деле особых премудростей здесь нет. Достаточно указать имя переменной и ее значение, если переменных несколько, они разделяются знаком & (амперсанд). Например: part=выпуск 25 учебного курса Flash&autor=Павел Г.Лапин вообще, согласно требованиям URLformencoded пробелы необходимо заменять на + или код %20, но как пока-зывает практика работы с Flash, даже обычный текст обрабатывается вполне корректно (в том числе и переводы строк). Также обрабатываются коды ANSII если задавать их после % в шеснадцатиричном виде.


В том файле, который нам необходим для работы, укажем любой текст в качестве значения переменной tablo и сохраним под именем text1.txt. Теперь создайте проект с текстовым полем и кнопками.


Предположим, что текстовому полю присвоено имя - "tablo", и при нажа-тии на первую кнопку в него будет загружена информация из файла text1.txt, тогда скрипт для первой кнопки будет: On (Release) Load Variables ("text1.txt", 0) End On


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


Для практического применения загрузки текстовых данных можно найти самое широкое и не только загрузка информации, но и создание различных сер-висных приложений. Ярким примером совмещения загрузки текста и внешнего клипа, служит MbA модуль, еще одним применением является возможность создания информационных панелей с ежедневно обновляемым содержимым (Вам достаточно заменять только текстовый файл).


Загрузка клипов Теперь, после того как мы разобрались с текстами, давай-те научимся загружать клипы. Конечно, можно загрузить фильм на определен-ный уровень, но в этом случае клип будет загружен в левый верхний угол и нам, нужно после загрузки заняться его позиционированием, что не совсем удобно, особенно если загружаемые клипы имеют один размер и должны заме-нять друг друга, а обычно именно так и происходит. Для этого необходимо, что бы у Вас был создан символ клипа, причем клип может содержать какое то на-чальное изображение или быть пустым, в последнем случае при помещении его на сцену установите необходимые размеры, задайте имя символа в Instance Properties (в нашем случае movie). Если имя загружаемого клипа будет, напри-мер, rings.swf то скрипт для кнопки вызывающей загрузку будет следующим: On (Release) Load Movie ("rings.swf", "/movie") End On


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



Домашнее задание Используя полученные знания создайте "Шкатулку Ра-дости". Уточнения к заданию: проект должен использовать загрузку текстовых данных из нескольких текстовых файлов, содержащих приличные анекдоты, и загрузку нескольких карикатур (не менее приличных, чем анекдоты). Как вари-ант - озвученный комикс журнал, каждая из частей, которого загружается до-полнительно в основной проект (проект в формате fla, подгружаемые части мо-гут быть swf).

Импорт звука Добавление звука в проект не отличается от импорта изо-бражения - достаточно в окне импорта File/Import открыть необходимый звуко-вой файл в формате wav. Именно в этом формате будет храниться звук в про-цессе разработки вашего проекта, впоследствии, при работе, Вы сможете вы-брать наиболее подходящий тип компрессии (причем mp3 не всегда предпочти-тельный вариант).


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


Добавление звука в Timeline Лучше всего, если Вы создадите для звука от-дельный слой. Так будет легче впоследствии с ним работать и синхронизиро-вать с изображением. Создайте новый слой, как Вы уже не раз это делали. Оп-ределите, с какого кадра должно начаться звучание и создайте ключевой кадр. Откройте окно свойств кадра Frame Properties. Выберите закладку Sound. В вы-падающем меню Sound найдите нужный звуковой файл. После выбора звука, Вы увидите его графическое представление и сможете задать необходимые па-раметры. Давайте узнаем, какие возможности настройки нам предлагает Flash.


Рядом с выпадающем меню Sound, отображается информация о выбранном звуке - частота, режим звучания, разрядность дискретизации и др.


Выпадающее меню Effect: None - без эффектов, Left Channel - звук только в левом канале Right Channel - звук только в правом канале Fade Left to Right - движение звука с левого в правый канал Fade Right to Left - движение звука с правого в левый канал Fade In - воспроизведение с увеличением громкости Fade Out - воспроизведение с затуханием Custom - ручное создание звуковых эффек-тов с использованием графического представления звука, и регулировки линии звуковой огибающей.


Выпадающее меню Sync: Event - полное воспроизведение звука с начала до конца. Рекомендуется для: фонового звучания при зацикливании, или коротких звуковых эффектов Start - если выбранный звук еще не закончился, то повтор-ного воспроизведения не будет. Очень полезная функция, особенно при дли-тельных звуковых эффектах у кнопок. Например, для предотвращения нежела-тельного эха, если пользователь проведет мышкой несколько раз над кнопкой, в которой звук приписан к событию Over. Stop - используйте этот параметр, ко-гда необходимо выключить определенный звук. Например, в десятом кадре, в результате определенного действия началось воспроизведение звука bumbum.wav общей длительностью в 15 кадров, но пользователь, после проиг-рывания 8 кадров, нажал кнопку перехода на другую сцену, следовательно, не-обходимо отключить проигрывание данного звука. Stream - режим синхрониза-ции. Включите данный параметр, когда хотите обеспечить привязку изображе-ния к звуку (именно так, а не наоборот). В этом случае, фильм будет жестко привязан к воспроизводимому звуку, т.е. если по каким то причинам, проигры-ватель Flash не успеет обработать графику она будет пропущена. Обычно это проявляется в менее плавном отображении анимации.

Чтобы предотвратить по-добное явление, рекомендую увеличить параметр fps: скорость воспроизведе-ния кадров в секунду - Modify/Movie. В поле Loops, Вы можете задать количе-ство повторов выбранного звукового файла.


Замена и компрессия звука Представим такую ситуацию. В процессе рабо-ты над проектом Вы импортировали звук, который использовали для озвучива-ния различных ситуаций (например, при нажатии множества разных кнопок и объектов). А, в последствии решили заменить звук, на более подходящий. Ко-нечно, можно импортировать новый звук и последовательно заменить его во всех используемых случаях, но как Вы понимаете, это не самое лучшее реше-ние. Flash позволяет работать над уже импортированным звуком, непосредст-венно из библиотеки проектов. При этом любое изменение параметров импор-тированного звукового файла автоматически отразится на всех объектах, кото-рые и его используют.


Откройте библиотеку Windows/Library [Ctrl+L] На выбранном звуковом файле щелкните дважды, левой кнопкой мыши - откроется окно Sound Proper-ties. В данном окне можно не только заменять звук на другой (кнопка Import), в том случае, если Вы отредактировали исходный звук, и он находится в той же папке и под тем же именем, что и используемый ранее для импортирования - нажмите кнопку Update.Существует прекрасная возможность выбрать тип сжа-тия звука, что позволяет оптимизировать объем готового проекта. Какие же ти-пы компрессии нам доступны? Default - по умолчанию: использует параметры заданные по умолчанию. С дефолтом мы очень хорошо знакомы и не станем плыть по течению, а попробуем самостоятельно установить необходимые па-раметры. Mp3 - очень популярный тип сжатия: порой позволяет уменьшить размер звукового файла в 10-15 раз без больших потерь в качестве звука. Варь-ируя параметры разрядности уровня качества, постарайтесь выбрать наиболее подходящий результат, как по звучанию, так и по занимаемому объему (вся информация отражается в нижней строке окна). Но, я рекомендую использовать этот формат, только для фоновой музыки или голосового сопровождения дос-таточной длительности. Дело в том, что на декомпрессию mp3 требуется неко-торое время (хотя и очень небольшое) и если звучание mp3 всего пару секунд, то возможны несинхронные задержки в момент распаковки звука. ADCPM - этот формат наибольшим образом подходит для небольших по длительности звуков (бипов, пиков, бумпов и пуков). Именно этот формат я рекомендую для коротких звуковых эффектов (нажатий кнопок, открывании меню и т.д.). Есть еще один формат позволяющий изменить частоту дискретизации - это формат Raw.


При работе со звуком, как и с изображением, необходимо придерживаться простого правила - "испортить легче, чем исправить" или говоря проще "ло-мать, не делать" :-) Принимая решение о импорте звука, предварительно подго-товьте его в wav редакторе, создайте необходимые эффекты и переходы, уста-новите нужные режимы модуляции и выставьте необходимый баланс, обяза-тельно уберите все искажения, особенно превышение пиковых порогов и лиш-ние шумы. Все это позволит при публикации проекта получить наименьший объем при достаточном уровне качества. Используя звук решите, что будет звучать в стерео режиме, а что в моно (моно занимает в два раза меньший объ-ем). Стерео хорошо подходит для масштабных звуков, призванных произвести эффект на сознание посетителя сайта, голосовые вставки и короткие звуки, можно безжалостно перевести в моно. В тоже время в насыщенных звуком про-ектах (например играх), можно добиться стереоэффекта используя разные ка-налы, или переход с одного канала в другой, для звучания моно фрагментов.


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


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


Разумеется, это не происходит автоматически и если Ваша работа с про-граммой сводится к бездумным попыткам сделать "как у того парня", можете не рассчитывать на успех. Нужно научится анализировать чужые работы, а не слепо их копировать. Увидев интересный Flash сайт, старайтесь думать, не как это сделано (хотя это тоже важно), а постарайтесь понять, почему автор выбрал именно это решение, чем обусловлен тот или иной эффект. Научившись анали-зировать, Вы незаметно для себя сможете, в зависимости от поставленной зада-чи, выбрать наиболее рациональное решение. Настоящий Мастер ценится, пре-жде всего, способностью мыслить и аргументировать выбранный вариант. Flash, пожалуй как никакая другая технология позволяет простыми способами получить желаемый результат. Конечно, умение логически мыслить и фило-софствовать не избавляет от необходимости владения Flash, именно этим мы и займемся в наших следующей лекции.

Flash на практике часть-4

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


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


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


Обычно, растровая графика значительно лучше воспринимается именно как статическое изображение и используется в основном, в качестве фона или вспомогательных элементов оформления. Создавая сайт с Flash дизайном пом-ните, что Ваша задача сделать его не только "до невозможности крутым", но самое главное максимально удобным для его посетителей. Это в первую оче-редь означает интересное содержание и скорость загрузки, которая напрямую зависит от объема Flash проекта и чем больше растровой графики Вы в него внедрите, тем больше он будет.


Теперь, когда я Вас запугал до нужной степени, займемся ввозом товара произведенного за рубежом, через границу, для его реализации внутри страны, т.е. импортом :))


Импорт графики: Как и в большинстве программ, в окне импорта File/Import достаточно выбрать необходимый графический файл и открыть его. Импортированное изображение будет помещено в библиотеку и вставлено на сцену в виде символа. Если вы импортируете файлы типа png или gif то будет сохранен режим прозрачности, в случае с анимированным gif, изображение ав-томатически будет разбито на кадры с сохранением временных промежутков. Для более удобной работы с файлами последнего типа, рекомендую импорти-ровать анимационную графику непосредственно в символ клипа т.е. Создайте новый "Movie clip" Insert/New Symbol Импортируйте анимационный файл


Полученный таким образом клип содержащий анимацию, можно легко помещать в необходимое место на сцене с нужного кадра, тем самым Вы избав-ляетесь от сложностей с покадровым позиционированием изображения. Эффект анимационного клипа импортированной графики получится, если Ваши файлы имеют одинаковые имена с цифровым окончанием, например - pics1.gif, pics2.gif и т.д. данные файлы будут импортированы в последовательные кадры. Данную возможность можно использовать для вставки во Flash анимации из других программ, не имеющих общего с Flash формата. Импортирование гра-фики не ограничивается растровым изображением.

Flash доступны основные векторные форматы таких программ как FreeHand, Adobe Illustrator, AutoCad и др. а если необходимо импортировать 3D графику - импортируйте ее покадро-во в формате ai (например Adobe Dimensoins). Когда Вы сканируете изображе-ние, не следует ставить разрешение более 75 dpi, тем самым Вы значительно сэкономите на объеме без потери качества. В качестве основного формата ре-комендую использовать png это позволит при малых объемах добиться высоко-го качества и меньшего размера редактируемого Flash проекта, в тоже время помните, что качество изображения в готовом файле swf зависит от установок публикации - используется формат jpg.

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


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


Работа с импортированной графикой не ограничивается простой установ-кой картинки в определенный кадр и необходимое место на сцене. Мы можем воспользоваться им в качестве заливки замкнутой фигуры.


Заливка импортированным изображением: Выделите импортированное изображение Разбейте его Modify/Break Apart Выберите инструмент Dropper - пипетка "возьмите" пипеткой "разбитое" изображение, оно станет текущей за-ливкой вместо обычного цвета при этом автоматически включится инструмент Backet - заливка Осталось, только "вылить" картинку в необходимую замкну-тую фигуру, при этом вы можете редактировать данную заливку как и гради-ентную, т.е. менять ее размер, перемещать в границах фигуры и поворачивать. Как это сделать читайте в выпуске, посвященном описанию инструментов.


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


Трассировка - перевод растровой графики в векторную

Выделите "неразбитое" изображение на сцене Откройте окно трассировки Modify/Trace Bitmap Установите необходимые параметры Color Threshold - различие цвета: указываем уровень различия цвета соседних точек (чем меньше число, тем больше векторов будет в рисунке). Minimum Area - минимальный размер вектора. Curve Fit - значение точности кривых при трассировке. Corner Threshold - уровень различия кривых и углов.


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


Но импорт изображений не ограничивается только описанными выше примерами. У Вас есть возможность импортировать во Flash проект даже ви-део, правда, только в формате QuickTime. Вы сможете налагать титры, вводить элементы управления и анимации на Flash. Однако все эти прелести можно бу-дет увидеть только при экспорте проекта в формат QuickTime.


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

Ответы на Ваши вопросы

Посвящено ответам на наиболее типичные вопросы, которые встречаются в Ваших письмах и в конце выпуска результаты домашнего задания. Со времени выхода первого выпуска - 13 июля было получено писем с работами и вопросами: 1294 Отправлено ответов, если в письмах задавались вопросы: 372


Поступали самые разнообразные вопросы, от работы с самим Flash, до просьб разобраться с разметкой страниц и исправлением допущенных огрехов что, по сути, является работой

??? Я установил прорамму flash4, но при запуске она требует ввести ФИО, Организацию и серийный номер, на моем диске серийный номер написан, но при его вводе программа отказывается от этого и пишет, что я должен ввести имя и серийный номер, а иначе не запустится :(( Я пробовал раз 5 - ничего не получается :(( Не поможите??? !!! Без комментариев!


??? Скажите пожалуйста, что имеется в виду под понятием градиентная за-ливка и как её вызывать !!! Градиентная заливка: закраска замкнутой области неоднородным цветом - градиентом (спектром) линейным или радиальным. Как вызывать градиент рассказано в выпусках посвященных инструментам рисова-ния.


??? При наборе русского текста во Flash 4 у меня неправильно выводится русский текст (выходит какая-то абракадабра). Как быть? !!! При выборе шриф-та в инструменте Text (в выпадающем меню Font)обращайте внимание на по-следнее слово в названия шрифта: Cyr - кириллические, СЕ - латиница. Должно работать. Если вы пользуетесь специальным набором шрифтов используйте специальные кириллические шрифты (например из наборов для работы с тек-стом в PhotoShop) или попробуйте изменить настройки Windows, но последнее делайте только в крайнем случае.


??? Все бы было хорошо, да вот только как карандашом ровную кривую сделать? !!! Итак, что бы нарисовать плавную кривую: Рисуем необходимую линию (фигуру, объект) карандашом (желательно выбрать модификатор Smooth. Для дальнейшей доводки кривой до совершенства - берем инструмент Arrow, выделяем кривую или ее отрезок (так можно редактировать сложные рисунки), использую модификаторы Smooth и Straighten (самого Arrow) доби-ваемся необходимого результата (нажимать на кнопку модификатора можно несколько раз) .


??? Скажите пожайлуста, чтобы предмет двигался по заданной мной линии необходимо сначала нарисовать предмет и задать линию, а потом добавлять но-вые слои, верно?? !!! Новые слои можно добавлять в любой момент, они не бу-дут влиять на ранее созданную или последующею анимацию. При работе с на-правляющими линиями следует четко представлять взаимосвязь слоев. Траек-тория движения всегда должна находится в направляющем слое Guide, объект движения в направляемом Guided, т.е. в слое находящемся под направляющем. Основное визуальное отличие направляющего слоя в том, что перед его назва-нием нарисована дуга, подчиненный ему слой или несколько слоев - сдвинуты право и находятся непосредственно под ним.

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


??? Я попытался создать символ мигающих индикаторов, выставил в пре-ференсах movie clip, но в процессе создания у меня в библиотеке высвечивался не только значёк самого символа, но иконки каждого Moution Tween. !!! Все правильно. В выпуске об анимации Motion Tween я упоминал, что будет авто-матически создан символ и помещен в библиотеку. Анимация в данном режиме предусматривает работу с готовым символом. Поэтому, можно заранее создать не анимированные символы и использовать их в качестве элементов в аними-рованных символах (перетащив из библиотеки в рабочее окно). При анимации Flash хранит информацию о перемещении символа, его прозрачности и другие параметры обработки.


??? Хотел на двух фото проверить Tweening Shape, но не получается: в 1-й кадр поместил 1-е фото, в 30-й Insert Blank Keyframe и и в него 2-е фото. На 1-м кадре дважды щелкаю мышкой, указываю Tweening Shape. Кадры с 1-го по 30-й становятся зелеными, появляется стрелка из 1-го в 30-й. Но при просмотре ни-чего не происходит, кадры со 2-го по 29-й пустые. Фото я импортировал во Flash из PNG-файлов. Подскажите, пожалуйста, что я делаю неправильно? !!! Описанный в рассылке метод преобразования предназначен для анимации соз-данных объектов самого Flash. В вашем случае, мы имеем дело с импортиро-ванным изображением (об импорте в будущих выпусках). Вы все делали пра-вильно, но после того как, фото импортировано его необходимо трассировать (перевести в векторный формат) Modify/Trace Bitmap (установив приемлемые для Вас параметры).


??? При трансформации движения каким то образом можно достич эффек-та шлейфа за движущимся объектом (в терминах виндов). Особенно это эф-фектно при вращении. !!! Можно, причем разными способами, все зависит от Вас. Простейший метод использовать дублирование с различными степенями прозрачности или осуществить этот эффект на ActionScript.


??? Подскажете как правильно прописать в флэш-менюшке пути к файлам, которые открываются в других фреймах. Суть в том что стандартное "Get URL ("/about.htm", window="_mainFrame")" не работает, файл открывается или в этом окне, или в новом. !!! Ваша ошибка заключается в том, что Вы при зада-нии имени окна использовали знак подчеркивания, который является служеб-ным. Если html страница находится в той же папке, то ссылка задается без / Все это могло привести к неправильной работе.


??? Flash поддерживает только wav файлы без компрессии, или можно ис-пользовать и мпег, и миди? !!! Импортировать музыку можно, только в формате wav или aiff (если Вы счастливый обладатель Macintosh). А вот при публика-ции, т.е. компиляции в swf можно использовать большое количество типов компрессии ( в том числе и мр3).


??? Объясните, почему у меня получается вставлять звуки только из стан-дартной библиотеки Flash!!! :(( При попытке вставить любой другой звук (на-пример, *.wav) Flash ругается, что ни одно из приложений не может распознать такой формат и вставляет звук в виде ярлыка!! В helpe ничего путного не напи-сано - File/Import - etc. В чем здесь может быть проблема? !!! Обычно, исполь-зование собственного звука не вызывает трудностей File/Import - выбираем зву-ковой файл wav (имя файла по англ.), файл помещается в библиотеку проекта Window/Library проблем быть не должно! О работе со звуком в будущих вы-пусках.


??? Достаточно легко можно научиться рисовать (я имею ввиду в широком смысле слова) некие эллементы, но значительно труднее из всех собрать до ку-чи. Хотелось выслушать, т.е. прочитать, некоторые концептуальные вещи, бо-лее глобальные по созданию дейтвитьельно законченного проэкта. !!! Прежде чем написать роман, нужно овладеть азбукой! Не забывайте, что рассылка на-зывается "Flash 4 для начинающих", после того как, будут изучены основы, можно будет базируясь на полученных знаниях, изучать дизайн и практическое использование Flash.


***

Но, очень часто встречаются письма совсем другого рода. Я не стану при-водить здесь, письма обиженных: из-за не включения их домашних заданий в список победителей, и использующих для выяснения вопросов ненормативную лексику. Обычно, отношусь к таким письмам спокойно, отношу их к разряду "физики - шутят" :) Предлагаю немного улыбнуться и Вам!
??? слушай... какой понт тебе заниматься лекциями? за это что-нибудь дают? есди чо, то я про рассылку по четвёртому флэшу... я, понимаешь ли, тоже спец и хочу поделиться знанием с народом... как ты на это смотришь? !!! На се-годняшний день, в России возрастает интерес к данной технологии, но источ-ников обеспечивающих обучение для начинающих, недостаточно. Ничего не дают, но хотелось бы, что бы давали... :)) Пожалуйста, если у Вас есть АВТОРСКИЙ материал, можете прислать.

Мы внимательно изучим, и если стиль описания и ценность материала будут соответствовать необходимым тре-бованиям, с удовольствием опубликуем, с сохранением авторства.
??? Привет Павел . Я являюсь твоим подписчиком , но если честно то не одного выпуска ещё не прочитал , т. к. просто нет пока времени да и Flash4 у меня не стоит , а сидюк загнулся . Но я все выпуски сохраняю и скоро начну обучаться . Вообщем у меня такой к тебе вопрос , т.к. я не давно приобрёл комп то не знаю даже для чего нужен этот флэш и что с помощью него можно сде-лать ? Заранее спасибо. !!! Что тут, можно ответить? Только: - "Заранее, пожа-луйста"

Flash на практике часть-2

Перед тем, как приступить к материалу очередного выпуска, позвольте из-виниться за произошедшую накладку: в результате моей невнимательности в zip файл, иллюстрирующий использование Random и дублирования символов, был запакован файл формата swf а не fla. Ошибка исправлена. Впредь, если Вы заметите ошибки или неточности, не стесняйтесь - пишите "Пара глаз автора - хорошо, а почти 5000 пар глаз читателей рассылки - лучше".


В прошлом выпуске, когда речь шла о предзагрузчиках, я не раз упоминал использование разных сцен в проекте. Разделение проекта на сцены очень по-могает при работе с большими по продолжительности эпизодами, особенно это чувствуется при необходимости проверить, как работает тот или иной отрезок фильма, Вам достаточно запустить тестирование не всего фильма, а только данной сцены Control/Test Scene [Ctrl+Alt+Enter]. Большинство из Вас, уже давно используют подобную возможность.

Я вижу это по Вашим работам, но пришло несколько писем, в которых меня просили объяснить, как создавать но-вые сцены, их назначение и т.д. Что же, рассылка и существует для того, что бы Вы могли научиться всем приемам работы во Flash.


Работа со сценами: Создание, редактирование и определение порядка сле-дования сценами происходит через инспектора сцен Window/Inspectors/Scene. Инспектор представляет собой окошко, со списком имеющихся сцен в левой части и кнопками управления в правой.


Назначение кнопок инспектора сцен: Add - добавить новую сцену. При нажатии, будет добавлена новая сцена. Изменение порядка сцен, а значит и их проигрывания, происходит так же, как мы меняем расположение слоев - пере-мещаем мышкой название сцены выше, или ниже по списку. Delete - О! Эта страшная кнопка, способна одним нажатием уничтожить всю Вашу работу, хо-рошо, что Flash перед этим убедится в Вашем душевном здоровье :-) Properties - Вы можете, изменить название выбранного слоя.

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


Быстрый переход между уже существующими сценами, возможен без вы-зова инспектора: нет, конечно, инспектор человек хороший, но лучше с ним не встречаться - особенно на дорогах :-). Над шкалой TimeLine, справа находятся две кнопки: одна для перехода по сценам, вторая для быстрого перехода в ре-жим редактирования символа.


Сегодня, мы научимся созданию, такого популярного в интернет элемента - выпадающего меню.


С меню подобного рода, работая на компьютере, мы сталкиваемся посто-янно - достаточно нажать кнопку "Пуск" и появится список возможных подме-ню, которые в свою очередь открывают другие и так далее, пока не будет вы-брана необходимая программа. В свое время, решив сэкономить на площади пространства одного из своих сайтов, я применил стандартный прием, написал простенький JavaScript и был доволен. Но, делая работу для одной фирмы, ко-торая впоследствии так и не была востребована из-за сложности поддержки, я решил уйти от стандартных элементов управления, выбор пал на dhtml. После нескольких дней мучений со слоями и изучению подобных, выпадающих меню, был создан вариант отдаленно напоминающий задуманный. Но, выяснилось, что в разных броузерах мое творение выглядит совсем по-разному.
Был решен и этот вопрос, но потом оказалось, что в результате код вырос до жутких раз-меров, а добавление новых пунктов было очень проблематичным.
Зачем я все это пишу? Просто хочу, что бы Вы могли реально оценить преимущества ис-пользования Flash в своих работах и не боялись воплощать самые смелые фан-тазии.


Выпадающее меню: Давайте, научимся делать выпадающие меню на про-стейшем примере. У нас будет кнопка, нажав на которую, пользователю откры-вается еще три кнопки, отвечающие за вызов определенной им html страницы на сайте с фреймами. Это наиболее типичное использование Flash для боль-шинства сайтов.


Для работы нам необходимо два символа кнопок. Одна - основная, откры-вающая меню и другая, которую мы будем использовать для вызова html стра-ниц. Еще нам понадобится заготовка сайта с двумя фреймами. Создайте новый символ (клип), например с именем "Menu" В первый кадр поместите открывающую кнопку Задайте ей действие "Play" Установите в первом кадре действие "Stop" Создайте новый ключевой кадр Установите для него действие "Stop" Поместите под открывающей кноп-кой, три кнопки (это должны быть экземпляры одной кнопки из библиотеки) Задайте для них открытие html страниц во фрейме с именем "framepage":
Дваж-ды щелкните левой кнопкой мыши на выбранной кнопке В открывшемся окне Instance Properties выберите закладку Actions Нажмите на кнопку с плюсом для открытия списка действий Выбираем Get URL В поле URL укажите адрес не-обходимой страницы, например page1.html


В поле Window указываем способ открытия страницы (выбор из списка) или вводите имя фрейма (не путать с именами фреймов-кадров во Flash), на-пример framepage В нашем случае скрипт будет следующим: On (Release) Get URL ("page1.html", window="framepage") End On Не забудьте для каждой кноп-ки сделать поясняющую надпись, например "Фото моего кота". Теперь осталось перенести получившийся клип выпадающего меню на сцену, размеры рабочей области которой, должны быть не меньше размеров нашего меню в открытом виде.

Если Вы предполагается использование выпадающего меню на сайте с фреймами - размер рабочей области должен соответствовать ширине фрейма в случае с вертикальным расположением или его высоте - при горизонтальном, но в любом случае не менее размеров открытого меню. Напоминаю, что размер проекта устанавливается в Modify/Movie [Ctrl+M]


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


В том случае, если количество присланных вариантов будет достаточным и их качество высоким, будет организована Flash библиотека для создания про-ектов на основе заготовок. Т.е. откроется новый раздел сайта, в котором, при необходимости, каждый найдет нужные компоненты или идеи для создания собственного проекта. По этой причине ограничения по времени нет, так же как и для задания 20-го выпуска, но в раздел примеров домашних заданий, а значит и упоминания в рассылке будут включены не более 3-4 человек приславших работы первыми и на должном уровне. Авторство работ помещенных в созда-ваемый раздел сайта будет сохранено, для этой цели желательно создать от-дельный неиспользуемый символ с текстовой информацией, его содержание может быть любым, в том числе и ссылки на собственные ресурсы, за исключе-нием сайтов нарушающих общепринятые нормы.

Flash на практике часть-1

Этот выпуск открывает новую серию, посвященную практическому использованию Flash при создании собственного сайта. Это не означает, что мы будем топтаться на месте и станем применять, только уже известные нам приемы и команды. Наоборот, мы продолжим изучение ActionScript на примерах, которые Вы сможете, включить в своих работы.


От чего больше всего устают во время работы? Нет! Не от самой работы :-) От однотипных и монотонных действий. Компьютер не человек и мы не услы-шим, как он жалуется на свою судьбу, выполняя длиннющие скрипты одинако-вых действий, но давайте создадим "комфортные" условия труда для этой тру-долюбивой железки и впоследствии, нам самим будет проще вносить измене-ния в проекты. Если необходимо выполнить определенные одинаковые дейст-вия с большим количеством объектов, то нет необходимости записывать их от-дельно для каждого объекта, достаточно применить цикл.


Цикл - Loop While Команда Loop While выполняет последовательность входящих в нее действий, только в случае, если заданное для проверки условие верно.


Рассмотрим конкретный пример: Set Variable: "cikl" = 0 Loop While (cikl <>

В результате, увеличение переменной "cikl" будет продолжаться до тех пор, пока ее значение меньше 5. Когда нам необходимо выполнить ряд одно-типных операций, данное действие просто незаменимо, еще одним его пре-имуществом является скорость выполнения, она не зависит от установленного значения Frame Rate (скорость показа фильма задается в Modify/Movie) в ин-тернет обычно говорят - "значение FPS".


Давайте научимся использовать циклы в своей работе. Предположим, что в вашем фильме должна быть сцена со звездным небом. Применив простейший цикл с изученным в 19 выпуске, дублированием, Вы можете расположить слу-чайным образом, необходимое количество звездочек на небосводе, и самое за-мечательное, что каждый раз созвездия будут другими. Кроме того, значитель-но сократится объем самого фильма, а для интернета это имеет очень большое значение. Нам понадобится символ звездочки на сцене и всего один кадр. Я не стану приводить полный код скрипта (что может быть приятнее, чем самостоя-тельно написанная программа?), а только дам несколько рекомендаций: Перед циклом задайте начальное значение счетчика, которое впоследствии, Вы смо-жете использовать для создания новых имен символов при дублировании, ука-зании необходимого уровня размещения (помните про стремление к наиболь-шей оптимизации скрипта). Для случайного определения положения звезды применяйте "Random" Чтобы придать звездному небу более реальный вид до-бавьте установку прозрачности "Alpha" Не забудьте изменять значение счетчи-ка, иначе Ваш цикл никогда не будет завершен и фильм просто остановиться.


Рассмотрим реальную ситуацию: Вы в поле лица трудились, аж целых два дня, создавали свой шедевр, который, несомненно, заставит ваших конкурентов лопнуть от зависти, импортировали все красивые картинки, которые были в на-личии и ко всей этой радости записали голосовой комментарий. Получилось несколько тяжеловато (мегобайта 2-3), ну да это ерунда, зато круто! Закачали свое чудо на любимый сайт и решили посмотреть, как все это "идет"… а "идет" плохо, кадры загружаются рывками, прорисовка странная и голос обрывается, но самое досадное, куда-то пропала вся крутость. Я сейчас не буду рассуждать о целесообразности импортированной графики или советовать использовать потоковый звук, все это будет позже. Реально оценить, как будет загружаться Ваш фильм, можно и без подключения в интернет.


Тестирование скорости загрузки: Во время обычного тестового просмотра Control/Test Movie откройте меню "Control", установите скорость загрузки, на-пример - 14,4 (1,2 Kb/s) и выберите Show Streaming. Фильм начнет проигры-ваться с самого начала и эмулировать загрузку с выбранной скоростью. Вы мо-жете получить множество полезной информации о времени загрузки кадров, их объеме, если включите окно информации - View/Bandwidth Profiler.


Вы, несомненно, не раз видели сайты, на которых процесс загрузки сопро-вождается выводом информации о загруженном объеме. Это так называемые предзагрузчики. Они просто незаменимы при размещении своих работ в интер-нет. Имеет смысл использовать предзагрузчики во всех случаях, когда объем swf файла более 10-15 кб.


Предзагрузчик: Какие данные нам нужны для определения загруженного объема фильма? Разумеется, мы должны знать, сколько кадров всего в фильме. Можно указать это вручную, но ведь мы хотим создать универсальный загруз-чик, который будет работать независимо от того в каком проекте, мы станем его использовать, в этом нам поможет параметр "_totalframes". А еще нам нуж-но знать, сколько кадров загружено на данный момент "_framesloaded". Этих двух параметров достаточно для вычисления загрузки в процентах, как это принято в интернет. Загрузчик должен состоять, хотя бы из двух кадров, в пер-вом будет вычисляться необходимое нам значение, а во втором производиться проверка на полную загрузку, и если фильм загружен начать его показ.


В первом кадре вставим следующий скрипт: Set Variable: "load" = Int ( _framesloaded / _totalframes * 100)
Т.е. присваиваем переменной "load" значение загруженного фильма в про-центах. Для этого разделим количество уже загруженных кадров на их общее количество и умножим на сто. Но, полученное значение желательно округлить (не будем же мы утомлять зрителя докладами о тысячных процентах загрузки :), для округления служит функция "Int", которая просто отбрасывает все циф-ры после запятой.


Во втором кадре поместим проверку и вывод информации: Set Variable: "showtext" = load & "%" If (load < 100) Go to and Play (1) End If

В первой строке выводится информация о загрузки в процентах, для этого необходимо, что бы на сцене было текстовое поле с именем "showtext". Далее идет проверка на полную загрузку и если загружено менее 100% то переходим на первый кадр, для получения нового значения.


Это типичный вариант предзагрузчика, но далеко не единственный. Если проект более 500 Кб, то смотреть на медленно ползущие проценты, не доставит большого эстетического удовольствия. В этом случае, гораздо привлекательнее использование пошаговой загрузки, т.е проверить загруженность первой, не-большой части фильма, начать его показ и пока идет проигрывание данной сце-ны броузер продолжит загрузку, по окончании сцены проверяется загрузка сле-дующей, если еще не загружено, то попросить подождать. В этом случае необ-ходимо рассчитать возможное время загрузки и проигрывания сцен. Для реаль-ной проверки, используйте тестирование с разными значениями скорости за-грузки. Для пошагового предзагрузчика, конечно можно использовать описан-ный выше метод вычисления загрузки, но эффективнее, особенно если у Вас фильм состоит из нескольких сцен, делать проверку на загрузку определенного (конечного) кадра.


Проверка загруженного кадра - If Frame Is Loaded (FrameNumber) Это уже знакомый Вам условный оператор "If", но в данном случае в качестве условия проверки, служит указание конкретного кадра "FrameNumber". Рассмотрим его параметры: Выпадающее меню "Scene" - сцена в которой мы будем делать про-верку, по умолчанию стоит значение - текущая сцена, т.е. если у Вас весь фильм состоит из одной сцены то значение менять необязательно. Frame - здесь мы указываем номер конкретного кадра, имя метки кадра "Label" (что, разумеется удобнее) или, если выберем вариант "Expression", вычисляемое условие (применяется при создании проектов построенных по модульному принципу). В рабочем виде данный условный оператор, может выглядеть сле-дующим образом: If Frame Is Loaded (Scene 2, "end") Go to and Play (Scene 2, "start") End Frame Loaded Go to and Play (25)


Предположим, данный скрипт находится на сцене "Scene 1" в конечном, 30-ом кадре. После того, как закончится проигрывание первого эпизода, т.е. фильм дойдет до 30-го кадра первой сцены, произойдет проверка - "а не загру-зилась ли вторая сцена?". Если нет, то фильм перейдет на 25-й кадр текущей сцены и после того, как условие станет истинным, т.е. вторая сцена будет за-гружена, произойдет ее запуск.


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


Домашнее задание: Как обычно будем придерживаться темы текущего но-мера. На этот раз мы изучили предзагрузчики. Кроме вывода процентной ин-формации, обычно предзагрузчик содержит небольшой клип оживляющий вре-мя ожидания. Ваша задача создать заставку для предзагрузчика. Основные тре-бования: небольшой объем, оригинальный подход (песочные часы, термометры и летящие в папку бумажки не принимаются), возможна привязка к загружен-ному объему.

Интерактивность и ActionScript часть-7

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

Разумеется, начав, учится Flash, и без особых проблем освоив принципы анимирования, могло создаться ощущения простоты в реализации любого сценария. В большинстве случаев так оно и есть, но если Вы действительно хотите создавать серьезные работы, Вам просто необходимо научится писать скрипты. Это не так сложно, достаточно понять основной принцип построения команд и их синтаксис. Именно поэтому, я стараюсь подробно описать, что нужно сделать, что бы добиться поставлен-ной задачи. Начиная с этого выпуска, Вы можете не только прочитать, но и по-смотреть приведенные примеры в авторском (т.е. моем) варианте. В настоящий момент на сайте выложены материалы данного выпуска и пример скроллинга текста (именно он вызвал наибольший поток писем), каждая работа имеет ком-ментарии, которые помогут разобраться со скриптом.


Перед тем, как начать очередной урок, хочу рассказать Вам о своем новом проекте - "персональной мини-системы кнопочной рекламы". Большинство из Вас имеет собственный сайт, а зачастую и не один. Любой кто создавал свой сайт сталкивался со сложностями имеющихся на нем кнопок 88х31. Размеще-ние кнопок крайне неудобно с точки зрения дизайна сайта, большое количество установленных кнопок сильно замедляет общую загрузку страниц, что вызыва-ет раздражение посетителей и может даже привести к их уходу с сайта.

В то же время мы хотим, что бы наша кнопка, не висела безрезультатно на других сай-тах, оставаясь незамеченной среди множества других. Как решить эти и множе-ство других вопросов? В результате был разработан MbA модуль использую-щий возможности Flash технологии. MbA модули основаны на едином универ-сальном принципе, который позволяет обеспечить максимальные удобства как для Web мастера, так и для посетителей сайта.
Web-мастер получает в свое рас-поряжение удобное средство, избавляющее его от необходимости решения проблем, размещения большого количества кнопок на сайте. Случайный выбор демонстрируемой кнопки и ее текстовое описание гарантирует справедливое распределение площади при большем рекламном эффекте. Отсутствие необхо-димости применения JavaScript и cgi избавляет от зависимости размещения на конкретном сервере.

Индивидуальная гибкая настройка, обеспечивает идеаль-ное внедрение MbA модуля в дизайн любого сайта и каждой страницы в от-дельности. Вся универсальность MbA модуля открывается при размещении всех рекламных компонентов (кнопок, текстов) на одном сайте, а использова-нии модулей на различных сайтах.

В этом случае, при добавлении или любом изменении в рекламном наборе, автоматически произойдет изменение на всех Ваших сайтах. Таким образом, Вы можете организовать собственную систему обмена кнопок по единой тематике сайта и пригласить для участия в ней всех у кого тематика сайтов совпадает с Вашей.


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


"Самый простой способ увеличить посещаемость Web-ресурса - создать для его посетителей максимальные удобства и сервис".


Более подробную информацию о MbA модулях Вы можете найти на стра-нице "MbA".


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


Случайное числовое значение: Random (number) Определяет (если следо-вать терминологии программистов - возвращает) число от 0 до указанного чис-ла - number, например: Set Variable: "rnd" = Random (20) Присвоит переменной "rnd" случайное число от 0 до 19. Если нам необходимо, сгенерировать число в диапазоне от 300 до 400 то это указывается следующим образом: Set Variable: "rnd" = Random (101) + 300


Применив данную функцию, Вы сможете без проблем создать игру "Уга-дайка". Все, что для этого необходимо: два редактируемых текстовых поля, па-ра кнопок и максимум 4 кадра: В первом кадре компьютер "загадает" число, во втором будет ожидать ввода варианта, в третьем проверит Вашу интуицию (ес-ли не угадаете, вернется во второй кадр), а в четвертом поздравит с победой. Уверен, что с этой работой Вы справитесь за 10-15 минут, ну а если возникнут сложности, посмотрите на мой вариант в разделе "Скачать".

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


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


Дублирование - создание копии имеющегося на сцене символа клипа. Как мы берем символы из библиотеки и устанавливаем их в необходимое на место на сцене, так и дублирование копирует те символы, которые есть на сцене или удаляет уже скопированные символы. Действие Duplicate/Remove Movie Clip - создание или удаление копий экземпляров символов. Давайте посмотрим, как использовать данное действие. Разместите на сцене символ, задав ему режим Movie Clip и присвоив имя "copy", так как было описано в предыдущих выпус-ках.

Нам еще понадобится кнопка, которую мы заставим работать ксероксом, копируя символы. Выберите из списка действий Duplicate/Remove Movie Clip. В правой части появятся режимы выбора действия Action: Duplicate Movie Clip - создать копию Remove Movie Clip - удалить копию В поле Target указывается путь к копируемому образцу, для этого нажмите кнопку, справа от поля и вы-берите значение Target Editor, в открывшемся окне появится список доступных символов (объектов), часто при работе со сложными проектами необходимый символ отсутствует в списке, такое может происходить по разным причинам (действие устанавливается в кадре, до появления символа на экране, символ может быть вложенным в другой символ или его имя генерируется автоматиче-ски), в этом случае вы указываете путь к имени символа вручную (например /NameClip).

В поле New Name - указывается имя создаваемой копии, при этом могут задаваться, как произвольные имена, в случае с индивидуальным копи-рование, так и генерируемые скриптом, в случае многократного копирования.

В поле Depth - указываем номер уровня, на котором будет находиться наша ко-пия. Рассмотрим следующий скрипт: On (Release) Duplicate Movie Clip ("/copy", "second", 1) End On Тем самым мы создадим копию символа "copy" с именем "second" на первом уровне. Но новый символ будет расположен в том же место, что и старый, и мы можем просто не увидеть, что копирование произошло. Да-вайте укажем, где должен находится скопированный символ:
On (Release) Du-plicate Movie Clip ("/copy", "second", 1) Set Property ("/second", X Position) = 200 Set Property ("/second", Y Position) = 50 End On Конечно, Вы узнали изученное в прошлом выпуске действие Set Property. Попробуйте усовершенствовать дейст-вия для кнопки, пусть при каждом нажатие создается новый символ, с разными координатами и степенью прозрачности.

Небольшая подсказка: перед дублиро-ванием создайте имя, образованное путем объединения текстового значения и счетчика копий.


Домашнее задание: На этот раз, снова сочинение на вольную тему. Жду Ваших работ с применением полученных знаний.

Интерактивность и ActionScript часть-6

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


Предположим, что у Вас несколько пейджеров, с именами следующего ви-да "pager321", а номер необходимого пейджера вводится в поле с именем "number", поле для ввода текста "text", тогда весь скрипт, сводится к одной строчке: Set Variable: "pager" & number = text Подобным образом, можно ис-пользовать комбинирование и объединение для создания динамических масси-вов (наборов данных имеющих один тип и общее имя).


Сегодня мы научимся управлять экземплярами символов непосредственно ActionScript. ActionScript предоставляет нам удобную возможность изменять любые свойства находящихся на сцене объектов. При желании, можно создать фильм, состоящий из одного-двух кадров, тем не менее, полный движения. Очень часто, написание небольших по объему скриптов избавляет от необхо-димости создания сложных сцен и позволяет значительно сократить размеры рабочего файла. Существует целое направление вычисляемой графики, ярким примером построения фантастически красивых изображений, служит фрак-тальная графика, но речь сейчас, не об этом. Посмотрим, каким образом можно перемещать объект на экране, задавая его координаты. Подготовим необходи-мый минимум. Для работы нам понадобятся: два текстовых поля для ввода ко-ординат, два символа находящихся в библиотеке - кнопка и объект для пере-мещения. Разместите на цене редактируемые текстовые поля с именами "х" и "у" Перенесите из библиотеки символы кнопки и перемещаемого объекта Оста-лось задать имя объекта (например, toy), над которым мы будим ставить наши жуткие эксперименты.
Имена экземпляров символов: дважды щелкните левой кнопкой мыши на символе находящемся на сцене


откроется окно Instance Properties установите поведение символа (Behavior) - Movie Clip, даже если это статичное изображение в поле Instance Name указы-ваем имя экземпляра (желательно покороче, латинскими буквами) нажмите ОК Управление объектами осуществляется с помощью действия Set Property.

Установите его для кнопки, как Вы уже не раз это делали с другими дейст-виями. В правой части окна станут, доступны следующие пункты: Set - в этом выпадающем меню, мы выбираем необходимое свойство объекта, (перечень ниже). Target - указываем имя объекта (в нашем случае - toy), если объект нахо-дится на другом уровне, клипе и т.д., необходимо указать путь к нему (в буду-щих выпусках). Value - указываем задаваемое значение


Установите присваивание значений заданных в текстовых полях для коор-динат перемещаемого объекта. В результате скрипт будет следующим: On (Re-lease) Set Property ("toy", X Position) = x Set Property ("toy", Y Position) = y End On


Если во время тестирования проекта, вы укажите нужные значения в полях и нажмете кнопку, то объект переместится в заданные координаты. Чтобы изу-чить все возможные варианты управления объектом, добавьте отдельные поля для каждого значения и установите для кнопки соответствующие действия Set Property: X Position - положение объекта по горизонтали Y Position - положение объекта по вертикали X Scale - ширина объекта в процентах по отношению к установленному ранее значению Y Scale - высота объекта в процентах по от-ношению к установленному ранее значению Alpha - прозрачность объекта; диапазон значений от 0 - прозрачный, до 100 - непрозрачный) Visibility - вклю-чение/выключение объекта; True - включен, False - выключен (в этом случае другие параметры изменить невозможно) Rotation - вращение объекта; значения задают в градусах (положительные - вращение по часовой, а отрицательные - против) Name - определяет имя объекта Далее следуют параметры, изменение которых управляет всем фильмом: High Quality - установка качества показа; 0 - низкое, 1 - нормально, 2 - качественное Show Focus Rectangle - включает рамку при переходе по кнопкам при нажатии [Tab]; True - показывает рамку, False - рамка скрыта.

Sound Buffer Time - установка размера буфера звука в секундах, при использовании потокового звука (в будущих лекциях)


Обязательно, проверьте все параметры, так Вы сможете освоить управле-ние объектами значительно лучше, чем просто читая об их назначении. И пом-ните - "Тяжело в учении, а ... дальше будет не легче" :)


Домашнее задание: Теперь, когда у Вас есть достаточные познания в ActionScript, создайте компьютерную игру "Путешествие таракана" или анало-гичную с перемещением объекта. Конечно, это будет довольно примитивный вариант, но так Вы научитесь реализовывать задачи, поначалу кажущиеся очень сложными. Уточнения к заданию: управление тараканом происходит с помощью специального пульта, реагирующего не только на нажатия виртуаль-ных кнопок, но и клавиш клавиатуры, таракан должен двигаться в соответствии с нажатой кнопкой, его координаты и угол поворота отображаются на дисплее пульта.

Интерактивность и ActionScript часть-5

Работая над заданием прошлой лекции, Вы могли обратить внимание, на необходимость прокрутки больших сообщений на дисплее пейджера. Конечно, можно просто щелкнуть мышкой на нужном текстовом поле и нажимаю кнопки перемещения курсора, прокрутить текст. Но, часто приходится отключать дос-туп пользователя к тексту, блокировать выделение и копирование .


Тем не менее, необходимо обеспечить комфорт для пользователя при про-смотре Вашего сайта. Создавая любой проект, помните, что человек может про-сто не догадываться о тех возможностях, которые Вы использовали. Самый простой способ обеспечить прокрутку текста - создать клип с этим проплы-вающим текстом (Вы уже можете без проблем это сделать). Но у посетителя Вашего сайта есть полное право, требовать от вашей работы удобства. Основ-ное правило, которым следует руководствоваться при создании собственного сайта: - "Все, что Вы делаете, Вы делаете не для себя, а для тех, кто будет смот-реть ваше произведение и если Вы не можете обеспечить простоты и удобства для клиента, то это Ваши проблемы и никогда не нужно обвинять клиента в глупости".


Мы все привыкли к стереотипам. Если на экране есть текст непомещаю-щийся в отведенное ему окно, то мы неосознанно двигаем мышь к правому краю в поисках полосы прокрутки. Если мы видим кнопку, то нам хочется на нее нажать и посмотреть, что будет. В случае с текстом необходимо преду-смотреть его прокрутку по желанию зрителя, а если есть кнопка, даже непохо-жая на обычную кнопку, ее необходимо располагать в ожидаемом месте. Так Вы избежите ситуации, в которой, показывая кому-то, белый лист бумаги буде-те утверждать, что на нем нарисован белый медведь, которому срочно понадо-билось зайти во-о-он за тот белый айсберг. :-)


Как же заставить текст в поле перемещаться в зависимости от нажатой кнопки? У текстовых полей есть два замечательных параметра: scroll - опреде-ляет номер верхней строки в поле maxscroll - вычисляет номер последней верх-ней строки, т.е. номер строки, которая будет верхней в поле после прокрутки всего текста


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


А, теперь усовершенствуем пейджеры из прошлого задания. Предполо-жим, что у нас есть пейджер с текстовым полем "pole" в качестве дисплея, ко-торое может вместить в себя 2-3 строки: надеюсь, при создании текстового по-ля Вы не забыли включить режим многострочности и переноса по словам? До-бавим к нему две кнопки прокрутки. Для одной из них зададим прокрутку тек-ста вниз, т.е. мы будем увеличивать значение номера верхней строки для свой-ства scroll, а второй кнопкой - его уменьшать. Скрипт для первой кнопки, в на-шем случае, будет выглядеть так: On (Release) Set Variable: "pole.scroll" = pole.scroll + 1 End On


Осталось, назначить второй кнопке аналогичный скрипт, но уменьшающий значение "pole.scroll".


Не станем останавливаться на достигнутом, и усовершенствуем терминал. До этого, для оправки сообщения на нужный пейджер, Вы нажимали на соот-ветствующую кнопку. Но ведь на настоящих пейджинговых станциях нет пуль-тов с перечнем всех номеров абонентов. Не должно быть их и у нас! Добавим к терминалу еще одно редактируемое текстовое поле, в которое будем вводить номер нужного пейджера и отправлять сообщение нажатием на одну-единственную кнопку. Если с окошком для номера у нас проблем не должно возникнуть, то как определить на какой же пейджер оправлять сообщение, даже если введен его номер? В этом нам поможет действие "If".


If - условный оператор, определяющий последовательность действий в за-висимости от истинности заданного условия. Полностью выглядит следующим образом: If (условие) Действие (одно или несколько), если условие верно. Else Если нет, то выполняется данное действие End If


В нашей жизни мы постоянно стоим перед выбором, что сделать в кон-кретной ситуации, что ответить на услышанное, читать этот выпуск дальше или удалить его с компьютера и т.д. Типичным примером реализации алгоритма выбора является фрагмент сказки знакомой нам с самого раннего детства: …"И остановился Иван царевич (Илья Муромец, добрый молодец и др.) перед кам-нем, а на камне том надпись; на право пойдешь - деньги найдешь, налево пой-дешь - красну девицу встретишь, а прямо пойдешь - голова с плеч".


На ActionScript это можно записать так: If (Ivan eq "Right") Go to and Stop ("Money") Else If (Ivan eq "Left") Go to and Stop ("PrettyGirl") Else If (Ivan eq "Forward") Go to and Stop ("Death") Else Go to and Play ("GoBack") End If


Обратите внимание на используемый символьный оператор "eq", который мы применяем в данном случае для проверки переменной "Ivan". Если бы мы записали: If (Ivan = "Right") это было бы неправильно, т.к. мы в данном случае проверяем переменную на соответствие символьному значению. Else If исполь-зуется, если необходимо проверить переменную на соответствие нескольким значениям. Включается "Else" или "Else If" в действие "If", следующим обра-зом: Включите действие "If" После введения условия проверки и действия вы-делите строку с действием "If" Нажмите кнопку "Add Else/Else If clause" Перед завершающей командой "End If" появится "Else", когда вы выделите строку "Else", то сможете изменить ее на "Else If" Теперь можно легко проверить какой номер введен и отправить сообщение на нужный пейджер. Попробуйте, сделать это самостоятельно.


Использование условного оператора "If" дает большие возможности в реа-лизации задуманных проектов. Кроме решения чисто технических вопросов при работе над проектом, условные операторы можно применить для большей интерактивности сайтов. Теперь, без сложных запросов cgi и перепроверки ад-министратором сервера, Вы можете организовать "вход по пропускам", т.е. по паролю к различным частям Вашего сайта. Конечно, это не обеспечит полной защиты данных html страниц, но обеспечить запрет перехода на следующие сцены посторонним, вполне возможно. Элементарнейшим образом решаются вопросы создания сайтов по прохождению различного рода тестирования и т.д. без знания JavaScript.


Домашняя задание: До сих пор, Вы работали по моему сценарию, но на этот раз я решил не сдерживать Вашу фантазию. Принимаются любые Ваши работы, но только при условии, если они содержат материал последних двух выпусков: Необходимо придумать собственный сценарий и осуществить его. При реализации проекта, обязательное использование ActionScript - действий Set Variable, If и режима ручной прокрутки текста. Желаю удачи!


В завершении лекции, еще несколько слов: Создавая любой проект и ис-пользуя при этом ActionScript, стремитесь максимально оптимизировать и уни-версализировать код скрипта. Есть простое правило, определяющее уровень ра-боты любого программиста - "код программы хорош, только в том случае если его можно использовать без переделки в другой программе". ActionScript не яв-ляется исключением. Старайтесь писать скрипт, так чтобы при изменении про-екта не приходилось заново переписывать все подпрограммы. Например, Вы написали скрипт, определяющий введенный номер и посылающий сообщение на нужный пейджер. Но вот вы решили добавить еще пару пейджеров, Вам придется дописывать новые строки "Else If", хотя можно всю эту подпрограмму заменить одной единственной строкой и в дальнейшем Вы сможете добавлять или удалять пейджеры без изменения самого скрипта. Разумеется, проект с пейджерами приведен только в качестве примера, но уверен смысл необходи-мости создания универсальных модулей Вам ясен.

Кстати, кто из Вас догадал-ся, как создать универсальный код для отправки сообщения по нужному номе-ру? Подчеркиваю, что все необходимые знания для этого Вы уже имеете!

Интерактивность и ActionScript часть-4

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


А, пока немного отвлечемся и вспомним материал предыдущего выпуска: нам это очень пригодится сегодня. Как, Вы знаете, при работе с кадрами, мы можем задавать определенные имена-метки, используя их в дальнейшем для переходов к различным эпизодам: метки кадров могут служить не только для перехода, но и содержать подпрограммы на ActionScript выполнение которых, возможно без перехода на данный кадр (в будущих выпусках). Метки могут (и должны) быть заданы для экземпляров символов из библиотеки и для тексто-вых редактируемых полей. Посмотрим, как это сделать.


Имена редактируемых полей: щелкните правой кнопкой мыши на поле вы-берите Properties откроется окно Text Field Properties: со значениями его пунк-тов мы знакомились в одном из выпусков в поле Variable введем имя поля оста-лось нажать ОК Для чего же это нужно? Теперь, когда у поля есть имя, мы смо

жем управлять его содержанием,
выводить необходимый текст или вычис-ляемые значения. Применим полученные знания на практике. Создадим поле, в котором текст будет меняться в зависимости от нажатой кнопки: Для работы необходимо создать текстовое редактируемое поле с именем (например pole) на сцене и символ кнопки в библиотеке. перенесем кнопку на сцену и напишем на ней "Имя" дважды щелкните левой кнопкой мыши на этой кнопке в появив-шемся окне выбираем закладку Action указываем действие Set Variable - значе-ние переменной в поле Variable вписываем имя поля (в нашем случае pole) в поле Value укажите свое имя
(надеюсь, при создании текстового поля Вы вы-брали русский шрифт?) в итоге скрипт должен быть похож на: On (Release) Set Variable: "pole" = "Павел" End On нажмите ОК Осталось только посмотреть, что получилось. Запустите тестовый просмотр Control / Test Movie, при нажатии на кнопку в поле появится Ваше имя. Если теперь сделаете несколько кнопок с разными значениями, содержание поля будет менятся в зависимости от нажа-той кнопки. Обратите внимание на то, что символ кнопки мы берем из библио-теки, а конкретные действия задаем для его экземпляров на сцене.


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


Числовые переменные - содержат числовые значения, например: Set Vari-able: "year" = 2000 или Set Variable: "temp" = 36.6


Символьные переменные - как, Вы догадываетесь, содержат символы, текст и заключены в кавычки Set Variable: "name" = "Павел" Set Variable: "dr" = "The best teacher" :-)


Логические переменные - могут быть только двух типов True (1) - ИСТИНА или False (0) - ЛОЖЬ Set Variable: "cool" = True и Set Variable: "cool" = 1 означают одно и тоже


Переключение типа переменной производится кнопкой расположенной справа от поля Value: если на кнопке написано abc (String Literal), то это будет символьная переменная, а если знак = (Expression), то числовое, но если при выборе типа переменной нажать на символ с изображение квадрата с = (Expression Editor), то мы попадем в святая святых ActionScript в редактор вы-ражений.


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


Операторы Основные () - Группировка


Числовые = - Равно <> - Не равно < - Меньше > - Больше >= - Меньше или равно <= - Больше или равно
Символьные "" - Строка символов & -Объединение eg - Равно ne - Не рав-но lt - Меньше gt - Больше le - Меньше или равно ge - Больше или равно
Логические and - Логическое И or - Логическое ИЛИ not - Логическое НЕ
Функции Основные Eval - значение переменной, заданной выражением True - логическое ИСТИНА (1) False - логическое ЛОЖЬ (0) Newline - перевод строки в выражении GetTimer - определяет время, в миллисекундах, прошедшее с начало запуска фильма.
Числовые Int - выделение целого числа Random - случайное число до от 0 до заданного числа.
Символьные Substring - "вырезание" фрагмента из символьной строки Length - определяет количество символов в строке Chr - преобразование числа в символ в соответствии с кодом ANSII Ord - обратное преобразование: символа в код ANSII
Параметры GetProperty - получение значений объекта (клипа) _x - положе-ние объекта по горизонтали _y - положение объекта по вертикали _width - ши-рина объекта _height - высота объекта _rotation - вращение объекта _target - путь к объекту _name - в отличие от _target возвращает только имя объекта _url - определяет полный URL файла swf _xscale - изменение масштаба объекта в процентах, по горизонтали _yscale - изменение масштаба объекта в процентах, по вертикали _currentframe - текущий номер кадра _totalframes - количество кадров в фильме (клипе) _framesloaded - количество уже загруженных кадров _alpha - прозрачность объекта _visible - отображение объекта _droptarget - путь к объекту, над которым перетаскивают в данный момент (клип)
Глобальные _highquality - качество воспроизведение фильма _focesrect - режим фокусной рамки _sounbuftime - значение настройки буфера текста в се-кундах
Вы, конечно, обратили внимание, что есть две похожих группы операторов с одинаковым назначением, но одна из них предназначена для числовых пере-менных, а другая для символьных. При написании собственного ActionScript необходимо научиться различать, в каких случаях нужно применять каждую из них. Приведу пример. Х=5+6


На ActionScript это можно записать так Set Variable: "x" = 5 + 6
Тут нет ничего сложного, так ведь? Set Variable: "y" = 5 Set Variable: "z" = 6 Set Variable: "x" = y + z
Результат будет тот же, а вот если нам необходимо "сложить" из двух слов-предложений одно то запись Set Variable: "b" = "Action" Set Variable: "c" = "Script" Set Variable: "a" = c + b
будет ошибочной, вернее, только последняя строчка. Так, как мы в данном случае, имеем дело с символьными переменными, то вместо знака сложения (+), мы должны использовать знак объединения (&) или, если говорить пра-вильно - конкатенации. Set Variable: "a" = c & b


В результате а будет равен ActionScript В следующем примере, показано объединение символьной и числовой переменной Set Variable: "month" = "Sep-tember" Set Variable: "last" = 1999 Set Variable: "year" = last + 1 Set Variable: "now" = month & " " & year
После столь долгой теории, пора применить полученные знания на прак-тике. Домашнее задание: Реализуем эмулятор пейджинговой станции. Необхо-димо создать терминал, в который вводится информация, после нажатия на од-ну из кнопок с номерами пейджеров сообщение должно появиться на этом пейждере. Уточнение задания: Весь фильм состоит из одного кадра, на котором расположен и терминал и пейджеры.