ООП и флеш. Работа в FlashDevelop и основы ООП.

Аватар пользователя flahhi
flahhi
Не в сети
Регистрация: 23.08.2012
Баллы: 284
ООП и флеш. Работа в FlashDevelop и основы ООП.

FleshDevelop (далее FD) активно используется многими программистами, которые работают на actionscript. За что же его так любят? В основном это связано с его автозавершением кода. Только начал писать, а он уже всё знает Smile Нажал кнопку - вставил шаблон, еще пару кнопок, готова функция. Если разобраться со всеми горячими клавишами FD, то вы сможете работать где-то в два, а то и в три раза быстрее, чем обычно. Но прежде чем начать, нужно разобрать некоторые особенности as3. Дело в том, что этот язык объектно ориентирован и для тех кто сталкивается с этим в первые это выглядит очень страшно. Если у вас вообще нету опыта в программировании и вы не знаете что такое циклы, массивы и т. п. то вам скорее всего не сюда. Если вы уже кое-что можете, не думайте, что здесь будут ответы на все вопросы. В некоторых вопросах нужно будет разбираться самостоятельно, читать книги и задавать вопросы. Вот здесь есть старая добрая статья с основами ООП для as3. Если вы с ней ещё не знакомы - внимательно ознакомьтесь. Основная логика программы будет разъясняться по ходу дела. С недавних пор я понял, что самый действенный способ обучения - это практика. 

Итак создаём проект  и назовём его WolfsIsland (это делать мы уже умеем). Теперь поговорим о нашей задаче и структуре проекта. Обдумывание структуры - это долгий и важный процесс. У нас есть волки и кролики , а также растения. Волки и кролики будут иметь схожую структуру, поэтому их целесообразно выделить в одну группу. В свою очередь кролики и волки делятся на мужские и женские особи. Итого, проанализировав информацию выше, придём к выводу, что у нас будут такие классы: класс Plant - клас растения, Animal - животное, и наследники последнего RabbitMale, RabbitFemale, WolfMale, WolfFemale - кролики и волки. Но для начала, нужно разбить наш остров на клетки (для наглядности). В этом мне помог Антон Карлов и его редактор уровней и мне не пришлось изобретать ничего нового.  Нужный класс на основе Grid.as оттуда с вот таким кодом:package
{
     import flash.display.Sprite;
     import flash.display.Bitmap;
     import flash.display.BitmapData;
     import flash.geom.*;
    
     public class Grid extends Sprite
     {
          private var _bmp:Bitmap;
         
          public function Grid(st:Object, w:int, h:int)
          {
               // Создаем векторную сетку составляя ее из квадратиков
               var cells:Sprite = new Sprite();
               cells.graphics.lineStyle(1, 0x2A352A); //толщина и цвет линий
               for (var y = 0; y < h; y++)
               {
                    for (var x = 0; x < w; x++)
                    {
                         cells.graphics.beginFill(990000, 0.1); //заливка квадратиков и прозрачность
                         cells.graphics.drawRect(x * 50 , y * 50, 50, 50); //квадратики 50х50
                    }
               }
               // Растиризируем набор векторных квадратиков в большой растр
               var bmpData:BitmapData = new BitmapData(cells.width + 10, cells.height + 10, true, 0x00000000);
               var m:Matrix = new Matrix(); //Матрица. С помощью нее помещаем изображение куда надо.
               var r:Rectangle;
               r = cells.getRect(cells);
               m.translate( -r.x, -r.y);
               bmpData.draw(cells, m);
               _bmp = new Bitmap(bmpData);              
              
               st.addChild(_bmp);
          }
     }
}

Этот клас добавляем себе в проект. Для этого создаём новый клас, кликая правой кнопкой мышки на папке src и выбираем Add/NewClass.Ввести имя и клачнуть Ok. В открывшийся файл скопировать код. Пока ничего особо не поменяется кроме количества классов. Его применение рассмотрим следующий раз.
Теперь пришло время клавиатурных сокращений FD о которых я говорил. Полный перечень во всей своей красе вы можете увидеть например здесь Самые важные и самые часто используемые:Ctrl+SPACE - автозаполнение. Начните набирать что либо, нажмите Ctrl+SPACE и редактор закончит за вас. Если возможны варианты, они будут предложены.Ctrl+Shift+1 - генерация шаблона (моя любимая:) ). Напишите имя будущей функции и поставьте на неё курсор. Нажмите эту комбинацию и получите шаблон для функции. Тоже самое для декларации переменных, геттеров/сеттеров, и для обработчиков событий.F4 = перейти на объявление метода/класса/свойства и Shift+F4 = перейти назад.Используйте двойное нажатие на слове чтобы выделить его. Ctrl+U - переведет слова в верхний регистр. Ctrl+L - переведет слова в нижний регистр.Ctrl+D - дублировать строку.Tab выравнивания текста по горизонтали и смещает его вправо на величину равную 4 пробелам(по дефолтным настройкам). Shift + Tab удаляет табуляцию и смещает текста вправо на величину равную 4 пробелам(если применяется к 1 строке, то курсор должен быть в начале строки)Очень важную роль играют шаблоны кода, которые уже присутствуют в FD и которые можно расширить своими шаблонами. начните набирать например for и нажмите TAB. Вставится нужный шаблон. Шаблоны так же вызываются сочетанием Ctrl+B.

 

Аватар пользователя Anyoneelselikeyou
Anyoneelselikeyou
Не в сети
Регистрация: 05.08.2012
Баллы: 74

Невероятно... прочитала буквально на одном дыхании уроки из этой серии (и даже пробежалась по всем ссылкам). Всё очень доступно и понятно. Буду ждать продолжения, а сейчас приступлю к практике...

Ах, да... Спасибо за труд!

Что бы вы сделали, если бы точно знали что всё получится?...

Аватар пользователя Oksana
Oksana
Не в сети
Админ
Регистрация: 02.06.2011
Баллы: 500

Очень интересно, но для меня это высшие знания:) плюсик вам за труды+

Аватар пользователя flahhi
flahhi
Не в сети
Регистрация: 23.08.2012
Баллы: 284

Спасибо) Продолжение следует!)

Аватар пользователя Oksana
Oksana
Не в сети
Админ
Регистрация: 02.06.2011
Баллы: 500

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

Аватар пользователя flahhi
flahhi
Не в сети
Регистрация: 23.08.2012
Баллы: 284

Хм, я вроде бы так всё и делаю. Странно, ладно разберусь...

Пожалуйста, оставьте ваш комментарий. Спасибо!

Для комментирования войдите или зарегистрируйтесь