НОВЫЕ ИГРЫЛУЧШИЕ ИГРЫФОРУМ 456 Всего сообщений: 305037
+  Форум FlashPlayer.ru
|-+  Форум по flash играм
| |-+  Академия flash программирования (Модераторы: Lexei, Vetal1992)
| | |-+  Вопросы по урокам ActionScript

Автор Тема: Вопросы по урокам ActionScript  (Прочитано 31491 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kostiliosss Мужской

Re: Вопросы по урокам ActionScript
« Ответ #15 : 28 Сентября 2011, 21:34:54 »
А, точно, запутался просто)

Оффлайн kostiliosss Мужской

Re: Вопросы по урокам ActionScript
« Ответ #16 : 30 Сентября 2011, 16:12:34 »
Вот в этом уроке № 6 http://www.flashplayer.ru/forum/index.php/topic,13141.60.html
Не могу понять куда вставить этот код:
import script.Living; //Если написать script.*, то будут подключены все классы из папки script

var live = new Living;

trace(live.health);
live.walk();

Где должен распологаться файл "проект"? И как я понял по описанию, он должен быть формата .fla. Должен ли проект привязан к отдельному пакету?

« Последнее редактирование: 30 Сентября 2011, 18:04:04 от kostiliosss »

Re: Вопросы по урокам ActionScript
« Ответ #17 : 01 Октября 2011, 01:19:50 »
Проект все равно где располагать, это просто сохраненный исходник.
Код в проекте - это значит в самом флеш, то есть пишется там же, где в уроках и до этого писали. В панели action.

Файл Living.as должен быть в папке script, которая рядом с исходником создается.
Ну или же просто надо путь указать правильный.
import путь.Living; //Путь указывается через точки, например: папкаОдин.папкаДва.СамФайл;

Оффлайн kostiliosss Мужской

Re: Вопросы по урокам ActionScript
« Ответ #18 : 04 Октября 2011, 17:08:47 »
В уроке 7 http://www.flashplayer.ru/forum/index.php/topic,13141.60.html
Непонятно: MovieClip должен быть формата fla?
Почему такой путь должен быть flash.display.MovieClip? Или это не путь совсем, так как в коде проекта не указывается его импорт, а только импорт script.*?

Новичку в программировании, как я, непонятно какого должен быть формата MovieClip, где он должен лежать, что в нём должно быть.. А о MovieClip можно сказать ничего не говориться..

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

Re: Вопросы по урокам ActionScript
« Ответ #19 : 04 Октября 2011, 20:28:47 »
С классами всегда сложно разбираться.

В уроке 6 мы писали свой собственный класс и учились им пользоваться. Но помимо наших классов, есть еще уже заранее написанные разработчиками программы классы. Их много и с первого раза разобраться в них сложно(во второй версии языка их всего ~30, а в третьей их уже ~300).

MovieClip - это как раз написанный разработчиками класс, который служит для отображения графики. Если открыть справку, там будет колонка "Классы" и можно его там найти и почитать о нем.
http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/MovieClip.html

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

Опять же, для использования надо подключать классы с помощью import, для подключения используется flash.display.MovieClip, для других классов другой путь, это надо постепенно осваивать справку по языку. Что является очень сложным.

Кстати, в программе есть еще как раз объекты с названием MovieClip. Это объекты на основе этого класса, поэтому будьте внимательны и не путайте их вместе. Они обычно хранятся в библиотеке программы.
« Последнее редактирование: 04 Октября 2011, 20:30:26 от Elentarion »

Оффлайн kostiliosss Мужской

Re: Вопросы по урокам ActionScript
« Ответ #20 : 04 Октября 2011, 21:47:56 »
Понятно, спасибо. Буду изучать дальше. Надеюсь не утруждаю такими вопросами..) Потому что чувствую они ещё будут)

Re: Вопросы по урокам ActionScript
« Ответ #21 : 04 Октября 2011, 21:52:37 »
Нисколько не утруждаете. Если бы меня это утруждало, я бы не отвечал. ))

Оффлайн kostiliosss Мужской

Re: Вопросы по урокам ActionScript
« Ответ #22 : 07 Октября 2011, 18:37:03 »
У меня есть два класса, я могу с помощью них как-то вызвать функцию? Или для того чтобы как-то вызывать или выводить данные мне обязательно создавать .fla и вызывать оттуда?

Оффлайн Vetal1992 Мужской

Re: Вопросы по урокам ActionScript
« Ответ #23 : 08 Октября 2011, 17:37:08 »
Или fla или проект Flex - обязательны

Оффлайн Vetal1992 Мужской

Re: Вопросы по урокам ActionScript
« Ответ #24 : 08 Октября 2011, 21:26:21 »
Я поспешил с выводами)) Стало интересно, и я выяснил))

Можно и без Flash IDE (он же Flash CS5), и без Flex.

Итак. Что нам понадобится

1. Программа FlashDevelop: Альтернативная среда разработки флэш-приложений

Сайт: http://flashdevelop.org/
Версия 4.0.0 RC1 (последняя на момент написания статьи): ссылка

Что с ней делать вы сами знаете:

2. Flex SDK: Инструмент разработчика. Необходим для работы FlashDevelop.

Во время установки FlashDevelop, программа сама скачивает SDK. Но когда устанавливал его я - ЧТО-ТО ПОШЛО НЕ ТАК, и я обратился к Яндексу в его поисках.

Он находится тут: http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4.5

Чем отличается Adobe Flex SDK от Open Source Flex SDK я не знаю. Я скачал тот, который занимает меньше места))

Для удобства работы (чтобы не создавать уйму разных папок и запоминать их местоположение), я разместил SDK в папке:
C:\Program Files (x86)\FlashDevelop\Tools\flexsdk

Там находился недокачаный sdk. Я почистил всю папку и создал в ней две: 4.5.0 и 4.5.1 (их я скачал с того самого сайта)

Вот так:



Начинаем делать проект

1. Открываем FlashDevelop. Выбираем меню project>new project



а) Выбираем папку для сохранения проектов
б) Вводим имя нашего проекта
в) Ставим галочку "Create directory for project"
г) Из списка выбираем AS3 Project
д) Нажимаем ОК

2. У нас открылся новый проект



Файл Main.as - базовый класс, точка входа в программу.

Сейчас я запрограммирую некий класс Box, который будет рисовать желтый квадрат заданного размера  :D

а) Создаем новый класс





б) Заполняем его подобным образом



Цитата:
package 
{
   import flash.display.MovieClip;
   /**
    * ...
    * @author Vetal
    */
   public class Box extends MovieClip
   {
      
      public function Box(size:int=100)
      {
         this.graphics.beginFill(0xffcc00);
         this.graphics.drawRect(0, 0, size, size);
         this.graphics.endFill();
      }
      
   }

}

Собственно, это будет мувиклип, который внутри себя рисует квадрат размером size

в) Добавляем мувик на "главную шкалу", то есть в класс Main



Цитата:
package
{
   import flash.display.Sprite;
   import flash.events.Event;
   
   /**
    * ...
    * @author Vetal
    *
    */
   public class Main extends Sprite
   {
      
      public function Main():void
      {
         if (stage) init();
         else addEventListener(Event.ADDED_TO_STAGE, init);
         
         var b:Box = new Box(150);
         b.x = 300;
         b.y = 200;
         addChild(b);

         
      }
      
      private function init(e:Event = null):void
      {
         removeEventListener(Event.ADDED_TO_STAGE, init);
         // entry point
      }
      
   }
   
}

3. Настраиваем FlashDevelop. Этот пункт выполняем один раз. Все следующие проекты будут использовать эти настройки

У меня была запара с FlexSDK, поэтому пришлось лазить по настройкам и разбираться.

а) Открываем Program Settings



б) Слева выбираем AS3Context. Справа ищем Installed Flex SDK's и жмем кнопочку



в) Выбираем расположение SDK. У меня это tools\flexsdk\4.5.1\







Теперь у нас настроено расположение SDK и всё будет пучком

4. Настраиваем публикацию

а) Открываем свойства проекта



б) (Если у вас не так). Выбираем Compilation Target: Application


в) (Если у вас не так). Выбираем Flex SDK 4.5.1


5. Компилируем проект





6. Выводы

На первый взгляд всё кажется ОЧЕНЬ СЛОЖНЫМ. Но это не так) Если вникнуть в это дело, можно программировать и здесь

Преимущества FD:

• Просто на пятерочку подсветка кода. Нажимаем ctrl+пробел и смотрим, что у нас есть за переменные, пакеты, методы и т.п.

• Создание классов более быстрое. Программа сама прописывает все что нужно: пакет, имя класса, конструктор.

• Можно проектировать все мувики, кнопки и компоненты во Flash CS5. Затем выбрать в свойствах проекта "Compilation Target: Other IDE" и тестируем проект.

Во Flash CS5 должен быть открыт fla-файл (я так понял желательно, чтобы он находился в папке с проектом). В результате проект компилируется с ресурсами IDE и кодом FlashDevelop

Недостатки:

• По сравнению с Flex, подсветка кода все же слабовата!  :D
  В нем можно навести на любые: типы данных, переменные, методы, константы и т.п. и справа от курсора появится помощь



• В нем нельзя (или я не нашел как) создавать собственные компоненты, мувики, формы и кнопки. Поэтому без Flash IDE почти не обойтись

Re: Вопросы по урокам ActionScript
« Ответ #25 : 08 Октября 2011, 23:58:37 »
Для новичков я же все таки советовал бы пользоваться стандартными средствами. Хотя из-за громоздкость Adobe Flash данная статья может быть очень полезна. Vetal1992, тоже самое можно проделать, настроив программы NetBeams и Eclipse.

На примере поста выше, для любителей извращений. Как скомпилировать проект с помощью командной строки, flex SDK и блокнота:

1. Скачиваем Flex SDK и распаковываем его в папку(ссылка в посте выше). В моем случае это C:\flex. В комплект этого пакета входит компилятор для ActionScript, который носит название mxmlc.exe и находится в папке bin
C:\flex\bin\mxmlc.exe

2. Создаем текстовый файл и сохраняем под именем Main.as. Пишем код:
package {
import flash.display.MovieClip;
import flash.display.Sprite;

public class Main extends Sprite{
var a = new MovieClip;

public function Main( ){
a.graphics.beginFill(0xffcc00);
          a.graphics.drawRect(0, 0, 150, 150);
          a.graphics.endFill();
a.x = 100;
          a.y = 100;
this.addChild(a);
}
}
}

3. Открываем командную строку cmd и пишем такую строку:
полныйПуть\mxmlc.exe ПолныйПуть\Main.as

В моем случае это выглядело так:
C:\flex\bin\mxmlc.exe C:\flex\project\Main.as

Ждем и получаем рядом с нашим текстовым файлом рабочий скомпилированный swf файл, который рисует квадрат.

Таким образом кстати можно спокойно написать свою IDE для флеша или настроить какую-нибудь любимую IDE если возможно, используя данный компилятор. А так же писать AS3.0 программы на каких-нибудь жутко стареньких компах.
« Последнее редактирование: 09 Октября 2011, 00:07:36 от Elentarion »

Оффлайн Vetal1992 Мужской

Re: Вопросы по урокам ActionScript
« Ответ #26 : 09 Октября 2011, 12:19:27 »
Цитата:
и Eclipse.

Flex - это и так расширение Eclipse)

Re: Вопросы по урокам ActionScript
« Ответ #27 : 09 Октября 2011, 13:53:22 »
Если быть точнее, то расширением является Flash Builder, а сам Flex - это и есть пакет Flex sdk. Единственное что он платный, а так можно как текстовый редактор использовать бесплатно.
« Последнее редактирование: 09 Октября 2011, 13:55:19 от Elentarion »

Оффлайн Shuarol Мужской

Re: Вопросы по урокам ActionScript
« Ответ #28 : 03 Января 2012, 21:49:12 »
Вопрос по урокам АС3:
Второй день уже танцую с 8м уроком, уже наизусть выучил последовательность кодов))) а работать не хочет(
 Проблема с созданием т.н. класса проекта, (где можно подробнее об этом почитать? в гуглах глухо :(
Значит, по уроку г-на Elentarion'a вписываю script.StartGame и вот тут-то у меня и начинается   :gun1:
Пишет:
1180:  Call to a possibly undefined method addFrameScript.

Креплю картинку, сюда нужно вписывать путь класс проекта StartGame?

плз, хлп :help:
 

Re: Вопросы по урокам ActionScript
« Ответ #29 : 04 Января 2012, 06:08:46 »
Значит почти все правильно сделал. ))

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

1180:  Call to a possibly undefined method addFrameScript.
Если класс проекта наследуется от Sprite, то нельзя писать одновременно в самом проекте и в классе проекта.
Нужно либо отказаться от кода в проекте, либо наследовать от MovieClip(но там свои тонкости). 

Решение:
Удалить код в самом *.fla проекте. С восьмого урока в нем больше код не пишется.

P.S. Внес в урок коррективы.

+  Форум FlashPlayer.ru
|-+  Форум по flash играм
| |-+  Академия flash программирования (Модераторы: Lexei, Vetal1992)
| | |-+  Вопросы по урокам ActionScript