|
Модераторы: SoWa |
|
AlDev |
|
|||
Опытный идиотъ Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 8 Всего: 50 |
ActionScript 2 для начинающих.
Итак, вы считаете, что Flash – это такая программка, в которой можно рисовать баннеры ну и различные мультфильмы. Спешу вас разочаровать, это далеко не так. Flash – далеко не банеры и мультики. Об этом говорит хотя-бы то, что в нём есть свой зык, который может очень много чего. Итак, это руководство предназначено для тех, кто хочет научиться писать код во flash, а не только рисовать какую-нибудь красивую анимацию. Итак, приступим. Шаг первый: Что и где писать? Писать для начала будем в Macromedia Flash MX 2004 (aka Flash 7). Flash 8 будет даже лучше. Итак, давайте для начала создадим документ Flash. Для этого открываем Flash и выбираем File -> New -> Flash Document. У вас создался ваш первый Flash – документ и с чуством выполненого долга вы можете идти и попить кофе. Не хотите? Хотите научиться писать код? Ну нет, сначала научитесь терпению. Итак, где пишется код? Для того, чтобы написать код, выберите Frame (кадр), выделив его (нажав левой кнопкой мыши по кадру в timeline). Теперь нажмите F9 (или Window -> Actions). Вот вам окно написания кода. В низу окошка написано, Layer 1: 1. Это означает, что вы пишите код для первого кадра на слое Layer 1. Но это пока не важно. Итак, напишем простейший код в Actions: trace («Hello, world!’); Теперь нажимаем Ctrl+Enter. Мы запустили Flash-ку на выполнение. В окне output появилась надпись Hello, world!. Довольны? Работает? Хорошо, теперь, после того, как вы написали свой первый скрипт, можно заняться мозгоё... ой, о чём это я. Всмысле теорией. Итак, введем несколько понятий. 1. Переменная 2. Функция Что это такое и зачем это надо? Переменные. Объявление переменных. Начнем с понятия переменной. Переменная – это поименованная ячейка памяти, имя которой можно использовать для осуществления доступа к данным, находящимся по данному адресу. Умно звучит, не правда-ли? Тогда отойдём от памяти и прочей фигни, а просто вспомним школьный курс алгебры. Помните, вы там искали x? Так вот x – это переменная. Если мы создаем переменную, это значит, что где-то в необозримых просторах памяти выделяется место для нашей переменной, и мы можем использовать её имя для того, чтобы изменять то, что хранится в выделеном месте или просто читать данные оттуда. Простая аналогия – хранилище на вокзале. Множество различных яйчеек. В них храниться непонятно что. Вы сдаете вещи в хранилище и получаете ключик от вашей яйчейки. То есть вам выделили место для хранения чего-либо. И при помощи ключа вы можете менять содержимое, забирать или ложить вещи. Так вот всё это множество яйчеек будет памятью, выделеная вам яйчекйка будет местом, гдже хранится хначение переменной, а ключик – это имя переменной, с помощью которого вы можете получить доступ к содержимому яйчейки. Итак, как нам выделить память для переменной. Для этого достаточно будет её объявить, а всеми извращениями, такими как поиск памяти, пусть занимается flash-player. Вообщем, объявление переменной начинается с ключевого слова var. Далее пишется имя переменной и затем задаётся её тип. То есть шаблон можно представить, как var variable_name:variable_type; variable_name – имя переменной variable_type – тип переменной. Каким может быть имя? Есть несколько простых правил: 1. Имя переменной должно быть уникальным 2. Имя переменной может начинаться с буквы или символов “_”, “$”. 3. Имя переменной нельзя разделять пробелами 4. Имя переменной не может совпадать с зарезервироваными словами ActionScript. О них будет сказано далее. Одна важная особенность: имена переменных регистро-зависимы. То есть переменная с именем name это совсем не то-же самое, что и переменная с именем Name. Старайтесь называть переменные по тому, какую смысловуб нагрузку они несут. Например, если вы храните в переменной возвраст, то не надо называть её, как a_36532_sdsdfxcvsdf, лучше назвать её age. Вам-же потом понятней будет. Теперь рассмотрим типы переменных. Итак, вообще, что такое тип. Тип характеризует данные, которые хранятся в переменной. Так как хранить в переменной можно всё, что угодно, то для удобства работы с тем, что вы там храните, и существует понятие типа переменных. Вообще самыми используемыми у вас будут несколько: числовой, строковый и булевый. Числовой тип описывается как Number. Используется он для хранения числовой информации. Как несложно догадаться, объявление идёт ввиде: var variable_name:Number; Это указывает на то, что в переменной с именем variable_name используется числовой тип данных. Второй тип, как уже говорилось выше – строковый. Описывается как String. Используется он, как не трудно догадаться, для хранения строк. Ну и объявление: var variable_name:String; Третий тип – булевый. Описывается как Boolean. Содержать он может только два значения – true или false. Что значит “истина” или “ложь”. Более близко мы с ним познакомимся в дальнейшем. Объявление переменной булевого типа: var variable_name:Boolean; Итак, мы научились объявлять переменные. Теперь научимся запихивать в них различные бесценные данные. В смысле присваивать им значения. Присвоение значения происходит с помощью оператора =. Например, объявим переменную name и присвоим ей значение “Вася”: var name:String; name = “Вася”; Все строковые значения пишутся в кавычках! Получение значения происходит через мия переменной. Например, если мы хотим узанть то, что находится в переменной name, мы делаем: trace (name); И в ouput увидим то, что в неё занесли. Присваивание значения можно совместить и с объявлением переменной. Напрмиер: var name:String = “Вася”; --------------------------------------------------------------------------------------------------------------- продолжение следует Работа с переменными. Некоторые операторы. Итак, мы научились создавать переменные и получать/изменять их значения. Теперь перейдем к действиям над ними. Самый используемый оператор, это, естественно, присваивание. Производится оно с помощью символа =. Этот символ означает, что мы присваиваем перенной какое-либо значение. До этого он уже был написан, так-что остановлюсь на некоторых извращениях, а именно: Можно присвоить одно и то-же значение нескольким переменным. Это выглядит вот так: var a:Number; var b:Number; var c:Number; a = b = c = 10; trace (a); trace (b); trace ( c ); Выдаст 10, 10, 10. То есть мы присвоили значение 10 для всех трех переменных. Присваивание идёт справа на лево, то есть наш кодэквивалентен следующему: var a:Number; var b:Number; var c:Number; c = 10; b = c; a = b; Теперь перейдём к остальным операторам. Итак, рассмотрим тип Number и то, что можно делать с переменными этого типа. Как в начальных классах, начнём со сложения. Математические операторы 1. Сложение. Сложение производится с помощью оператора +. Примеры операции сложения: var a:Number = 2; var b:Number = 3; trace (a+b); trace (a+2); var c:Number = a+b; trace ( c ); 2. Вычитание Производится с помощью оператора -. Пример: var a:Number = 2; var b:Number = 3; var c:Number = a – b; 3. Умножение Юзаем для этой цели оператор *. var a:Number = 2; var b:Number = 3*a; 4. Деление. Оператор деления - / var a:Number = 2; var b:Number = 3/a; Сразу возникает желание поделить на 0? Ну пожалуйста, пробоуйте . Получите в c значение NaN. Вам интересно, что это значит? Читайте дальше и всё будет понятно. 5. Остаток от деления. Оператор - %. var a:Number = 6%4; trace (a); //выдаст 2, так как 6 = 4*1 + 2. 6. Инкримент-декремент. Оператор инкримента - ++. Оператор декремента - --. Оператор, увеличивающий (если инкримент) или уменьшающий (если декремент) значение переменной на 1. Различают два вида инкримента и декремента: постфиксный и префиксный. Постфиксный инкримент располагается после переменной, например: c++; Разберемся, как работает постфиксный инкримент. var c:Number = 2; trace (c++); trace ( c ); Этот код экваивалентен такому: var c:Number = 2; trace ( c ); c = c+1; trace ( c ); Таким образом, если вы использете постфиксный оператор как часть выражения, сначала будет возвращен результат выражения, а затем будет выполнен оператор. Более наглядный пример: var c:Number = 2; trace ((c++)*2); trace ( c ); После первого trace вы получите 4, а после второго – 3. То-же самое применимо и к постфиксному декременту. Теперь рассмотрим префиксный инкримент. Оформляется он ввиде: var c:Number = 2; ++c; Значение с меняется на c+1. То есть данный код эквивалентен: var c:Number = 2; c = c+1; Ваш вопрос не так уж трудно угадать: вам интересно, чем он отличается от постфиксного? Ну давайте напишем вот такой вот код: var c:Number = 2; trace (++c); trace ( c ); Что мы видим в output? Мы видим там два числа 3. То есть префиксный инкримент, в отличие от постфиксного, выполняется до того, как происходит возвращение результата выражения. То-же самое, как это очевидно, и с префиксным декрементом. Это основные математические операторы, теперь рассмотрим такое извращение, как сложные операторы. Сложные операторы. Не бойтесь, это всего-лишь их название, на самом деле они никакие не сложные. Просто они комбинированы из нескольких. Итак, примеры сложных операторов: +=, -= , *= , /=, %= Нет, это не смайлы %). Это операторы. А то, что они означают, легко понять на примере: var a:Number = 2; a += 10; trace (a); В ouput выведется – 12. То есть этот код эквивалентен следующему: var a:Number = 2; a = a + 10; trace (a); Такая-же ситуация и с остальными. Зачем это нужно? Проще набрать name_of_variable += 10; чем писать два раза, имя переменной. К тому-же + и = это одна и та-же клавиша на клавиатуре. Вообщем Use It! Для удобства. --------------------------------------------- продолжение следует Это сообщение отредактировал(а) Alex Batsuev - 30.11.2005, 17:22 |
|||
|
||||
AlDev |
|
|||
Опытный идиотъ Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 8 Всего: 50 |
Boolean операторы.
Теперь перейдем к операторам, цель которых – работать со булевыми величинами. Но для того, чтобы понять, что это такое, надо понять, что такое Boolean. Вообщем есть такая вещь – логика. Очень, можно сказать, полезная. Вообщем про какое-либо утверждение можно сказать, истино оно или ложно. То есть это как обычно условия вам ставят: да или нет. Так вот эти да и нет в программировании очень полезная и нужная вещь. Можно сказать, что это такой маленький мирок, где на вопросы нету ответа «скорее да, чем нет» и тому подобных. Итак, переменные типа Boolean могут иметь только два значения: true или false. То есть true – это истина (ну или «да», как вам больше нравится), а false – это ложь. Для хранения значения такой переменной достаточно всего одного бита. Итак, что можно делать с этой самой истиной? 1. Отрицание. Отрицание производится с помощью оператора !. Пример: var need_coffe:Boolean = false; need_coffe = !need_coffe; trace (need_coffe); То есть если переменная need_coffe у нас была равна false, то она становится равной true и наоборот. 2. Логическое И. Производится с помощью оператора and или оператора &&. Вообще никакой принципиальной разницы между мет, как их обозначать нету. Кому как удобнее. Как его применять? Ну например, нам надо узнать, можно-ли курить. var est_spichki:Boolean = true; var est_sigareti:Boolean = true; var ventilator_rabotaet:Boolean = true; var mozno_kurit:Boolean = est_spichki && est_sigareti && ventilator_rabotaet; trace (mozno_kurit); предпоследняя сточка эквивалентна такой: var mozno_kurit:Boolean = est_spichki and est_sigareti and ventilator_rabotaet; 3. Логическое ИЛИ. Производится с помощью оператора or или оператора ||. Так-же, как и логическое И. Пример: var need_two_beer:Boolean = true; var phrase:Boolean = two_beer || !two_beer; trace (phrase); вторая строчка, это то-же самое, что и var need_two_beer:Boolean = true; var phrase:Boolean = two_beer or !two_beer; trace (phrase); Некая иллюстрация на тему to be or not to be… Теперь ещё несколько операторов, которые возвращают Boolean значения: 1. Сравнение. Разделяют как нестрогое, так и строгое сравнение. Нестрогое сравнение – сравнение без учета типа переменных. Ну и строго, как очевидно, это сравнение с учетом этого самого типа. Для проверки на нестрогое сравнение используют оператор ==. Иногда нестрогое сравнение производят с помощью eq. Пример такого сравнения: var a:Number = 10; var b:String = ‘10’; var c:Boolean = a==b; trace ( c ); выдаст нам true. О том, как происходит сравнение вы узнаете позже. Итак, а в чем отличие от строго сравнения и как делать проверку на строгое равенство? Всё очень просто. Оператор строгого сравнения - ===. Пример: var a:Number = 10; var b:String = ‘10’; var c:Boolean = a===b; trace ( c ); выдаст нам flase, ибо типы переменных a и b разные. 2. проверка на неравенство. Опять-таки бывает как строгая, так и не строгая. Нестрогая обозначается с пом-ю != , а строгая соответственно через !==. Пример: var a:Number = 10; var b:String = ‘10’; var c:Boolean = a!=b; trace ( c ); выдаст нам false. Ведь a нестрого равно b. А если провести строгую проверку: var a:Number = 10; var b:String = ‘10’; var c:Boolean = a!==b; trace ( c ); то результат будет, как не трудно догадаться, true. Ибо типы переменных разные. 3. больше. Обозначается через > и проверяет, больше-ли значение первой переменной значения второй переменной. Можно описывать через gt. var a:Number = 10; var b:Number = 20; var c:Boolean = a>b; trace ( c ); выдаст нам false, т.к. 10 не больше, чем 20. 4. больше или равно. Обозначается через >= или ge.Пример: var a:Number = 10; var b:Number = 10; var c:Boolean = a>=b; trace ( c ); выдаст true. 5. меньше Обозначается через < или lt. Пример: var a:Number = 10; var b:Number = 20; var c:Boolean = a<b; trace ( c ); выдаст true, ибо 10 меньше 20. 6. меньше или равно. Обозначется через <= или le. Пример: var a:Number = 10; var b:Number = 10; var c:Boolean = a<=b; trace ( c ); Выдаст true. --------------------------- продолжение следует... |
|||
|
||||
ProgrammerBOTANIK |
|
|||
Опытный Профиль Группа: Участник Сообщений: 706 Регистрация: 27.4.2004 Репутация: нет Всего: 0 |
Ну, и что это все дает начинающему пользователю, если он не знает как обратиться к этому извне?
Надо наверное дальше объяснить? P.S. Ставь "10", а не ‘10’ - реально сбивает с толку, не знаю как других, а Флеш-на 100%
-------------------- Сострадание со стороны жизни выражается в смерти |
|||
|
||||
Guest |
|
|||
Unregistered |
AlDev, :lol: эт ты Гурского перепечатываешь ?
|
|||
|
||||
AlDev |
|
|||
Опытный идиотъ Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 8 Всего: 50 |
||||
|
||||
AntonioBanderaz |
|
|||
Velichko Anton Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 1 Всего: 18 |
Зато всем рекомендуешь.... эт так без обид... -------------------- ГЫ... |
|||
|
||||
Maksys |
|
|||
Future Splasher Профиль Группа: Завсегдатай Сообщений: 1289 Регистрация: 15.6.2005 Где: Екатеринбург Репутация: 3 Всего: 17 |
Гурский кста очень мне понравился сразу всю флешку как на ладони... все не документированные дыры рассказал...
|
|||
|
||||
stt |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 79 Регистрация: 26.2.2007 Репутация: 1 Всего: 1 |
где продолжение?
скажем работа с мувиклипом |
|||
|
||||
AlDev |
|
|||
Опытный идиотъ Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 8 Всего: 50 |
stt, работа с мувиклипом это уже Flash API =) а я про язык писал
|
|||
|
||||
БуратиноВЗапое |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 17.3.2009 Репутация: нет Всего: нет |
дайте чонебудь про Namo FreeMotion 2006
непонимаю там ничего( |
|||
|
||||
Alexandr507 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 70 Регистрация: 19.7.2009 Репутация: нет Всего: -1 |
Доброго времени суток. В университете задали на курсовую сделать программу иллюстрирующую сортировку. сам по себе алгоритм это простая сортировка выбором или пузырька. то есть элементарно. Акцент в программе сказали сделать на наглядный показ сортировки заданным методом.
выглядеть это должно примерно так, рандомным образом на экране появляются предположим кружочки с цифрами от 1 до 5.. например 2,5,1,3,4 нужно упорядочить это, и акцент нужно делать как я говорил на наглядный показ в первую очередь на анимацию, то есть допустим всеми известная сортировка выбором, пробег по всему массиву, и выявление минимального значения и замена его с первым элементом массива. и нужно красиво показать как единичка анимационно выходит из своей третьей позиции и перемещается на первую а в свою очередь двойка занимает ее место. и так далее пока массив не будет полностью отсортирован. Скачал macromedia flash 8 (к сожалению новее не нашел , хотя сказать честно не особо то и искал ) Теперь вопрос. Реально ли сделать такое на flash? и что для этого почитать, желательно не тысячно страничную книжку а что нибудь кратенькое что можно скачать в эл. виде. Сам изучаю C# и в целом сделать такое на нем могу, но по разным причинам пришлось отказаться от этого языка. Это сообщение отредактировал(а) Alexandr507 - 5.3.2010, 08:55 |
|||
|
||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 1 Всего: 315 |
Alexandr507, а почему вы не создали тему для своего вопроса?
|
|||
|
||||
Alexandr507 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 70 Регистрация: 19.7.2009 Репутация: нет Всего: -1 |
Посчитал что темы много для моего скромного вопроса)
|
|||
|
||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 1 Всего: 315 |
но о людях, которые будут читать кучу постов, прежде чем дойдут до вашего и поймут, что они зря потратили время, вы не подумали?
это правило форума: один топик - один вопрос но таки я вспомнил эту книжку. что-то вроде Macromedia Flash 8 и Action Script 2, авторы Гурский и Гурский (вроде два брата). там по коду ровно столько, чтобы можно было пользоваться, а вот методика, как делать всякие анимашки расписаны довольно подробно. движения, трансформации, ускорения, повороты, движение по траекториям. поищите эту книгу, будет полезно |
|||
|
||||
Alexandr507 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 70 Регистрация: 19.7.2009 Репутация: нет Всего: -1 |
bars80080, вероятно вы правы, за литературу благодарю, осталось теперь найти
|
|||
|
||||
Правила форума "Flash" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | ActionScript 1,2 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |