Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

3-й видеокурс

"Магия флеша-3"

40 часов видео на DVD

Общее оглавление

Шаги     Длительность  Описание

1-29          (412 мин) - Теоретическое введение.
30-37        (129 мин) - Проект эффект "домино" как  наглядная модель для начала понимания
                                       основных принципов, изложенных в теоретической части.
38-56       (130 мин) - Изучаем градиентные маски.
57-80       (210 мин) - Создаём проект с перетаскиваемыми и вращаемыми картинками.
81-121     (452 мин) - Изучаем фильтры.
122-142  (275 мин) - Создаём детскую раскраску.
143-174  (334 мин) - Все кнопки мыши и клавиатуры.
175-184  (114 мин) - Создаём музыкальный mp3-плеер.
185-189  (59 мин) - Как работать с библиотекой (вкладкой Content).
190-191  (36 мин) - Создаём тест-опрос с автоматическим подсчётом баллов на введённые
                                   ответы.
192-220  (378 мин) - Учимся делать флеш-игры.

Подробное описание

шаг 1 (18мин) - Вводное объяснение. Знакомимся с переменными. Что это да как с ними обращаться, приступаем потихонечку... onSelfEvent (load) {};

шаг 2 (12мин) - Динамически изменяем переменные. Понятие цикла, заставляем машину считать и думать самостоятельно. onSelfEvent (enterFrame) {};

шаг 3 (18мин) - Условный переход, время жизни переменных. Машина учится сама делать выбор и принимать решения. if() {}; delete var..;

шаг 4 (12мин) - Организация цикла перескоками по кадрам фильма. Разница между SWISHscript и ACTIONscript. Ну наконец-то увидим и почувствуем эту разницу наглядно. gotoAndPlay(); stop(); Math.sin(); Math.sindeg();...

шаг 5 (21мин) - Понятие подпрограммы или функции. А что, не повторять же одно и то же, пусть "оно" само как-то там у себя внутри группируется и организуется. function NameFunc(arg1, arg2,..){код... return}

шаг 6 (6мин) - Вызов подпрограммы из другой подпрограммы. Вспоминаем теорему Пифагора. Бедный Пифагор! Машина и тут тебя достала!! function АА(arg1, arg2,..){код... function BB(par, par,..){код... return}..}

шаг 7 (4мин) - Локальные переменные функций и время их жизни. Одни и те же имена в разных подпрограммах, а код не путается и всё-равно работает!

шаг 8 (14мин) - Выход из подпрограммы при разных условиях. Надо же! Разные части скрипта уже чуть ли не беседуют друг с другом - ну лишь бы не ссорились.. function АА(arg1, arg2,..){код1... returnA; код2... returnB;.. }..}

шаг 9 (10мин) - Рекурсивное выполнение кода. Высчитываем свой собственный факториал. Ну это значит предыдущий результат изменил как тебе надо, запомнил и теперь опять меняй уже изменённое столько раз, сколько задал, причём всё это делает машина, а ты только прикидываешь - обманывает она тебя или нет. for(i=3;i<=a;i++){fact=fact+i}; _root,  this

шаг 10 (15мин) - Объекты на сцене, их свойства, асинхронное выполнение кода. Ну прямо режиссёром себя чувствуешь, роли расписываешь актёрам, их поведения.. и главное они гонорара от тебя не требуют!! _parent, onFrame()

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

шаг 11 (7мин) - Абсолютная и относительная адресация кода. Где и какой код пишется. Один объект управляет другим, а как управлять знает третий - и всё это ты можешь писать и делать сам, машина только учтёт твои пожелания.. Object._x, _y, _alpha…, _vx, _vy, _fx…

шаг 12 (16мин) - Система координат сцены и объекта. Координаты курсора мыши и его отображение. Австралийцы действительно там вниз головой ходят что ли? А разве машина каждое моё движение мышкой учитывает? А она сама в этом не путается?_parent._xmouse; _parent._ymouse; _root._xmouse; _root._ymouse

шаг 13 (11мин) - Изменение параметров и свойств объекта в зависимости от движений курсора мыши. Это уже не курсор а прямо волшебная палочка какая-то!!  this._xscale; this._rotation..

шаг 14 (14мин) -  Даже изменяя размеры сцены в будущем можем не менять код, всё пишем в относительных переменных.  Всё можно изменить, даже размеры сцены, а код не изменится, даже рисовать уже точно не надо - машина сама всё расставит, только надо сказать куда, конкретные цифры и координаты она тоже за тебя рассчитает. this._x=Stage.width/2; this._y=Stage.height/2;

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

шаг 16 (13мин) -  Адресация кодов в случае с мувиками изнутри и "извне" основной линии (таймлайн) . Оказывается даже в разных странах-мувиках скрипт-коды позволяют воздействовать по типу "как мы их так и они нас", надо только правильно адресацию учитывать..

шаг 17 (7мин) -  Разница в поведении скрипт-кода в случае с  onSelfEvent (press) и в случае с on (press), хотя вроде бы одинаковое воздействие для меню типа Button и Self . Оказывается скрипт-код, размещаясь в одном месте, по сути дела может воздействовать на уровень выше, всё дело в понимании проблемы "родителей" и "детей"..

шаг 18 (6мин) -  Знакомимся с возможностями влиять на положение и размеры самой сцены при уже запущенном флэш-проигрывателе. Надо же! Оказывается можно крутить не только мувики или объекты, но и саму сцену!!  _root._rotation

шаг 19 (7мин) -  Как можно отобразить/скрыть меню во флэш-плеере. И это возможно?! Однако! Stage. showMenu();

шаги 20-22 (11+4мин) - Почти всё о сцене Stage…Знакомимся какие ещё можно вытворять вещи не только НА сцене, но и с САМОЙ сценой тоже. Stage.scaleMode(exactFit , showAll , noBorder , noScale); Stage.alight("B","T", "L", "R", "BL", "BR", "TL", "TR") - выравниваем сцену в окошечке флэшплеера. Ну, громко связано, хотя и такой порядок выравниваний  тоже не помешает. Отображение размеров сцены в пикселях. Это становится возможным, зная Stage.width и Stage.height.

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

шаг 23 (16мин) - Осваиваем полезные фишки - fscommand(). Полезная штучка - теперь можно флэш-проект запускать хоть в полноэкранном режиме, хоть выйти из программы не нажимая на крестик-выход из флэшплеера, только заранее пропиши код и можно забыть о других программах. fscommand("FullScreen",true); fscommand("allowscale",true); fscommand("Quit",true); fscommand("ShowMenu",true)

шаг 24 (8мин) -  продолжаем знакомство с  - fscommand(). Учимся как размещать код для одного объекта (obj1) НЕ НА НЁМ САМОМ, а совершенно в другом месте, скажем на другом объекте (obj2). Ну это типа как в бригаде работников инструкция о том, что делать конкретному рабочему хранится у его бригадира, мастера ну или у другого рабочего. Кстати, опять встречаем function() - НО это уже не подпрограмма, а ИНСТРУКЦИЯ, т.к. перед этим оператором мы поставили знак равенства. По-научному это называется "литерал функции". Obj.onPress=function(){код1}; Obj.onRelease=function(){код2}.

шаг 25 (18мин) -  Знакомимся с нестандартностью объекта типа button - т.е. кнопки. Загадочная "галочка" target. Свойство кнопки enabled=true/false - разрешает/запрещает действовать кнопочной анимации. Оказывается, не всё, что хорошо одному, подходит для другого!!! Это типа как в бригаде работников: инструкция о том, что делать конкретному рабочему хранится у его бригадира, мастера ну или у другого рабочего в этой бригаде. Интересно мы теперь узнали как запрещать/разрешать объекту типа "кнопка" анимацию (перемигиваться или перещёлкиваться). Btn__name.enabled=true/false.

шаг 26 (14мин) -  У нестандартного объекта типа button, разместили код для него в другом месте, но кнопка.enabled=true/false - разрешает/запрещает работать кнопке как кнопка ПОЛНОСТЬЮ, т.е. не только анимация, но и кнопочный код!! Оказывается эта загадочная "галочка" target автоматически может проставляться - следите за ней!!. А чтобы не проставлялась - вот для этого-то и размещают код не на самом объекте а вне его. _parent. Btn__name.onPress = function(){ startDrag(_parent. Btn__name, false);}
    _parent. Btn__name.onRelease = function(){stopDrag();}

шаг 27 (15мин) -  Коды можно размещать не только для объектов-кнопок-фигур-текстов, но и для мувиков тоже! ВАЖНОЕ ОТЛИЧИЕ от вышеперечисленных: вначале появляется мувик а уже потом инструкция к нему. Как говорится "вечером стулья , утром деньги" - или наоборот? Если уж взялся писать код не на мувике помни о "стульях", т.е. последовательность появления "мувик-код".
МУВИК_или_ОБЪЕКТ: onSelfEvent (load) {ПУТЬ.МУВИК.onEnterFrame = function() {код;}   }

шаг 28 (13мин) - На предыдущем шаге рассмотрели команду для каждого кадра мувика, размещённого на другом мувике вида onEnterFrame. В случае же команды инициализации вида onLoad приходится менять синтаксис, хотя в инструкции это и не указано. Как оказалось, если посмотрите следующий шаг, нельзя настоящему флэшеру тупо следовать приводимой документации, надо её перерабатывать.
МУВИК_или_ОБЪЕКТ: onSelfEvent (load) {ПУТЬ.МУВИК.onLoad(код)   }

шаг 29 (4мин) - Ещё раз убедились, что настоящему флэшеру надо пробовать применять и другие команды - а вдруг сработают?! Вот и в этом шаге ещё одно неожиданное открытие ПОЧТИ противоречащее предыдущему - интрига, однако...
МУВИК_или_ОБЪЕКТ: onSelfEvent (load) {
ПУТЬ.МУВИК.onLoad(код1);
ПУТЬ.МУВИК.onLoad(код2);
}

шаги 30-37 (119мин)  - Начинаем применять полученные теоретические знания на практике - создаём эффект домино. Увидим как, начиная с простых элементов, мы уже без труда ориентируемся в большом нагромождении созданных нами же мувиках, как событие по времени в одном мувике заставляет работать соседний… Заодно в последнем шаге цикла уроков "домино" вспомним и самое главное сравним разницу в методе вызова звука командой play("звук") и вызовом из другого мувика. Но, как окажется, позже узнаем ещё более эффективный  или скорее "эффектный" способ привязки звука к определённому событию, который гораздо проще, но к этому надо прийти через понимание, как создавать некие новые объекты, да ещё и познакомиться с так называемыми КЛАССАМИ создаваемых объектов.    
ПРИМЕР

шаги 38-56 (170мин)  - Фокусы с маской. Узнаем что бывают ещё и градиентные маски, "работают" они правда во флэш-плеере не ниже 8-й версии, но оно того стоит! Удивимся, как можно сквозь одно "кино" видеть другое и всё это программным способом через скрипт. Диапазон применения таких масок достаточно широк - от простого эффекта замёрзшего окна с реалистичным прогретым участком до стильного "туманного скроллера". Да, мы же ещё можем программно включать или выключать эти маски!! Попробуйте это сделать простой анимацией! Ничего не получится! - а тут через скрипт, оказывается, можно и такие фокусы делать!!
Основные операторы, которые мы узнаем в этом разделе: Obj.cacheAsBitmap=true/false; Obj.setMask(mask); Obj.setMask(null);
ПРИМЕР   ПРИМЕР    ПРИМЕР   ПРИМЕР    ПРИМЕР   ПРИМЕР  

шаг 57 (17мин)  - Приступаем к созданию интересного проекта - "перетаскиваемые фотки с изменяемой глубиной и с возможностью вращения вокруг собственного центра". Чтобы понимать с какого бока подойти, с чего начать - просто создадим некую модель и начнём всё на ней в дальнейшем отрабатывать.

шаг 58 (18мин)  - Начинаем модель вращать - вот где нам опять пригодился  Пифагор!!! Ну заодно придётся вспомнить что такое радиус/радиан/градус… косинус-синус, арккосинус,арксинус..

шаг 59 (5мин)  - Вроде бы всё начинает потихоньку проясняться - вводим понятие угла вращения для нашей пока ещё такой "квадратной" простенькой модели.

шаг 60 (4мин)  - Ура! Уже получается заставить вращаться нашу модель, если её потянуть за уголок..

шаги 61 -67 (40мин)  - Для того чтобы двигаться дальше изучим как можно "заставить" двигаться какой-нибудь объект по заранее определённой траектории, например по синусоиде или окружности.. Теперь понятно зачем мы в первых 29-ти шагах так упорно изучали теорию…

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

шаг 69 (6мин)  - Пора уже взять за правило- все коды писать ВНУТРИ мувика, по-возможности не на самой сцене! Пока не поздно и код не разросся до астрономических размеров - быстренько всё написанное для теперь уже "усложнённой" модели переносим в отдельный мувик. Заодно ещё раз посмотрим что надо учитывать при подобном переносе кода, действительно, не просто же тупо копируешь коды из одного объекта в другой.

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

шаг 70 (14мин)  - Изучаем что значит "границы срабатывания" мувиков.. Уже сталкивались с подобным явлением "фантомов" при изучении "эффекта домино" в шагах 30-37… На основе уже исследованной вдоль и поперёк модели начинаем её заменять "реальными" рисунками-фотками.., короче, наполнять модель конкретным контентом..

шаг 71 (5мин)  - Оппа-а-а!!! На практике увидели вот она в чём разница между переменной типа _global и её обычным "локальным" аналогом.!! Получается, что воздействуя в конкретном примере только на одну фотку я могу через эти "глобальные" переменные ОДНОВРЕМЕННО воздействовать на все остальные фотки-мувики в нашем проекте..

шаги 72-73 (22мин)  - В 70-м шаге столкнулись с "фантомами", а теперь достаточно просто убираем  этот эффект. Вот в чём разница между кодами on(Press) и onSelfEvent(press)!!! Влияет ещё и место, где этот код написан! Демонстрируется дополнительная возможность анимирования обычной фотки - а сделать-то надо всего  ничего -  надо картинку сгруппировать как кнопку - и всё!!

шаги 74-75 (35мин)  - Начинаем изучать что такое глубина размещения мувика на сцене, как можно ДИНАМИЧЕСКИ менять взаимное размещение объектов, т.е. кто "выше", кто "ниже". Для этого нам пригодятся такие операторы как: MovieClip.SwapDepths(); obj.getNextHighestDepth();

шаги 76-80 (37мин)  - Для простой операции задания начальных условий фильма совершенно естественно приходим к пониманию что такое массив… В "полезности" таких классов объектов можно убедиться на рассматриваемом примере - в самом деле ну не перечислять же тупо всё подряд, пусть "само" себя запоминает и "содержит" в специальных ячейках-массивах. Основной и альтернативный способ объявления массива.
Основные операторы, которые мы узнаем в этом разделе: new Array(); obj=[Z0,Z1,…Zn]; eval();
ПРИМЕР  

шаг 81 (21мин)  - Подро-о-о-обно объясняем такое важное понятие как класс объектов, МЕТОД, который можно применять к объекту и через эти понятия уже приходим к пониманию фильтров. Что это за фильтры такие - вкратце, в компонентах они присутствуют, но мало где встречается их толковое объяснение. Начиная с этого шага мы ЛЕГКО научимся применять их на практике!! Кстати, фильтры в Adobe и Макромедии применяются по необходимости достаточно просто, надо лишь воспользоваться одной лишь галочкой в нужном месте. Однако и в Свише это сделать теперь будет совершенно нетрудно. Правда не забывайте для этого экспортировать в версию флэшплеера 8 и выше.
В этом уроке мы ОЧЕНЬ ПРОСТО и БЫСТРО можем добавить тень к любому объекту на сцене. Кастати, объект может быть движущимся, анимированным, не обязательно статическим, а тень всё это повторяет!!!
Основные операторы, которые мы узнаем в этом разделе:
Некая_переменная=new flash.filters.DropShadowFilter(param1, param2,…);
объект.filters = [Некая_переменная];
ПРИМЕР  

шаг 82 (8мин)  - Здесь мы делаем просто-напросто открытие!!! Оказывается код при загрузке фильмы выполняется по-умолчанию "снизу-вверх". Что это значит? Ну так посмотри скорее урок - не пожалеешь..
ПРИМЕР  

шаг 83 (6мин)  - Продолжаем "мучить" фильтры… А можно ли ОДНОВРЕМЕННО к одному и тому же объекту применить несколько фильтров? Скажем и с тенью и с эффектом размытия (BlurFilter)? Оказывается можно!! И очень даже быстро и легко!
Основные операторы, которые мы узнаем в этом разделе:
Некая_переменная_1=new flash.filters.DropShadowFilter(param1, param2,…);
Некая_переменная_2=new flash.filters. BlurFilter (param1, param2,…);
объект.filters = [Некая_переменная, Некая_переменная_2];
ПРИМЕР  

шаги 84-87 (35мин)  - Программно управляем фильтрами. Примеры как это можно делать при уже запущенном флэшплеере - через изменение параметров, входящих в состав того или иного класса конкретного фильтра. Параметры можно менять через тот же слайдер, например. Как сделать ОЧЕНЬ быстро простейший слайдер - см. в 85-м шаге. Как работают ещё пара фильтров Glow и Bevel? Чтобы не морочить себе голову где какой параметр за что отвечает, в 87м шаге приведён соответствующий стенд-конструктор по каждому из четырёх фильтров..
ПРИМЕР   ПРИМЕР

шаг 88 (12мин)  - Как устроен, как сделать, какой параметр и как влияет на… Короче, всё про фильтр ColorMatrixFilter.  Здесь параметров ну уж о-о-о-очень много, но, благодаря соответствующему стенду-конструктору всё это нагромождение цифр становится таким "родным и понятным"…
ПРИМЕР  ПРИМЕР

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

шаги 89-90 (40мин)  - Фокусы-трюки с изученными ранее фильтрами. Естественно, у меня эти примеры достаточно схематичны, но на полученных здесь и ранее понятиях уже можно сделать свои собственные трюки, достойные уважения среди даже продвинутых флэшеров - в СВИШе сделать это, благодаря множеству встроенных эффектов, опять таки гораздо быстрее и проще..
ПРИМЕР  ПРИМЕР

шаг 91 (18мин)  - Приступаем к изучению DisplacementMapFilter - ну о-о-о-очень многоцелевой и довольно сложный для понимания. Ещё бы  - ведь здесь используются понятия из арсенала ActionScript3.0 - да-да, именно 3-й версии языка сценариев, хотя СВИШ оперирует только 2-й версией скрипта, ОДНАКО какие-то элементы из  "тройки" всё же доступны!! Начнём изучение с одного из составных элементов этого фильтра - класса объектов BitMapData.
Основные операторы, которые мы узнаем в этом разделе:
Переменная_ = new flash.display.BitmapData(150, 200, true, 0x880000FF);
мувик.attachBitmap(Переменная_,0)

шаги 92-93 (29мин) - Создаём свой собственный стенд-конструктор на основе BitMapData - конструктор шумов!!! Теперь мы легко можем сгенерировать программным способом что-то напоминающее телевизионный шум (не помехи а именно шум) причём чёрно-белый или цветной - как фантазия подскажет. Знакомимся с понятиями шума (noice, perlinNoice).
ПРИМЕР

шаги 94-97 (23мин)  - Пример живого TV-шума на старом телевизоре с переключением каналов. У вас должно получиться лучше чем у меня, теперь это легко и нетрудно!!!
ПРИМЕР   ПРИМЕР   ПРИМЕР

шаги 98-101 (50мин)  - Знакомимся с ещё одной разновидностью и понятиями шума (noice, perlinNoice). Создаём опять ещё один стенд-конструктор для генерации облаков, дыма, тумана, огня, пламени, полярного сияния… Благодаря созданному стенду-конструктору perlinNoice у вас должно получиться лучше чем у меня, возможности создаваемых "живых узоров" будут ограничены только вашей фантазией.
ПРИМЕР   ПРИМЕР  

шаги 102-105 (39мин)  - На основе предыдущих шагов пытаемся "оживлять" статичные фотки живыми узорами - изменяющееся облачное небо, полярное сияние…
ПРИМЕР   ПРИМЕР   ПРИМЕР  ПРИМЕР

шаг 106 (13мин)  - Ну вот и подобрались к самому главному - до этого, оказывается, мы изучали только ЧАСТЬ фильтра DisplacementMapFilter - под названием BitmapData. Да-да, всего лишь только часть! Теперь, научившись им пользоваться, используем этот BitmapData -объект как основу для реального изображения. Например, на этом шаге мы "зашумляем" эту "bitmapdata-вскую" основу и "накладываем" на неё наше изображение - в результате у нас само изображение тоже подвергается ТАКОМУ же "зашумлению". Добиваемся эффекта как будто рябь по воде в котором отображается изображение. Правда само изображение немного сдвигается - ну это видимо объясняется самой природой этого фильтра, его названием, ведь в переводе DisplacementMapFilter и есть фильтр СМЕЩЕНИЯ, т.е. смещаться как бы должна "основа" (BitMapData) и изображение..
ПРИМЕР

шаги 107-111 (27мин)  - Сделали конструктор теперь уже самого DisplacementMapFilter. Теперь, меняя параметры в этом фильтре на нашем конструкторе, полученные конкретные числовые сочетания каждого параметра будем переносить на конкретное изображение, например, сделаем реалистичное отражение в воде. Кстати, в отличии от "обычных" отражений в воде, которые мы до этого умели делать анимацией с маской, мы можем делать так, что это отражение будет более спокойным или волны движутся за ветром, меняя цифры в определённых параметрах. Посмотрев этот урок вы уже самостоятельно можете сделать так, что если эти цифры привязать к курсору (отследите на конструкторе в каких пределах и какие цифры менять), то можно добиться того, что курсор как бы "колыхает" водную поверхность при перемещении (вместо координат движка конкретного ползунка подставьте значение _xmouse, _ymouse)…
ПРИМЕР   ПРИМЕР   ПРИМЕР 

шаги 112-113 (27мин)  - В конструкторе до этого шага мы научились учитывать вроде бы всё, но есть ещё один ОЧЕНЬ странный оператор, отвечающий за класс объекта flash.geom.Point(0,0). Оказывается, мы работали только с ЛИНЕЙНО зависимыми точками, а ведь можно сделать это вообще СЛУЧАЙНОРАСПРЕДЕЛЁННЫМ. Т.е. сформируем некий странный массив, где координата каждой точки в этом массиве будет случайно формироваться. Элемент этого странного массива состоит из ПАРЫ значений, соответствующий координате этой случайной точке. Мда-а-а, массив мало того что странный, у него и синтаксис вообще непонятный от того с чем мы до этого имели дело, как так можно писать!! Как будто из другого языка программирования взято!! Однако же, интерпретатор языка всё это всё равно понимает!! Хотя это уже элементы из Actionscript3.0!!! Ну тогда мы можем добиться формирование вполне реалистичного пламени, огня, костра, возгорания, факела…!!! Получается, до этого с водой  всё "баловались" с отражениями в ней, с облачками, теперь "с огнём поиграемся"..
ПРИМЕР

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

шаг 114 (23мин)  - Чтобы быть "образцовыми пожарниками" мы должны поисследовать как этот огонь "горит"? Значит, создадим на базе конструктора фильтра смещения конструктор пламени. Только не станьте "пироманами" - всё это будет в виртуале… Заодно вспомним как быстро можно применить в конструкторе компонент NumericStep_silver.

шаг 115 (17мин)  - Дыма без огня не бывает - ещё как бывает!!! Вот посмотрите, как делать сигаретный дым. И не только сигаретный, конструируйте сами дым и его форму, только не "обкурите" монитор, компьютер, мозги… впереди ещё много интересного, не зависайте только на этом - хотя, соблазн попускать колечки после этого шага наверняка будет, хотя бы для того чтобы дух перевести…
ПРИМЕР

шаги 116-117 (24мин)  - Курить вредно! Вот посмотрите как антиникотиновую рекламу можно сделать, применяя все те наработки, которые мы уже успели изучить на предыдущих шагах. Кстати, к дыму, пламени… ведь тоже можно эффект добавить и тени, и размытия, и свечения… Экспериментируйте, не только "курите", кстати, дым в виртуале может не только "выкуриваться", но и "вкуриваться" обратно. Не верите? - проверьте сами, если к нашему "странному массиву" добавлять или отниммать дополнительные параметры - даже направление ветра, куда дым-огонь идёт, можно сформировать.. Мда-а-а, явно перекур затянулся, завораживает, но давайте пойдём дальше.. Просто не верится, что всё это делает один только фильтр смещения (DisplacementMapFilter), ну, правда, в сочетании с BitMapData, DropShadow, Blur, Glow и Bevel..
ПРИМЕР   ПРИМЕР   ПРИМЕР 

шаг 118 (16мин)  - Начинаем делать совсем уж непонятные вещи, типа стеклянной надписи. Правда, чем непонятнее эффект, тем непонятнее и синтаксис операторов его реализующих, и ещё дополнительные новые МЕТОДЫ, применимые к классу BitMapData, появились. Как они работают? Да толком и неизвестно, описание не совсем чётко это всё прописывает, много неоднозначности. Но зато посмотрите какой эффект!!!
Операторы и методы, которые мы узнаем на этом шаге:
mapBitmap.draw(myMap);
filter.mapPoint = new_pt;
И возьмите за правило - не только обучающий фильм соответствующего шага смотрите, но и при разборе исходника почитывайте комментарии, которые я периодически пишу на полях во вкладке с кодами…
ПРИМЕР

шаги 119-121 (24мин)  - Примеры, как можно сделать потрясающе непонятные эффекты типа стеклянной надписи ну и ещё чего-то в такой же "непонятной вариации". Заодно познакомимся с непонятным поведением кода при реализации этих эффектов.. Сплошные загадки!! И кто теперь будет утверждать, что в языке программирования всё заранее определено?! Иногда такие фокусы проявляются! Может быть это только у меня одного? Поделитесь опытом!!
ПРИМЕР   ПРИМЕР

шаги 122-123 (17мин)  - Начинаем делать "детскую раскраску" с чистого листа, для этого познакомимся с операторами,  с помощью которых можем осуществлять динамическое рисование, динамическое закрашивание простым равномерным цветом и стирание… Операторы с которыми мы познакомимся: beginFill ([rgb[, alpha]]) ;  clear() ;  endFill() ;  lineStyle ([thickness[, rgb[, alpha]]]) ;  lineTo (x, y) ; moveTo (x, y) ;

шаг 124 (7мин)  - Опять вспоминаем, что код будет усложняться, переносим все коды со сцены в мувик. Вспоминаем о том, что мувик это практически отдельная вселенная со своей системой координат, следовательно надо учитывать все пути к тем объектам, к которым применяем действия (или иначе операторы). Увидим, что язык программирования как и обычный язык общения допускает многовариантную взаимозамену, например, clear() ; можно заменить unloadMovie(); - а результат будет тот же.

шаг 125 (7мин)  - Учимся рисовать не только прямыми, но и кривыми линиями, применяя оператор curveTo (controlX, controlY, anchorX, anchorY) ; 

шаг 126 (8мин)  - Учимся раскрашивать "красиво", т.е. градиентной заливкой. Оказывается в градиентной заливке так много переменных и параметров, что просто напоминает по сложности изученный ранее фильтр смещения. Но, имея под рукой конструктор градиентной заливки - необходимость в подробнейшем изучении каждого параметра просто отпала - выбираешь сталь заполнения и полученные в конструктору цифры для параметров переносишь в создаваемый флэш-проект. Оператор в этом шаге: beginGradientFill (fillType, colors, alphas, ratios, matrix) ;

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

шаги 127 - 128 (31мин)  - Динамически раскрашиваем фигуру произвольной формы, применяя маску. Начинаем подбираться к пониманию того каким способом будем делать нашу детскую раскраску. Понимаем что для фигуры нужен ещё и её же контур, если вдруг решим закрасит её "белым" цветом, совпадающий  с цветом сцены. Создали уже свой первый набор красок для будущей раскраски. Если мы плохо рисуем или совмещаем - созданным нами же кодом скрываем наши огрехи на этапе создания объектов.

шаги 129 - 130 (24мин)  - На основе созданных на предыдущем шаге принципе закрашивания кодах к нему создаём другой такой же объект. Опять для раскраски потребовались не только локальные, но и переменные глобального типа. Внимание на рассуждения в шаге 130 - начинаем выстраивать принцип присвоения имён переменным и мувикам - при разрастании нашего объекта этот наращиваемый принцип наименований очень даже нам пригодится!!

шаги 131 - 132 (11мин)  - Создали "кисточку-индикатор" как "напоминалка" выбранного из палитры раскраски цвета.

шаг 133 (7мин)  - Оптимизируем код для нашей "кисточки", для этого применим вместо набора операторов всё необходимое "упакуем" в функцию. Но совершенно неожиданно решили создать не просто функцию, а ГЛОБАЛЬНУЮ функцию. Синтаксис объявления глобальной функции в СВИШе довольно оригинальный:
_global.ИМЯ_функции= function(){код…}
но, как вы убедитесь в дальнейшем, глобальная функция очень даже нам пригодится. Мда-а-а, ещё одно открытие не только в самом типе функции но и в синтаксисе её объявления, хотя сделано в уроке это было как бы мимоходом..

шаг 134 (18мин)  - Границы срабатывания мувиков обычно такие "синеникие прямоугольнички" вокруг выбранного объекта. А что делать, если нам надо, чтобы событие, в нашем случае это динамическая заливка, происходила только ВНУТРИ контура произвольной формы? Ну, на этой паре шагов мы уже кое-что умеем, например, раскрашиваем ТОЛЬКО в момент ПЕРЕСЕЧЕНИЯ курсора мыши контура произвольной формы. Делается это с помощью оператора
путь.объект.hitTest(_root._xmouse, _root._ymouse, 1);
Правда встречается ещё один "странный" на первый взгляд оператор проверки условия
if (путь.объект.hitTest(_root._xmouse, _root._ymouse, 1)) {код..};
видите, нет самой проверки!! Где все эти проверки типа ( ==true) или (<=false) ???
Оказывается, если не пишется проверка, подразумевается, что написано (==true)

шаг 135 (19мин)  - Чтобы срабатывание происходило не только в момент пересечения границы, но и внутри контура объекта, применяем очень полезный оператор hitTest(); , но для очень "странного" на первый взгляд объекта, который мы специально для этого создали-нарисовали. А чтобы он не пугал своей "странностью" сделаем его невидимым, применив свойство _alpha=0;

шаги 136 - 137 (22мин)  - Что делать, если границы ну или контур одного объекта как бы наползает или даже пересекает другой, как тогда будет срабатывание происходить? Оказывается для этого пригодится такое понятие как ГРУППА, т.е. объединяйте всё что нужно не в мувики или кнопки, а именно в группы! Ставьте галочку "target" на группу - и получается, что объект уже "видится" операторами и к нему можно применять какие-то действия. Вполне реальная ситуация, как оказалось, скажем, когда один объект находится как бы внутри другого, как бы обтекает его… Да что там говорить - смотри и всё поймёшь..

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

шаги 140 - 142 (58мин)  - Лень - двигатель прогресса!!! Ну не хочется делать однообразную и скучную операцию - применим такой прекрасный инструмент по переводу имеющейся у нас растровой графики (основа детской раскраски) в векторную форму. Для этого воспользуемся Corel Trace12 из комплекта CorelGraphicsSuite12. Дело пошло значительно быстрее!! Да, вид стандартного курсора заменим на нашу созданную ранее "индикатор-кисточку", добавим кнопочку СБРОС… . Расширим палитру цветов - и всё! Раскраска готова. Зовите детей к компьютеру поиграть..
ПРИМЕР

шаги 143-144 (16мин)  - Как научить флэш реагировать на среднее колесо мышки? На нажатие этого колеса? На правую/левую клавиши? На их сочетание? Оказывается всё это делается через систему т.н. "listner" или иначе "слушателей". Изучим операторы класса Mouse:
obj = new Object();   Mouse.addListener (obj); obj.onMouseWheel = function (  ) { код: }
Затем убедимся, что "слушателем" может быть ЛЮБОЙ уже существующий объект фильма, даже сама сцена.

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

шаг 145 (5мин)  - Научим теперь флэш реагировать не просто на поворот колеса мыши, но и различать в какую сторону оно повернулось. Делаем это через аргумент функции:
obj.onMouseWheel = function ( param ) {if(param >0) код1; if(param <0) код2;   }

шаги 146-147 (10мин)  - Начинаем учить флэш тому, чтобы он реагировал на колёсико только когда наведу курсор мыши на какой-то "верхний" мувик. Что это да как это - разбираемся…

шаги 148 -150 (39мин)  - Небольшие фокусы с колёсиком и учимся как убирать реагирование на поворот - Mouse.removeListener(obj); Доработали наш проект (шаги 57-80) так, что перетаскиваемые и вращаемые фотки теперь ещё могут менять свой размер при прокрутке колёсика.
ПРИМЕР

шаги 151 -155 (54мин)  - Исследуем далее класс Mouse… Научим флэш реагировать на движение курсора мыши, на этой основе, зная уже динамическое рисование, создадим что-то типа виртуальной доски с выбором цвета, типа и цвета рисуемой линии, используя имеющиеся компоненты из арсенала СВИШа …
onMouseDown(); onMouseUp(); onMouseMove();
ПРИМЕР   ПРИМЕР

шаг 156 (9мин)  - Приступаем к изучению класса Key. Теперь подробненько и внимательно будем нажимать и отжимать клавишу "any key".
onKeyDown();

шаги 157 - 163 (58мин)  - Начинаем различать ЧТО мы нажимаем, какую конкретно клавишу, в каком регистре … Key.getCode();Key.getAscii(); keyPress("F"); keyPress("a"); рассмотрим так же специальные клавиши NumLock Caps… - как реагировать на них.. Как сделать реагирование на сочетание - комбинацию одновременно нажатых клавиш. Помните знаменитое Ctrl-Alt-Del  ?!
шаг 164 (10мин)  - Через понимание работы с клавиатурой неожиданно приходим к пониманию того как заставить флэш понимать нажатие на колесо… кстати, почти недокументированные возможности скрипта нам тут демонстрируются..

шаг 165 (20мин)  - Попробовали задействовать все кнопки мыши на примере "сигаретного дыма", теперь, прокручивая колесо мы изменяем параметры "вкуривания-выкуривания" а по нажатию лев/прав клавиши мыши применять те значения, что были "накручены" колесом.
ПРИМЕР

шаг 166 (15мин)  - Заметили, по правой клавише всегда выскакивает pop-up-меню? Как от этого уйти? В стандартном макромедиавском флэш-проигрывателе это сделать невозможно, почему?-посмотри урок и поймйшь. НО, можно применить другой бесплатный проигрыватель, где не выскакивает эта иногда раздражающая менюшка.

шаг 167 (24мин)  - А можно ли вообще сделать так, чтобы флэш-фильм проигрывался не в окне, а скажем ВООБЩЕ без всякого окна? Или, скажем, окно было нестандартным, например, без этих трёх кнопок ЗАКРЫТЬ, СВЕРНУТЬ, РАЗВЕРНУТЬ? Или НЕПРЯМОУГОЛЬНЫМ? В виде какой-то фигуры?.... оказывается МОЖНО!!! И тоже средствами СВИШа, правда применяя немного другую программу, но из того же "свишевского" семейства и той же фирмы-производителя. Как? - посмотри - узнаешь…

шаг 168 (6мин)  - Хитрые возможности правой клавиши мыши. Как от неё защититься??!! Да-да, именно защититься?? В уроке подробно раскрывается почти "предательская" роль такой вроде бы безобидной на первый взгляд правой клавиши мыши..

шаги 169 - 172 (44мин)  - Ну раз такая предательская роль в этой правой клавише, может попытаемся хотя бы уменьшить её роль? Скажем, изменим значение, набор и название тех пунктов меню, которые обычно выскакивают в pop-up-менюшке при нажатии по-умолчанию. Делаем это через ContextMenu();

шаг 173 (12мин)  - Наконец-то раскрывается секрет как сделать защиту от "предательской роли" правой клавиши!!.

шаг 174 (12мин)  - Научимся делать так, чтобы при нажатии по правой клавише НА РАЗНЫХ ОБЪЕКТАХ в фильме появлялись РАЗНЫЕ pop-up-менюшки, соответствующие только конкретному определённому в коде объекту
ПРИМЕР

шаг 175 (19мин)  - Начинаем изучать зачем нужна библиотека? Иными словами вкладка "Content" ? Зачем она нужна? Как ею пользоваться? Начнём понимание этого через использование такого интересного класса, как Sound()

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

шаги 176 - 178 (34мин)  - На основе изучения свойств объектов класса Sound() научимся делать музыкальный проигрыватель. Быстро сделали элементарный слайдер, регулирующий громкость, баланс, кнопку стерео/моно

шаг 179 (10мин)  - Неожиданно объясняется как сделать кнопку-триггер с тремя и более состояниями

шаги 180 - 182 (38мин)  - Продолжаем совершенствовать музыкальный, точнее звуковой флэш-проигрыватель встроенных во флэш звуковых файлов. Добавляем кроме стерео/моно зацикливание при воспроизведении
ПРИМЕР

шаги 183 - 184 (13мин)  - Создаём звуковой флэш-проигрыватель ВНЕШНИХ звуковых mp3-файлов. Посмотрим какие тут могут быть подводные камни и особенности..

шаг 185 (17мин)  - Продолжаем скрупулёзно изучать, как работать с библиотекой - вкладкой "Content". Вытаскиваем из библиотеки объект на сцену и удаляем.. Знакомимся с символьным редактором.
attachMovie("link","newmc",this.getNextHighestDepth()); removeMovieClip();

шаги 186 - 187 (27мин)  - "Terra incognita" - "неизвестная земля"… Мы вступили на зону под названием "недокументированные возможности СВИШа". Сплошные загадки, но работают!!! Чувствуешь себя "сталкером" в этой области. Из библиотеки можно вытащить хоть сколько экземпляров, оказывается, но воздействовать можно только на один - "первый", а с остальными как?, типа бомжи какие-то скриптовские!!! Но уже и это можно применить в игровых ситуациях, только код на БИБЛИОТЕЧНОМ экземпляре пропиши соответствующий, т.н. "неименной". Правда в примере показано, что объект может просто перемещаться, а ведь через тот же hitTest() можно прописать что делать при столкновении с чем-то, вот тебе и реализация пулек-выстрелов-взрывов…, причём неограниченной ёмкости, "стреляй-не хочу.."
ПРИМЕР   ПРИМЕР

шаг 188 (7мин)  - Из библиотеки можем вытаскивать библиотечный объект, но с разными параметрами. Обратите внимание на синтаксис - не через равенство, а через двоеточие,  и в фигурных скобках (напоминает как мы изучали фильтр смещения с эффектом пламени, там тоже попался нам "странный массив" с необычным синтаксисом координат точек, см. шаги 112-113, короче, вот как можно самому допонять природу такого синтаксиса, скорее всего это "initObject", а в нём через двоеточие присваиваются значения… Или у вас другое мнение? Не стесняйтесь - земля-то неизведанная, малоизученная. Или точнее малоописанная, легко и первооткрывателем стать, своё имя присвоить..) attachMovie("link","newmc",this.getNextHighestDepth(),{_xscale:130,_yscale:130,_alpha:55,_rotation:45})
ПРИМЕР

шаг 189 (8мин)  - Попытка навести какой-то порядок в нашем "курятнике". Применим  к объекту не метод, а ссылку !! Тогда, благодаря "именной" ссылке. У нас больше не будет бомжей, управлять можно всеми или каждым в отдельности, прописали всех!! И в зазеркалье можно жить, оказывается…
Имя_ссылки=attachMovie("link","newmc",1);
ПРИМЕР

шаги 190 - 191 (36мин)  - Учимся создавать опросные листы, или иначе ТЕСТЫ с приёмом ответов от ученика, при этом наша флэшка будет сама оценивать введённые ответы и выставлять оценки. Вот где нам пригодились понятия глобальных и локальных переменных!! На этих шагах создадим т.н. "рыбу-скелет" - основу для блока-вопроса с предлагаемыми вариантами ответов и блока приёма ответов на него с подсчётом полученных правильных и неправильных ответов. Заодно применяем тут "одноразовые кнопки", чтобы ученик не смог перевести ответ.
ПРИМЕР

шаги 192 - 193 (16мин)  - Начнём делать игры. Всё изучить, конечно, просто физически не успеем, поэтому начнём с простого - с изучения некоторых игровых моментов, а именно: управление перемещением объекта по клавишам. Например, по клавишам перемещения (влево, вправо, вверх, вниз)
Key.isDown(Key.LEFT); Key.isDown(Key.RIGHT); Key.isDown(Key.UP);  Key.isDown(Key.DOWN));

шаг 194 (10мин)  - Сделали управление по тем же клавишам, но с инерцией. Теперь уже нельзя заранее сказать где остановится перемещаемый объект, учитываются моменты удержания клавиши в нажатом состоянии и момент отпускания. Да-а-а, вот где азарт появляется! Копировать пора наш фильм в одну из 4х разрешённых в России игровых зон..

шаги 195 - 196 (20мин)  - Вносим различные поправки в движение - ветер, притяжение, сила удара…
ПРИМЕР

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash

шаг 197 (28мин)  - Научившись управлять объектом, давайте придумывать нашу первую игру - ГОНКИ - гоночная машина будет ездить по дороге, тормозить, ускоряться, поворачиваться… Все связанные с этим моменты - как это всё будет выглядеть в коде..
Ну для начала создадим дорогу, по которой ездят.

шаг 198 (29мин)  - Учим будущую машинку не съезжать с дороги, опять пригодится уже изученный ранее hitTest().

шаги 199 - 200 (20мин)  - Делаем всё более похожей на реальную игру - добавили кнопку СТАРТ и соответствующие этому знаменательному событию для нашей гонки коды, ввели ограничение по перемещению за пределы фильма.

шаг 201 (13мин)  - В момент отладки кода делаем для себя очередное открытие - не всё может нормально запускаться во внутреннем плеере СВИШа!!! Для того чтобы убедиться в работоспособности созданного вами же кода не верьте самому СВИШу!! - да-да!! Запускайте свой шедевр во ВНЕШНЕМ проигрывателе, не изводите себя программированием. Может быть вы уже давно всё и так написали правильно, только результат вы увидите СНАРУЖИ, не изнутри. Удивительно, прямо как в поговорке - нет пророка в СВОЁМ отечестве, оценят другие, "снаружи", не "внутри"..

шаг 202 (13мин)  - Дописали игру, добавив элемент ФИНИШа, количество кругов или заранее определённого расстояния трассы.. Конечно, получившееся это только схема-набросок, условно-схематичное изображение игры, но на полученных в этих шагах навыках уже вполне по силам сделать свою собственную "гонялку-ездилку" или даже автосимулятор. Хотя почему сразу "авто"? Можно же типа танка, лыжник-слаломист с горы препятствия объезжает.. да много чего напридумывать на созданной основе уже можно..
ПРИМЕР

шаги 203 - 207 (79мин)  - Заставим мячик отскакивать от стен. Создадим что-то похожее на игру в пинг-понг. Фантазии у меня лично уже не хватает - отдельный диск наверное делать придётся. Тогда опять хотя бы схематично набросаем самое основное, хотя и в созданном уже можно поиграть. Главное помните? - угол падения равен углу отражения, вектор скорости… Опять начнём как обычно с модели, поизучаем все возможные ситуации и отработаем в виде кодов. Оказывается есть удары по часовой и против часовой стрелки - просто анатомия движения какая-то!
ПРИМЕР

шаги 208 - 213 (60мин)  - Делаем "умную анимацию", в частности умные вращающиеся колёса. Опять вспоминаем геометрию, длина окружности… Потом объект поставим на колёса и полученную телегу будем не перемещать, а катать!! Причём кататься у нас будет и с инерцией, и с ускорением, да ещё и проезжающий пейзаж будет меняться. Смотря куда соберёшься ехать, поэтому на шаге 211 для этого сделали заготовки под бесконечную панораму и под дорогу. А пейзаж у нас меняется НЕРАВНОМЕРНО - фон медленней, близлежащие деревья так и мелькают..
ПРИМЕР

шаг 214 (7мин)  - Домодифицировали нашу предыдущую икру в пинг-понг, поставив на колёса биту, которой мы шарик отбивали - ну в принципе у нас и стены ходят и бита с инерцией ездит - какой-то "пьяный - зазеркальный" вариант игры получился..
ПРИМЕР

шаг 215 (18мин)  - Начинаем стрелять из пушки. Вспоминаем опять физику - как ядро летит по параболе, какие силы на него воздействуют, как всё это в коде прописать..

шаг 216 (11мин)  - Объясняется как сделать "резиновый" эффект, типа шарик от курсора на невидимой резиночке отскакивает и опять прибегает..

шаги 217 - 218 (34мин)  - Курс подрывника. Начинаем изучать как делать взрывы. Природа конкретног взрыва, его различные виды… в итоге начнём делать свою собственную "галерею взрывов". Вы делаете свою собственную, неповторимую, выбирая различные параметры, эффект взрыва позволяет делать ОЧЕНЬ МНОГО вариантов - проверить все возможные комбинации у меня просто не хватает терпения
ПРИМЕР

шаги 219 - 220 (21мин)  - Создали пушку у которой ствол с инерцией перемещается и расставили мишени - попади - взорвётся. Причём взорвётся так, как ты и выбрал из своей "взрывной галереи". Игра, конечно, это только заготовка воспользуйтесь своим собственным сценарием и теперь уже вам вполне по силам создать свою собственную стрелялку со своими мишенями - подвижными, неподвижными.., в которой стреляют не только по параболе, но и по прямой…
ПРИМЕР

Flash сайт с нуля, конструктор flash сайтов, как вставить flash на сайт, уроки флеш для начинающих, эффекты flash




Чтобы сделать заказ вам нужно перейти по этой ссылке