Автор работы: Пользователь скрыл имя, 07 Декабря 2011 в 20:44, курс лекций
Технология Flash основана на использовании векторной графики в формате Shockwave Flash (SWF). Хотя это далеко не первый векторный формат, создателям SWF удалось найти наиболее удачное сочетание между изобразительными возможностями графики, инструментальными средствами для работы с ней, и механизмом включения результата в Web-страницы. Дополнительным преимуществом SWF является его переносимость, то есть этот формат может использоваться на любой аппаратно-программной платформе (в частности, на компьютерах Macintosh, работающих под управлением операционной системы MacOS, и на компьютерах IBM с ОС Windows). И еще одна особенность SWF: созданные на его основе изображения не только могут быть анимированы, но также дополнены интерактивными элементами и звуковым сопровождением.
Array
Объект Array представляет собой массив. Пользуясь его свойствами и методами, вы можете выполнять над массивами различные манипуляции. Создать массив можно как обычным способом, присвоив нужной переменной список элементов, разделенных запятыми и заключенных в квадратные скобки, так и воспользовавшись конструктором. Ниже перечислены три
способа
вызова конструктора массива:
arr = new Array();
arr = new Array(<Размер>);
arr
= new Array(<Список элементов, разделенных
запятыми>);
Если не передать конструктору никакого параметра, созданный массив будет иметь нулевой размер. Если же передать в качестве параметра одно число, то ActionScript посчитает его размером массива и создаст массив, все элементы которого будут иметь тип undefined. Свойство length позволит узнать размер массива. l = arr.length; Метод reverse изменяет порядок следования элементов массива на противоположный. А метод tostring возвращает строку, содержащую значения всех элементов массива, разделенные запятыми.
Function
Объект
Function представляет собой функцию. Пользуясь
его свойствами и методами, вы можете выполнять
над функцией различные манипуляции. Конструктор
объекта-функции имеет следующий формат:
{Имя
функции} = new Function({Список аргументов, заключенных
в кавычки и разделенных запятыми} {Тело
функции, заключенное в кавычки});
Это
значит, что можно создавать функции как
с помощью действия function, так и тем же образом,
каким создаются экземпляры объектов.
Заметьте, что во втором случае и список
аргументов, и тело функции заключаются
в кавычки. Рассмотрим пример объявления
функции, сначала традиционным путем,
потом — новым, в виде объекта:
function someFunc(a, b) {
return (a + b) / 2;
}
someFunc
= new Function("a", "b", "(a + b) / 2");
И
при этом вызывать созданную функцию вы
можете по-старому, независимо от способа
создания.
f = someFunc(s, 2) — 9;
Arguments
Объект
Arguments представляет собой массив аргументов,
переданных функции. Этот объект может
быть очень полезен, если функции передается
переменное число аргументов. Не нужно
специально создавать экземпляр объекта
Arguments. Flash создает его сам. Причем доступен
этот экземпляр только внутри тела функции.
function AFuncO {
var i, s = " ;
for (i = 0 ; i < arguments.length; i++) {
s += argument[i - 1];
}
return s;
}
Вышеприведенная функция объединяет все переданные ей аргументы в одну строку и возвращает ее вызвавшему выражению. Свойство length возвращает размер массива аргументов, т. е. количество аргументов, переданных функции.
Math
Объект Math служит для предоставления доступа к встроенным константам и встроенным математическим и тригонометрическим функциям языка ActionScript. Единственный экземпляр этого объекта создается самим Flash. Методы sin, cos и tan позволяют вычислить соответственно синус, косинус и тангенс угла, заданного в радианах. Метод sqrt вычисляет квадратный корень. Метод pow (x, у) возводит х в степень у. Кроме того, объект Math содержит несколько свойств, возвращающих значение различных математических констант. Так, свойство PI возвращает значение числа π. А свойство Е возвращает значение основания натурального логарифма.
Object
Объект
object — простейший из объектов, предоставляемых
языком ActionScript. Он содержит минимальный
набор свойств и методов и служит для создания
на его основе других объектов.
Контрольные вопросы:
1. Раскройте понятия объекта и экземпляра в ActionScript.
2. Как создается и уничтожается объект и экземпляр объекта?
3.
Какие объекты в ActionScript являются
встроенными?
Лекция №14.
Тема: Пользовательские объекты.
Цель: Научиться самостоятельно создавать и использовать объекты, определять им свойства, методы и область применения.
Содержание:
1. Пользовательские объекты.
2. Создание нового объекта.
3. Создание методов и свойств.
1. Пользовательскими называются объекты, созданные самим разработчиком сценариев для своих нужд.
Создание экземпляров объекта Object
Если
вам нужна сложная структура для хранения
данных, проще всего будет создать экземпляр
объекта object и установить в нем нужные
свойства и методы. Так как объект object
не имеет конструктора, для создания экземпляра
следует просто использовать инициализатор:
var somePoint;
somePoint
= {х: 100, у: 50, color: "black"};
Таким
образом создан экземпляр объекта, представляющий
некую точку, и в нем — свойства декартовых
координат и цвета. Теперь можно его применить:
somePoint.у
= somePoint.x / 2 + 20;
Можно
даже добавить в этот объект новое свойство,
просто присвоив ему требуемое значение:
somePoint.radius
= 0.5;
и
потом использовать его: с = 2 * somePoint.radius;
2.
Если создать новый объект, все добавленные
свойства и методы появятся во всех его
экземплярах. Чтобы создать новый объект
нужно просто создать его конструктор.
Имя конструктора станет именем нового
объекта.
function point(xx, yy, ccolor) {
this.x = xx;
this.у = yy;
this.color = ccolor;
}
Выше
приведено объявление конструктора для
объекта point, представляющего геометрическую
точку. Этому конструктору передаются
три аргумента: декартовы координаты х,
у и цвет, а он присваивает эти аргументы
свойствам создаваемого объекта. Здесь
надо сказать о модификаторе this. Этот модификатор
предоставляет доступ к создаваемому
объекту и доступен только в теле функции
конструктора. Иначе говоря, если написать
выражение х = хх; это будет присвоением
значения переменной х, а выражение this.x
- хх; присвоит новое значение свойству
х создаваемого этим конструктором объекта.
Создав конструктор нового объекта, вы
можете создавать его экземпляры:
var somePoint;
somePoint
= new point(100, 200, "black");
3.
Если присвоить функцию свойству объекта,
получится новый метод:
function fMoveAt(dx, dy) {
this.x += dx;
this.у += dy;
function point(xx, yy, ccolor) {
this.x = xx;
this.у = yy;
this.color = ccolor;
this.moveAt = fMoveAt;
}
Таким образом создан новый метод moveAt объекта point. Этот метод сдвинет точку на определенные приращения по горизонтали и вертикали. Необходимо только объявить функцию, которая станет методом, перед тем, как использовать ее в объявлении конструктора.
Есть
еще один способ создания методов. Функция
точно так же присваивается свойству объекта,
только присваивание это выполняется
не в конструкторе, а вне его:
function point(xx, yy, ccolor) {
this.x = xx;
this.у = yy;
this.color = ccolor;
}
point.prototype.moveAt
= fMoveAt;
Здесь
используется свойство prototype, чтобы
обратиться к объявлению (прототипу)
объекта. Мы создаем в нем свойство moveAt
и присваиваем ему функцию fMoveAt, которая
и станет нашим методом. Пользуясь прототипом,
также можно создавать новые свойства:
point.prototype.z = 0;
Контрольные вопросы:
1. Какие объекты в ActionScript называются пользовательскими?
2. Каким образом можно создать новый пользовательский объект в ActionScript?
3.
Как можно задать
Лекция №15.
Тема: Динамические свойства объектов.
Цель: Научиться определять объекту не только обычные, но и динамические свойства.
Содержание:
1. Создание динамических свойств.
2. Наследование. Внешние объекты.
1. Кроме обычных свойств, можно создавать так называемые динамические свойства. Они отличаются от обычных свойств тем, что при обращении к ним вызывается какая-либо функция, которую задали при создании этого свойства. Собственно, таких функций две: одна вызывается при попытке чтения значения свойства (функция чтения), а вторая — при попытке записи в него нового значения (функция записи). Например, функция записи может модифицировать значения других свойств этого объекта. А функция чтения может вычислять значение этого свойства, т. к. самого этого свойства в классе фактически не существует. Таким образом, переменной, в которой хранится значение свойства, в объекте нет — оно вычисляется всякий раз с помощью функции чтения. Создание динамического свойства выполняется при помощи метода addProperty объекта object. Формат метода addProperty таков:
addProperty(<Имя свойства>, <Функция чтения>, <Функция записи>);
Пользуясь методом addProperty, можно создавать свойства, доступные только для чтения или только для записи. Чтобы создать свойство, доступное только для чтения, нужно вместо функции записи подставить null. А чтобы создать свойство, доступное только для записи, нужно подставить null вместо функции чтения. Создадим в объекте point свойство square, возвращающее площадь прямоугольника, образованного началом координат и точкой, заданной этим объектом. Причем свойство square не будет храниться в объекте, а будет вычисляться при каждой попытке его чтения.
Сначала создадим саму функцию чтения:
function fSquareCalc() {
return this.x * this.у;
}
Теперь создадим динамическое свойство:
point.prototype.
Теперь,
если вы попытаться прочитать значение
свойства square, ActionScript вызовет функцию
fSquareCalc, которая вычислит площадь и вернет
ее. Однако ничего записать в это свойство
невозможно.
2. Можно создавать объекты, которые наследуют свойства и методы других объектов. Таким образом, можно расширять функциональность уже существующих объектов, созданных вами или совсем другими разработчиками, причем для этого вам достаточно только написать код, реализующий эту дополнительную функциональность. Такой подход называется наследованием объектов. При этом объект, наследующий свойства и методы, называется потомком или дочерним объектом, а объект, свойства и методы которого наследуют, — предком или родителем. Все пользовательские объекты и большинство объектов встроенных наследуют свою функциональность от объекта object. Из объектов, не наследующих object, можно выделить объект movieclip.
Внешние объекты находятся вне ActionScript. Это все объекты, предоставляемые пакетом Flash: клипы, кнопки и др. Внешними они называются потому, что не относятся к языку ActionScript, а находятся как бы вне его.