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

Автор Тема: Уроки по ActionScript.  (Прочитано 64091 раз)

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

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

Re: Уроки по ActionScript.
« Ответ #45 : 21 Февраля 2011, 02:15:50 »
 :D

Оффлайн [YureZZ] Мужской

Re: Уроки по ActionScript.
« Ответ #46 : 21 Февраля 2011, 02:16:51 »
вот ВСЕМ НОВИЧКАМ! чтобы небыло вопросов.

Цитата:
Советую начать с прочтения книги "Колин Мук - ActionScript 3.0"

Там объяснения начинаются с самых, самых базовых понятий программирования и есть отсылки к сравнению AS3 с AS2.

После прочтения вот это будет полезно держать под рукой, как подсказку: http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/
« Последнее редактирование: 21 Февраля 2011, 04:30:29 от [YureZZ] »

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

Re: Уроки по ActionScript.
« Ответ #47 : 21 Февраля 2011, 03:32:00 »
Цитата: Vetal1992
Попробуй такой код:
Тоже самое...
SC5 у меня давно есть, но так как он жрет больше ресурсов, предпочитаю mx2004. тем более до AS3 мне очень далеко.
В SC5 твои коды работают ;-)

[YureZZ]
« Последнее редактирование: 21 Февраля 2011, 05:06:04 от Vetal1992 »

Оффлайн [YureZZ] Мужской

Re: Уроки по ActionScript.
« Ответ #48 : 21 Февраля 2011, 04:21:03 »
sws750
« Последнее редактирование: 21 Февраля 2011, 05:05:35 от Vetal1992 »

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

Re: Уроки по ActionScript.
« Ответ #49 : 21 Февраля 2011, 05:03:06 »
Эмм.. что-то не туда пошла тема))
можете оскорблять друг друга в личке  :D

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

По поводу Flash MX 2004. Попробуй найти настройки публикации (вкладка файл, вроде там). Там может быть настроен экспорт на Flash Player 6.

Вообще, странно, что код не работал в 2004... Надо эту проблему решить))
А не то, может оказаться так, что большая часть кода, который я сюда писал (и буду писать), будет не работать в родном для AS2 компиляторе.

Re: Уроки по ActionScript.
« Ответ #50 : 22 Февраля 2011, 22:53:12 »
да уж CS5 мне тоже не очень понравился,насчёт книжки AS3 уж очень мне показалось сложно!

Re: Уроки по ActionScript.
« Ответ #51 : 02 Августа 2011, 17:14:54 »
Работаю по книге Колина Мука

довольно сложно, уроки в 1 посте намного проще и понятнее описаны

Пожалуйста сделай серию уроков AS3

Re: Уроки по ActionScript.
« Ответ #52 : 03 Августа 2011, 00:13:10 »
Хорошо, попробую написать.

Re: Уроки по ActionScript.
« Ответ #53 : 03 Августа 2011, 00:15:12 »
спасибо

Re: Уроки по ActionScript.
« Ответ #54 : 20 Августа 2011, 11:09:31 »
Уроки по ActionScript 3.0

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

(Некоторые уроки возможно будут похожи на уроки из ActionScript 2.0. Так как я взял их для начального описания и просто подредактировал).

Примерный план уроков:
Урок 0. Функция trace( );
Урок 1. Переменные
Урок 2. Условия. Выражение if.
Урок 3. Циклы.Цикл for.
Урок 4. Знакомство с массивами.
Урок 5. Функции.
Урок 6. Классы и объекты.
Урок 7. Наследование.
Урок 8. Обработчики событий.
Урок 9. Дописываем проект.
Урок 10. Всего понемногу.


Урок 0. Функция trace( );
Для начала нам нужно познакомиться с функцией trace( ).

Её работа заключается в выводе в панель output выражения, стоящего в скобках. Это позволяет отслеживать работу программы во время написания. Ну что же, давайте её используем и начнем уроки с простого примера. Откроем флеш и создадим *.FLA AS 3.0 файл. Сохраним его куда нибудь и в панели Actions(панель для написания кода) запишем следующий код:

trace("This is work");

Запустим нашу программу и в результате в панели output увидим фразу This is work.
Точка с запятой ставится всегда в конце выражений. А двойные скобки означают строку.

Примечание:
С помощью этой функции можно вывести несколько значений, перечислив их через запятую.

Задание:
1) Выведите сами в output строку Hello, World!!! используя два значения.
2) Можете поразвлечься с этой функцией. =)
« Последнее редактирование: 20 Августа 2011, 11:15:11 от Elentarion »

Re: Уроки по ActionScript.
« Ответ #55 : 20 Августа 2011, 13:05:23 »
Урок 1. Переменные
Что такое переменные. Простым языком, переменные - это своего рода просто контейнеры, для хранения разнообразных данных. Таких как числа, строки, массивы, объекты и прочее(со всем этим мы познакомимся далее). Можно по аналогии сравнить с коробкой, в которую можно что-нибудь положить.

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

Синтаксис создания переменных:
var имя = значение;

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


Если вы попытаетесь использовать несозданную переменную, или создадите переменные с одинаковыми именами, то компилятор выдаст ошибку.


Пару тонкостей:
Мы можем не присваивать переменной начального значения при объявление.
var ball;   // Переменной присвоится значение undefined, в переводе с английского "неизвестно".

Также можно после указания ключевого слова var объявить несколько переменныз через запятую.
var ball, stem=10, name="Иван";

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

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

Пример 1. Вывод значения в output.
Помните нашу функцию trace? Давайте выведем с помощью нее значение переменных.
var a=10;
var b,c;

trace(a,b,c); //Выведет:10 undefined undefined

a=20;
b=10;
c="Значения a и b: ";

trace(c,a,b); //Выведет: Значения a и b:  20 10


Пример 2. Математические действия.

С переменными можно производить разные математические действия, такие как сложение, вычитание, умножение, деление.
var a=10;
var b=2;

trace(a,b); //Выведет:10 2

b=b+3;
a=a-b;

trace(a,b); //Выведет:5 5

var c=a*b;
a=c/b;

trace(a,c); //Выведет:5,25


Так же для действий есть краткие формы(+=, -=, *=, /= и т.д.):
var a=3,b=1;
a += 1; // тоже самое, что и а = а+1;
a -= b; // тоже, что и а = a – b;
a++; // Инкремент, к числу прибавить 1.
a--; // Декремент, от числа отнять 1.


Пример 3. Действия с разными данными и еще немного о trace.
В зависимсти от типа данных, записанного в переменную, можно получить разные значения.


var a=10, b="День рождения ";
var c;

c = b+a;
trace(c); //Выведет: День рождения 10
c = b-a;
trace(c); //Выведет: NaN
/*
Как вы думаете, что может получится, если из строки вычесть число?
NaN - Not a number, или же по простому "неизвестное значение".
*/

Будьте внимательны, при использование разных данных.
Так же в функцию trace может быть записано выражение. В таком случае нам будет выведен результат.

var a=10,b=20,c=30;
trace("Результатом сложения чисел "+a+" "+b+" "+c+" будет:",a+b+c);
//А что выведет, узнайте сами.


Примечание:
Знак равно во флеше не является знаком равенства из математики. Во флеше он означает то, что сначала выполняется выражение, стоящее справа от него. А полученный результат записывается в левую часть.

Строгий тип
Мы может задать переменной определенный тип данных, которая она будет хранить. Для этого после нее ставятся двоеточие и тип.
var имя:тип = значение;
var a:Number = 10;
var b:String = "Привет";

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

Задание:
1) Перечетайте урок еще раз и попробуйте написать что-нибудь сами.
2) Запомните синтаксис объявления: var имя:тип = значение;

Re: Уроки по ActionScript.
« Ответ #56 : 20 Августа 2011, 15:10:04 »
Урок 2. Условия. Выражение if.
Условные выражения – это выражения, в которых проверяется условие, и если оно верное, то выполняется код. Мы разберем это на примере условного выражения if.

Булева логика.
Булева логика. Это выражения, которые могут иметь всего два значения, это истина или ложь. Во флэше также есть слова, обозначающие эти два значения: true и false.(истина и ложь). В условиях используется эта логика.

Если наше условие истина, то наш код будет выполнен. Иначе флэш пропустит  наш код и будет выполняться дальше. Для булевой логики используются в (условие) следующие выражения:
(a > b)        // больше
(a < b)        // меньше
(a == b)      // равенство. Обратите внимание на двойной знак равно, помните, что я говорил об одинарном? 
(a !=b )       // не равно.
(a >= b)      // больше или равно
a <= b)       // меньше или равно

Также мы можем объединить в условие несколько значений, с помощью следующих знаков.
(a>0 && b>0) //а и b больше нуля.
(a>0 || b>0)   // a или b больше нуля.

Простая запись и блок кода.

if (условие) выражение;

if - ключевое слово цикла.
((условие) - выражение,  которое проверяется на истину.
выражение - это действие выполнится, если условие верное.

О блоке кода:
Очень часто нужно, что бы выполнилась не одна команда, а несколько. Тогда нам на помощь приходит блок кода, который записывается  как фигурные скобки { }. Выражение внутри них считается за одно действие. Точка с запятой не ставится после блока кода, однако ставится в выражениях внутри.

Пример 1.
var a=0,b=5;
trace("До: ",a,b); //Выводит: До: 0 5
if (b>0 && b>a) {   // Поскольку условие верное, то код между скобками выполнится.
   a = 7;
   b = 8;
}
trace("После: ",a,b); //Выводит: После: 7 8

Пример 2.
Можно создавать переменные внутри if и вкладывать одно условие в другое.

var a=0,b=5;
if (b>0 && b>a) {   // Поскольку условие верное, то код между скобками выполнится.
   a = 7;
   b = 8;
   if(b>a){     // Опять верно.
      var c = a+b;
      trace(c); // Выведет: 15.
   }
}
trace(c);   // Выведет: 15.

Запись if вместе с else.
Теперь рассмотрим такую конструкцию:

if (условие) {
   //верное условие;
}else{
   //неверное условие;
}

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

Пример 3.

var a=0,b=0;
if (a !=b) {
   trace("a не равно b");  //выполнено не будет, так как условие неверно.
}else{
   trace("a равно b");
}

Полный синтаксис выражения if
Полный синтаксис этого выражения выглядит следующим образом:
if (условие 1) {
   //условие 1 верное, остальные будут пропущены.
}else if (условие 2){
   //условие 2 верное, остальные будут пропущены.
}else if (условие 3){
   //   … и так далее до …
}else{
   //последний код, если ничего не верно;
}


Задания:
1) Придумать пример на выполнение полного синтаксиса.
2) Запомнить о двойном знаке равно.

Re: Уроки по ActionScript.
« Ответ #57 : 20 Августа 2011, 16:54:14 »
Урок 3. Циклы. Цикл for.

Циклы мы опять же будем рассматривать на примере одного часто используемого цикла. Цикл for.

Что же такое циклы – это выражения, которые выполняются до тех пор, пока условие остается верным. Синтаксис цикла for выглядит следующим образом:

for(init; condition; next) {
  наш код;
}

init – если требуется перед выполнением цикла выполнить действия, они записываются здесь.
condition – это условие. Если оно становится неверным, то происходит выход из цикла. Используйте булевы выражения.
next – выполняется каждый раз, когда цикл проходит один круг. Здесь, для примеров нам и понадобится наш инкремент ++(декремент --)

Проще всего понять работу цикла на примере:
Пример 1.
var a = 0;
var b = 0;
for(a;a<10;a++){
trace(a);
}

1)Здесь мы в качестве init, передаем значение а равное 0.
2)Далее цикл проверяет условие condition. Если у нас а<10 то цикл выполняется. То есть выполняется наш код.
3)После этого идет шаг next. То есть к переменой а мы прибавляем еденицу.
4)И все заново с шага 2. И так до тех пор, пока выполняется а<10. Как только условие становится неверным, происходит выход из цикла.

ВНИМАНИЕ. Избегайте огромных и бесконечных циклов.
Ведь если цикл будет слишком большим или бесконечным, то компьютер зависнет на несколько секунд и выдаст соответствующее сообщение.

Циклы можно так же вкладывать в друг друга.
Пример 2.
var a,i,m;
a = 0;
for (i=0;i<10;i++){
for (m=0;m<10;m++){
a+=1;
}
}
trace(a); // Выведет а = 100

В этом случае сначала вызовется первый раз внешний цикл, и вызовет внутренний. После завершения внутреннего, управление снова передастся внешнему, который снова вызовет внутренний.
Итак, наш внутренний цикл вызовется 10 раз, и код внутри него 100 раз.

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

var a = 0;
for(;;){
a++;
if(a>10){
trace("выход из цикла");
break;
}
}

Задание. Попрактикуйтесь с циклами.
Можете еще решить задачи с помощью циклов:
1)   Каждую минуту на станции Ногусломаево в метро входит 30 человек, сколько войдет людей в метро за час?

Ну и одна повышенной сложности, не справитесь, ничего страшного.
2)   Выведите в output таблицу умножения :-)

Решение: Прежде чем смотреть, попробуйте сами решить.

Re: Уроки по ActionScript.
« Ответ #58 : 20 Августа 2011, 18:30:36 »
Урок 4. Знакомство с массивами.

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

Массивы представляют из себя список значений, которые хранятся в одной переменной.

Синтаксис создания массивов:

var имя = [ ] ;

Где имя (Надеюсь вы уже привыкли к именам) – имя нашей переменной с массивом,
[ ] – обозначает массив. Так же он называется Array.

Способы добавление данных в наш массив:
Способ 1. Можно во время создания перечислить через запятую.
var a:Array = [ 1, 2, “Строка” , 9];
trace(a); // Выведет: 1, 2, “Строка” , 9

a = [ 1, 2, 2]; //Ничем не отличается от предыдущих примеров переопределения.
trace(a); // Выведет: 1, 2, 2

Способ 2. С помощью функции push, перечислить через запятую.
var a = [ ];
a.push (1,2,3);
trace(a) // Выведет: 1,2,3
Примечание: Функция push() добавляет элементы в конец строки, поэтому:
var a = [“Начало”,1,2];
a.push(3,“Конец”);
trace(a); //Выведет: Начало,1,2,3,Конец

Обращение к элементам массива:
Элементам внутри массива даются номера, начиная с нуля. Обращение происходит по номеру следующим образом.
имя[номер элемента]

Вот пример обращения:
var a = [1,2,3,4,5,6,7,8,9];  //Создаем массив
trace(a[1]);    //Выведет 2. Так как 1 стоит на нулевом номере.
trace(a[0]);   //Выведет 1.

a = [1,2,3,4];  //Создадим другой массив.
a[2] = 8;        // Переопределяем второй элемент, не забывайте, нумерация с нуля.
trace(a);  // Выведет: 1, 2, 8, 4

Если мы создадим номер массива, элементы которого до этого номера не определены. Флэш автоматически создаст места для них:
var a = [1,1,1,1]        // Создаем массив
a[12] = “Строка”;      //Добавляем двенадцатый элемент.
trace(a);                   //Выведет: 1,1,1,1,undefined,  ….  undefined,Строка.


Кстати:
В качестве номера элемента при обращении, мы можем использовать и переменные. (или то, что дает в качестве значения целое число)
Пример:
var number = 1;
var a = ["Малина","Клубника","Черника"];
trace(a[number]); //Не забывайте, отсчет с нуля, поэтому выведет: Клубника
trace(a[number+1]);
trace(a[number+5*5-26]); // number+5*5-26 равняется 0.

Пример использования массивов:
Пригодится, если вы решите создать календарь например.
var a = 1;

var my_array = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"]

if(a<=12 && a>=1) {
trace("Вы выбрали месяц "+my_array[a-1]);
}else{
trace("Такого месяца нет");
}


Задание:
1) Создайте свой массив.
2) Запишите в массив числа от 0 до 99 используя цикл for
3) Попробуйте записать в массив только четные числа.

Решение:
Напоминаю, что ваше решение вполне может отличаться от моего.

Re: Уроки по ActionScript.
« Ответ #59 : 20 Августа 2011, 20:03:57 »
Урок 5. Функции.

В этом уроке мы познакомимся с таким важным понятием, как функции. Функции, если говорить просто – это код, который может быть неоднократно использован.

Создание функций:
Синтаксис создания функции выглядит следующим образом:

function имя_функции (входные параметры функции) {
   // Код функции;
   return значение;
}

Давайте разбираться, что тут к чему.

# Сразу скажу, что тут есть так называемые необязательные параметры, то есть при
# создании мы их может не указывать. Помните, как было с условием if. Там мы не
# указывали параметр else. То есть он был необязательным.
# Обязательные же параметры должны быть всегда указаны.

Необязательными являются  параметры:
1)входные параметры функции.
2)return значение;
 Поэтому мы их рассмотрим позже.

Сейчас разберем пока без них, наш синтаксис выглядит тогда так.
function имя_функции () {
   // Код функции;
}

Итак.
function – это ключевое слово для создания функции.
имя_функции ( ) – соответственно имя нашей функции, вместе с круглыми скобками.
// Код функции; - этот код будет выполнен при вызове функции.

Кстати – круглые скобки отличительная черта функций. 

Вызов функции:
Что бы выполнить наш код, нужно вызвать функцию. Делается это следующим образом:

имя_функции ( );

Давайте посмотрим пример, тут мы создаем нашу функцию, а потом вызываем ее:
function my_fc ( ) {
trace("Наша функция вызвалась.");
}
my_fc ( );
Теперь мы можем не перепечатывать или копировать большой код, а просто при необходимости вызывать его с помощью короткой строки.

Возврат значения - return:

return значение;

Функция возврата return – возвращает из функции значение(или же ничего). Код после выполнения функции return уже выполнен не будет.
На коротком примере все становится ясно:
var a = 0;  // Создадим переменную.
function my_fc () {
return 10; // - возвращаем значение 10.
trace("Brrrrr"); //- выполнено не будет.
}

a = my_fc();
trace(a); // Функция вернула значение 10, которое мы присвоили а.

Функции также могут вызывать сами себя (рекурсия) или другие функции:

Итак, рекурсия – это вызов функции из неё же самой.
Пример:
var a = 0;
function my_fc () {
a++;
if (a != 7) {
my_fc();  // -функция будет вызывать сама себя, пока а не будет равно 7.
}
}
my_fc();
trace(a);

Вызов другой функции:
function my_fc () {
trace("This is my_fc code");
}
function second_fc(){
my_fc();
}
second_fc(); // эта функция вызовет функцию my_fc( );

Входные параметры функции:

Функции можно передавать переменные, с которыми она будет работать.
Для этого нужно при создании функции в круглых скобках указать… Скажу так – переменные “ссылки” через запятую.

Давайте лучше посмотрим на примере:
var a = 7, b = 10, c = 0;  // Создаем переменные.

function my_fc (fc_A, fc_B){//Указываем в качестве “приемников” переменные fc_A и fc_B
return fc_A*fc_B;    //Запишем в переменную c результат умножения fc_A и fc_B.
}

c = my_fc(a, b);
trace(c);   // выведет 70;

Что же произошло? На самом деле нашим переменным fc_A и fc_B присвоились значения переменных a и b.

Немного сложного: Видимость переменных:

Но в чем отличие от того, если бы мы просто использовали a и b?
Переменные созданные внутри функции “живут” только во время выполнения функции.
Посмотрим наглядно, следующий код выдаст ошибку, т.к. вне функции нет переменных fc_A и fc_B:
var a = 7, b = 10, c = 0; 
function my_fc (fc_A, fc_B) {
trace(fc_A*fc_B); // Выведет 70;
return fc_A*fc_B;
}

c = my_fc(a, b);
trace(fc_A*fc_B);


Так же у функция своя область действия. Можно создать переменные с одинаковыми именами, переменная созданная внутри функции и переменная созданная снаружи – будут двумя разными переменными.
var a = 7; // Мы создали “внешнюю” переменную а.

function my_fc(){
/* Внутри функции сначала ищется а внутренняя. И если в функции не создана внутренняя, то а внешняя.
*/
trace(a);  //Мы еще не создали внутреннюю, но она есть. Выводит undefined.
var a = 8; // Эта переменная создана в функции. И с первой a она не связана.
trace(a); //Тут уже существует внутренняя. Выводит: 8
}
my_fc();
trace(a); // Здесь(вне функции) существует только а – внешняя. Выведет 7.

Это называется эффект перекрывания переменных.
Что бы обратится к конкретной переменной, надо указать ее путь. В данном случае, если уже создана внутренняя, то можно путь к внешней выглядит так: _root.a
Об этом мы еще поговорим в следующем уроке, в разделе посвященному путям.

Задание :
Создайте на каждый выделенный заголовок в данном уроке по два своих примера(примеры можно сделать и посложнее чем мои  ;) ).

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