- •Описание, назначение и возможности технологии Adobe Flash.
- •Программное обеспечение для создания и просмотра проектов Adobe Flash.
- •Отличительные особенности и назначение языка Action Script.
- •Внедрение кода на языке Action Script к Flash-проекту. Пакет и класс.
- •Поля, методы, свойства и их области видимости в Action Script.
- •6.Наследование в ActionScript и объектная модель языка
- •7. Создание анимации и управление ею средствами Action Script
- •8.Элементы управления и их отличительные особенности
- •9.Назначение и особенности классов Object и DataProvider
- •10. Иерархия классов событий и способы обработки события в Action Script
- •События мыши и клавиатуры, генерируемые элементами управления
- •Класс Timer и принцип работы с ним
- •Назначение класса urlRequest, его поля и методы
- •Назначение класса urlLoader и работа с ним
- •Компонент uiLoader, его отличие от класса urlLoader
- •17.Создание индикатора загрузки изображения
- •18.Описание xml. Созд.В Action Script xml-докум. И загрузка внешн xml-документов.
- •19.Анализ содержимого xml-документа
- •Работа с базами данных в приложении air.
9.Назначение и особенности классов Object и DataProvider
Класс Object находится в корне иерархии классов ActionScript. Объекты создаются конструкторами с помощью синтаксиса оператора new, и им можно динамически присвоить свойства. Объекты могут также создаваться путем присвоения литерала объекта (см. ниже):
var obj:Object = {a:"foo", b:"bar"}
Все классы, которые не объявляют базовый класс явным образом, расширяют встроенный класс Object.
Класс Object можно использовать для создания массивов ассоциативных элементов. В сущности, массив ассоциативных элементов является экземпляром класса Object, и каждая пара «ключ-значение» представлена свойством и его значением. Еще одна причина объявить массив ассоциативных элементов с помощью типа данных Object состоит в том, что после этого можно использовать литерал объекта, чтобы заполнить массив ассоциативных элементов (но только в тот раз, когда он объявлен). В следующем примере массив ассоциативных элементов создается с помощью литерала объекта, доступ к элементам выполняется как с помощью оператора-точки, так и посредством оператора доступа к массиву, а затем путем создания нового свойства создается новая пара ключ-значение:
var myAssocArray:Object = {fname:"John", lname:"Public"};
trace(myAssocArray.fname); // John
trace(myAssocArray["lname"]); // Public
myAssocArray.initial = "Q";
trace(myAssocArray.initial); // Q
Создание объекта DataProvider с помощью ActionScript
Объект DataProvider — источник данных, с помощью которого можно заполнить данными компоненты ComboBox, DataGrid, List и TileList. Каждый из этих классов компонентов имеет свойство dataProvider, которому можно назначить объект DataProvider для заполнения данными ячеек компонента. Как правило, поставщик данных — это коллекция данных, например объект Array или XML.
Чтобы создать объект DataProvider, можно создать данные в объекте Array или XML и передать его в качестве параметра value конструктору DataProvider.
Примечание. В ActionScript 3.0 объект Array или XML нельзя назначить напрямую свойству dataProvider, так как свойство определяется в качестве объекта DataProvider и может получать только объекты типа DataProvider.
Добавлять элементы в объект DataProvider можно с помощью addItem() и addItemAt().
Кроме того, с помощью объекта DataProvider можно удалять или заменять элементы в компоненте.
Объект DataProvider можно также объединять с другим и сортировать с помощью методов merge(), sort() и sortOn().
10. Иерархия классов событий и способы обработки события в Action Script
Под основными событиями я понимаю те, которые мы наиболее часто используем в разработке наших Flash приложений, игр и, иногда даже, баннеров. Перечислим их:
1. onPress — событие, которое срабатывает при нажатии на клип;
2. onRelease — нажали на клип мышкой и отпустили. Схоже с onPress, но на мой взгляд, более удобно, что ли. Заметьте, все стандартные кнопки в Windows срабатывают именно на это событие, а не на просто «нажал». onRelease так же даёт пользователю «шанс» отказаться от нажатия, если он, допустим, нажал и понял, что не хочет нажимать =) На практике, на самом деле, встречается очень часто. Чтобы не нажимать, человеку всего-то и нужно увести курсор с объекта и отпустить зажатую кнопку мыши там;
3. onReleaseOutside — как раз то самое событие «нажал-и-отпустил-за-пределами-клипа», которое я описывал чуть выше;
4. onRollOver — навести курсором на объект;
5. onRollOut — убрать курсор мышки с объекта;
6. onEnterFrame — событие, которое срабатывает каждый раз при смене кадра в вашей флешке. Если быть точнее, то происходит это один раз в интервал времени равный смене кадра. Допустим, если FPS вашей флешки равен 30, то это событие будет происходить 30 раз в секунду.
Создание событий разберём на примере onRollOver:
obj_mc.onRollOver = function(){ this._alpha=50; }
1. obj_mc — это объект для которого мы создаём событие;
2. onRollOver — название события. Вместо него могло бы стоять onRelease, onPress или другие;
3. function(){ this._alpha=50; } — действия, которые будут происходить при наступлении данного события. В частности у нас, объект, на который мы наведём курсором мыши, станет наполовину прозрачным.
Задавать действия можно не только таким способом. Например, если у нас есть функция, вызов которой нужно производить по нажатию, то код будет следующим:
obj_mc.onPress = name_function();
Где name_function() — это имя функции, которую нужно будет выполнить.
Так же бывают случаи, когда одни и те же действия выполняются для двух или более событий. Что мы делаем в этом случае? Мы делаем следующее:
obj_mc.onRollOut = obj_mc.onReleaseOutside = function(){ this._alpha=100 };
Удаляем события
Иногда бывает так, что созданное событие требуется отлавливать не бесконечное количество раз, а только определённый период.
delete obj_mc.onRollOver;