Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Последняя версия шпор по СТП.doc
Скачиваний:
3
Добавлен:
25.09.2019
Размер:
237.06 Кб
Скачать

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;

Общая схема обработки события: element.addEventListener(MouseEvent.CLICK, eventListener); function eventListener(e:MouseEvent):void{/*действия*/} Типы событий DisplayObject Event.ADDED - конкретный экземпляр DisplayObject, который был добавлен в список отображения Event.RENDER - Отправляется перед обновлением и визуализацией списка отображения Event.REMOVED Event.ENTER_FRAME Event.EXIT_FRAME (события для интерактивных объектов) FocusEvent.FOCUS_IN (OUT) KeyboardEvent.KEY_DOWN (UP)