Термин ветряная электростанция относится к группе ветряных турбин в одном месте, используемых для производства электроэнергии. По сравнению с воздействием традиционных источников энергии на окружающую среду, влияние энергии ветра относительно невелико. В отличие от источников энергии из ископаемого топлива, энергия ветра не потребляет топлива и не загрязняет воздух.
В этом руководстве вы узнаете, как создать виртуальную ветряную ферму с помощью ActionScript 3.0.
Этот пост является частью Blog Action Day 2009 , всемирной инициативы, созданной основателями Envato Коллисом и Сайаном Таидом, которой в настоящее время управляет Change.org . Блог Action Day существует для того, чтобы перевести разговор в Интернете на один день , объединив тысячи блогеров вокруг одной важной проблемы — в этом году — Изменение климата. Еще не поздно зарегистрировать свой блог и принять участие.
Шаг 1: Краткий обзор
Мы собираемся получить возвращенное значение свойства activityLevel класса Microphone, а затем передать его свойству вращения ранее созданного Turbine MovieClip.
Это приведет к тому, что наши ветряные турбины будут вращаться относительно уровня звука, воспринимаемого микрофоном. Пользователи буквально смогут дуть на свои экраны и наблюдать за вращением турбины!
Шаг 2. Создайте новый файл Flash
Откройте Flash и создайте новый файл Flash (ActionScript 3).

Установите размер сцены 600×300 и частоту кадров 24 кадра в секунду.

Шаг 3: Фон
Мы создадим простую векторную иллюстрацию, которая будет содержать нашу ветропарк.
Выберите Rectangle Tool (R) и создайте синий прямоугольный градиент (# 81CCFE, # D0EAFB) прямоугольника размера сцены.

Используйте Gradient Transform Tool (F), чтобы вращать градиент, оставляя ваш фон таким:

Это будет наше небо.
Шаг 4: Трава
Теперь давайте добавим немного травы, на которой мы можем разместить наши ветряные турбины.
Снова выберите инструмент «Прямоугольник» и создайте прямоугольник зеленого линейного градиента размером 600×30 пикселей (# 9AB937, # AFC232, # 9AB937) и выровняйте его по нижней части сцены.

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

Шаг 5: Ветровая турбина
Используйте инструмент «Прямоугольник», чтобы нарисовать прямоугольник # F7F7F7, 10×153 px, и используйте инструмент «Выделение», чтобы перетащить верхние края, делая его тоньше. Это будет основание турбины.

Чтобы создать лезвия, нарисуйте прямоугольник размером 1×90 пикселей, затем используйте инструмент «Выделение», чтобы перетащить стороны и создать полуовал. Вы можете увидеть это лучше на следующем изображении.

Дублируйте лезвие (Cmd + D) и используйте Transform Tool, чтобы вращать его. Повторите этот шаг, чтобы сделать в общей сложности 3 лезвия.

Выберите инструмент Oval Tool, создайте круг размером 20×20 пикселей и поместите его в центр турбин.

Добавьте немного тени, продублировав ветротурбину и изменив ее цвет на # D0D0D0. Затем перейдите к Modify> Arrange> Send backward и переместите выделение на 1 пиксель вправо.

Шаг 6: Ферма
Преобразуйте лезвия в мувиклип и установите его имя экземпляра как «турбина». Снова используйте меню Arrange, чтобы вывести средний круг вперед.
Дублируйте ветряную турбину столько раз, сколько захотите, просто не забудьте изменить имя экземпляра в зависимости от количества турбин.

Шаг 7: Информация
Мы собираемся добавить некоторую информацию о ветровых турбинах, а также название дня действий в блоге.
Выберите Text Tool (T) и создайте новый статический TextField. Добавьте заголовок и информацию и используйте следующий фильтр.

ОК, графическая часть закончена. Это должно выглядеть так:

Шаг 8: ActionScript
Создайте новый файл ActionScript (Cmd + N) и сохраните его как «Main.as».

Это будет класс, который будет обрабатывать приложение.
Шаг 9: Обязательные классы
Это те классы, которые нам понадобятся. Подробное описание каждого класса см. В справке по Flash (F1).
| 01 02 03 04 05 06 07 08 09 10 | package {     import flash.display.Sprite;     import flash.media.Microphone;     import fl.transitions.Tween;     import fl.transitions.easing.Strong;     import fl.transitions.TweenEvent;     import flash.events.Event;     import flash.events.ActivityEvent;     import flash.system.Security; | 
Шаг 10: Объявление и расширение класса
Ключевое слово extends определяет класс, который является подклассом другого класса. Подкласс наследует все методы, свойства и функции, так что мы можем использовать их в нашем классе.
| 1 2 | public class WindFarm extends Sprite { | 
Шаг 11: переменные
Мы будем использовать только три переменные в этом классе, две объявлены в следующем блоке кода и еще одну для Tween, объявленного в функции вращения.
| 1 2 | private var started:Boolean; private var mic:Microphone = Microphone.getMicrophone(); | 
Шаг 12: функция конструктора
Конструктор — это функция, которая запускается, когда объект создается из класса. Этот код выполняется первым, когда вы создаете экземпляр объекта или запускаете с использованием класса документа.
| 01 02 03 04 05 06 07 08 09 10 11 | public function WindFarm():void {     Security.showSettings(«2»);     mic.setLoopBack(true);     if (mic != null) //If the mic was enabled…     {         mic.setUseEchoSuppression(true);         mic.addEventListener(ActivityEvent.ACTIVITY, activityHandler);//Calls the activityHandler function every time the microphone detects sound     } } | 
Шаг 13: Обработчик активности
Этот код добавляет слушателя для выполнения функции вращения, которая будет обрабатывать движение турбин.
| 1 2 3 4 | private function activityHandler(event:ActivityEvent):void {     stage.addEventListener(Event.ENTER_FRAME, rotateTurbines); } | 
Шаг 14: Вращение турбин
Эта функция управляет вращением турбин.
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | private function rotateTurbines(e:Event):void {     /* If the activity level received by the microphone is between 11 and 19, and the turbines are already spinning,        a «slow down» tween is executed*/     if (mic.activityLevel < 20 && mic.activityLevel > 10 && started)     {         var tween;                         tween = new Tween(turbine,»rotation»,Strong.easeOut,turbine.rotation,turbine.rotation + 720,3,true);         tween = new Tween(turbine2,»rotation»,Strong.easeOut,turbine.rotation,turbine.rotation + 720,3,true);         tween = new Tween(turbine3,»rotation»,Strong.easeOut,turbine.rotation,turbine.rotation + 720,3,true);         tween = new Tween(turbine4,»rotation»,Strong.easeOut,turbine.rotation,turbine.rotation + 720,3,true);                         tween.addEventListener(TweenEvent.MOTION_FINISH, onMotionFinish);//Calls a function when the turbines stop     }     else if (mic.activityLevel > 20)// If the activity level is higher than 20, the sound is enough to move the turbines     {         started = true;         turbine.rotation += mic.activityLevel;         turbine2.rotation += mic.activityLevel;         turbine3.rotation += mic.activityLevel;         turbine4.rotation += mic.activityLevel;     } } | 
Шаг 15: движение завершено
Этот код выполняется, когда анимация замедления завершена.
| 1 2 3 4 | private function onMotionFinish(e:TweenEvent):void {     started = false;//Turbines are not moving } | 
Шаг 16: Класс документа
Вернитесь к файлу .Fla и в панели свойств добавьте «Main» в поле Class, чтобы сделать этот класс документа.
Вывод
Теперь вы знаете, как получить, измерить и реализовать активность микрофона, плюс вы немного узнали о ветровых электростанциях и о том, как они помогают сохранить планету.
Будьте зеленым и спасибо за чтение!

