пятница, 24 июня 2011 г.

Урок 3. Переменные и константы

Немного теории. 
Переменная - это идентификатор (имя), ассоциированый со значением. Например, переменной может являться идентификатор submitBtn, который ассоциирован с объектом, представляющем кнопку на интерактивной странице в интернете. (с) Колин Мук.

В ActionScript 3 переменные записываются следующим образом:
var имя_переменной:тип_переменной=значение_переменной
Основные типы (классы) для переменных:
  • String - Представляет текстовые данные (строка или символ);
  • Boolean - Определяет логические состояния true (истина), или false (ложь);
  • Number - Представляет числа с плавающей запятой (то есть дробные числа);
  • Int - Определяет целые числа (не дробные);
  • Uint - Представляет положительные целые числа;
  • Array - Определяет упорядоченный список;
  • Date - Представляет определенный момент  времени;
// создаем переиенную типа String 
var firstVar:String="This is my first var"; 
// трейсим её 
trace(firstVar);



Компилируем, и видим следующее:
  Если кто не знает, то trace() - это команда,  которая выводит данные в специальное окошко OUTPUT. Это помогает сэкономить время, если быстро требуется проверить что-либо текстовое (например переменную, как в нашем случае).
Пример использования  переменных с разными типами:
Пробуем создать переменную типа Array.
// создаем переиенную типа Array 
var ArrayVar:Array = new Array();
//Теперь мы поступим не так, как в первый раз.
//Сначала создадим переменную, а уже потом
//присвоим ей значение;
ArrayVar = [1,2,"Hi!!",3];
trace(ArrayVar);

Переменная типа   int:
var a:int=4;
var b:int=5;
a/=b;
trace(a);
И что же у нас выведет? Нет, не 0,1333333 а 0. Почему?  Int - Определяет целые числа (не дробные). Если вместо int написать Number то выведет 0,1333333.

Теперь вы имеете общее представление о переменных, и мы попробуем сделать что-нибудь полезное для нашего развития во flash. А сделаем мы вот что:
Тут совмещены этот и предыдущий урок, пото-му как вы уже умеете создавать кнопки и т.д., то я не буду этого объяснять. Создаём две кнопки плюс (plusBtn) и минус (minusBtn). Создаём текстовое поле и даём ему такие настройки:
 И вставляем такой код:
var num = 0;
plusBtn.addEventListener(MouseEvent.CLICK,plusF);
minusBtn.addEventListener(MouseEvent.CLICK,minusF);
function plusF(e:MouseEvent):void
{
 num +=  1;
 numText.text = num;
}
function minusF(e:MouseEvent):void
{
 num -=  1;
 numText.text = num;
}
Теперь по порядку: Строка 1: Создаём переменную num БЕЗ определения типа переменной; Строка 6: Добавляем единицу к переменной; Строка 7: Обновляем текстовое поле; Строка 11: Отнимаем единицу от переменной Строка 12: Обновляем текстовое поле;
Константы. 
Константы это по сути те же переменные, но предопределенные заранее. Например если переменную можно сначала не задавать:
var vars:Number;
То константу надо задавать заранее. и её нельзя изменять походу выполнения сценария.
const consts= 0;
И как всегда домашнее задание:
  • Сделать что-бы при нажатии на плюс прибавлялась не единица, а пять. При нажатии на минус - отнималось 5.
Удачи!

6 комментариев:

  1. Ответы
    1. Все хорошо получается, если внимательно следовать инструкции!

      Удалить
  2. у тебя когда запускаешь программу стоит 0 значение,а у нас пусто, надо перед строчкой plusBtn.addEvent... ввести numText.text=num;

    ОтветитьУдалить
  3. мне вот такую фигню выдает. подскажите что не так?
    TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
    at _fla::MainTimeline/plusF()

    ОтветитьУдалить
    Ответы
    1. оказалось концы кадров кнопок и минусов находятся не в одном месте с концом кадра текста, на котором был записан код

      Удалить
  4. TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
    очень распространеная ошибка

    ОтветитьУдалить