Робота з масивами в системі ActionScript
Month and days",] //вкладений літерал масиву Для створення масиву за допомогою конструктора Array () застосовується оператор new, за яким стоїть ключове слово Array та круглі дужки, в результаті чого утворюється порожній (не містить у собі елементів) масив. Знов створений масив зазвичай присвоюється змінній або іншому контейнеру даних, які дозволять звертатися наступного разу до цього масиву… Читати ще >
Робота з масивами в системі ActionScript (реферат, курсова, диплом, контрольна)
Робота з масивами в системі ActionScript
1. Типи даних мови ActionScript
Типи даних ActionScript досить типові, але є деякі особливості.
Типи даних в ActionScript
1. Рядок (string) є послідовністю символів (літер, цифр і знаків пунктуації), наприклад, «Привіт!».
1. Число (number) є числа, що використовуються для математичних операцій та розрахунків, наприклад, 253 та 3.56.
2. Булевий тип (boolean) призначений для прийняття логічних рішень, запису та представлення стану будь-якої умови або результату порівняння. Має тільки два значення: true (істина) або false (неправда).
3. Відсутність даних у ActionScript відображається за допомогою спеціальних значень даних: null та undefined.
4. Масив (array) — це список окремих елементів даних в ActionScript.
5. Для обробки екземплярів кліпів в ActionScript існує тип даних Кліп фільму (movieclip).
6. Для вбудованих або визначених користувачем класів даних в ActionScript існує тип даних Об'єкт (object).
На відміну від багатьох мов програмування, в ActionScript не обов’язково наголошувати тип даних. Інтерпретатор визначає тип даних автоматично, досліджуючи синтаксис літерала.
Приклади:
«lifting» // лапки ідентифікують"lifting" як рядок
45.35 // якщо в литералі тільки цілі числа та точка,
//то це число
["hello", 2, true] // квадратні дужки та розділені
//комами значення говорять, що це масив
{x: 234, y:456} // фігурні дужки та пари ім'я
// значення властивості, розділені комами, вказують на
//те, що це об'єкт
lifting // відсутність лапок інтерпретується як змінна
«65.46» // числа в лапках це рядки
«lifting // відсутність закриваючих лапок говорить, що
// це помилка
Перетворення типів даних в ActionScript може теж відбуватися автоматично, але також можна змінювати тип даних для того, щоб заборонити призначення їх типу, яке утворив ActionScript за замовчуванням. Явне перетворення типів даних можна здійснити за допомогою методів, які є аналогами методів Java Script: toString (); String (); Number (); parseInt (); parseFloat (); Boolean (). Визначення типу даних відбувається при використанні оператора typeof.
Приклади:
trace (typeof «game over»);//виводить «string» у вікні
// Output
var x = 5;
trace (typeof x); // виводить:"number"
var now = new Date ();
trace (typeof now); // виводить: «object»
Елементарні типи даних є базовими одиницями мови: кожне елементарне значення містить один елемент даних (на противагу масиву, який містить декілька елементів) та описує цей елемент даних буквально. ActionScript підтримує такі елементарні типи даних: number, string, boolean, undefined та null. В ActionScript немає окремого типу даних для одиничних символів, типу char в С/С++.
Для більш складної обробки даних існує складний тип, при використанні якого можна працювати з кількома фрагментами взаємопов'язаних даних як з одним елементом даних. ActionScript підтримує такі складні типи даних: array, object, movieclip. Функції формально є типом об'єкта, і тому розглядаються як складні дані, але так вони рідко використовуються.
Приклад складних типів даних:
var custName = «Nick»;// для збереження цієї
var custTitle = «Coding Genius»; //інформації про
//декілька покупців
var custAge = 30; // потрібно користуватися масивами
var custPhone = «38−0572−70−21−357»; // масиви
cust1=["Nick", «Coding Genius», 30, «38−0572−70−21−357"];
cust2=["Amile", «Chef», 26, «38−0572−70−21−457"];
Основні оператори ActionScript досить схожі на оператори інших мов, тому зупинимося тільки та операторах елемента масиву/властивості об'єкта. Оператор [] використовується для вилучення та присвоєння значення елемента масиву та властивості об'єкта. При зверненні до масиву він має вигляд:
array[element]
де array — ім'я масиву або літерал масиву, а element — вираз, значення якого є ненегативне ціле число, що являє собою індекс елемента масиву, до якого відбувається звернення (індексація починається з нуля).
2. Робота з масивами
Масив — це структура даних, що може містити кілька окремих значень даних. На відміну від елементарних типів даних, масив може містити більше одного значення даних, у тому числі й елементи різних типів. Масив може містити у собі інші масиви. Наприклад,
["orenges", «apples"]
shopList = ["oranges", 5, «apples», 3, «bananas», 8]
Взагалі, анатомія масивів не відрізняється від анатомії масивів у мовах програмування високого рівня. У мові ActionScript розмір масиву автоматично змінюється при додаванні або вилученні елементів. При спробі доступу до елемента, що знаходиться за межами масиву, ActionScript просто додасть елемент при присвоєнні значення поза межею, та поверне undefined — при спробі доступу до неіснуючого елемента. Індексація елементів масиву починається з 0, крім того, можна вставити елемент на початок, кінець і в середину масиву, а також видаляти їх. У масиві можуть бути порожні проміжки. Такі масиви називаються розрідженими.
Створення масивів
Створити новий масив можна двома способами: за допомогою літерала даних або за допомогою вбудованої функції Array ().
Літерал — це безпосереднє представлення деяких фіксованих даних.
Приклад: створення масиву за допомогою літералів даних
[4, 5, 6]; // прості числові елементи
["john", «ewan», «sew"] // прості рядкові елементи
[1, 4+6, 10] // числові вирази та операції
[firstName, lastName, «tall"] //змінні та рядки як елементи
["month and days",[31,30,28,29]] //вкладений літерал масиву Для створення масиву за допомогою конструктора Array () застосовується оператор new, за яким стоїть ключове слово Array та круглі дужки, в результаті чого утворюється порожній (не містить у собі елементів) масив. Знов створений масив зазвичай присвоюється змінній або іншому контейнеру даних, які дозволять звертатися наступного разу до цього масиву.
Приклад: створення масиву за допомогою конструктора Array ().
var myList = new Array ();
Також можна передавати один або кілька аргументів у конструктор Array, причому кожен аргумент стає значенням нового масиву. Наприклад:
var myList = new Array («section1», «section2»);
При передачі в конструктор Array () тільки одного числового аргументу створюється масив із зазначеною кількістю порожніх елементів заступників:
var mList = new Array (20);
Аргументи, що передаються конструктору Array (), можуть бути будь-якими припустимими виразами, у тому числі складеними:
var x = 10;
var y = 5;
var myNumbers = new Array (x-2, x*y, Math. random ());
Приклади створення масивів за допомогою конструктора Array():
var a = new Array (4, 5, 67, 35, 17);
var b = new Array (1, 56 + 5, 6, 3);
var c = new Array (firstName, lastName, «tall»);
var d=new Array («month and days», new Array (31,30,28));
Звертання до елементів масиву
Для звертання до окремого елемента масиву потрібно вказати ідентифікатор масиву та індекс елемента, що взятий у квадратні дужки:
arrayName[elementNumber],
де arrayName — це якась змінна, що вказує на масив; а elementNumber — ціле число, що задає індекс елемента. Якщо задано номер елемента, що перевищує номер останнього елемента масиву, інтерпретатор поверне значення undefined.
Приклад:
var trees = ["oak", «cedar», «maple"];
trace (tress[0]); // «oak»
var favoriteTree = trees[2]; // «maple»
Також як індекс можна використовувати змінну, складний вираз або виклики функцій, які повертають числові значення.
Визначення розмірів масиву
У всіх масивів існує вбудована властивість length, що вказує на поточну кількість елементів (включаючи невизначені). Для доступу до властивості length масиву застосовується оператор «точка»:
arrayName.length
Довжина масиву завжди на 1 більше індексу його останнього елемента (незалежно від того, які елементи масиву були пропущені). Наприклад, масив складається з елементів з індексами 2, 5, 17 і 35. Довжина цього масиву дорівнює 24. При додаванні або вилученні елементів з масиву властивість length оновлюється, відображаючи зроблені зміни.
Іменовані елементи масиву
Нумеровані елементи масиву зазвичай однакові за своєю природою. Однак іноді виникають задачі, для яких необхідно зберігати в масиві деякі взаємопов'язані елементи інформації різного типу. Так виникла необхідність створення так званих іменованих масивів (у мові Perl вони називаються асоціативними масивами). На відміну від інших мов у ActionScript не можна до іменованих елементів масиву звертатися за номером, тільки за іменами. Крім того, іменовані елементи масиву не можна обробляти методами Array (push (), pop () тощо). Іменовані елементи не входять до складу списку нумерованих елементів масиву. Наприклад, масив з єдиного іменованого елемента та двох нумерованих має довжину 2, а не 3. Тому для перебору всіх іменованих елементів масиву ActionScript слід застосовувати цикл for-in, що перелічує як іменовані, так і нумеровані елементи.
Створення іменованих елементів масиву та звертання до них
Для додавання до масиву елемента, що потім можна буде витягати по імені, застосовуються квадратні дужки, які містять рядок замість індексу елемента:
arrayName[elementName] = expression
Тут elementName — це рядок. Наприклад:
var importantDate=new Array ();//створити порожній масив
importantDate["dadsBirthday"]="June 1″; // додати
// іменований елемент
importantDate["mamsBirthday"]="January 12″; // додати
// іменований елемент Для встановлення іменованого елемента масиву також можна скористатися оператором «точка»:
arrayName.elementName = expression
У даному випадку elementName є ідентифікатором, а не рядком, тому подвійні лапки в даному випадку відсутні:
ImportantDates.dadsBirthday = «June 1»;
Для вилучення іменованого елемента застосовується оператор delete:
delete arrayName. elementName
Вилучення іменованого елемента руйнує як значення елемента, так і його контейнер, звільняючи при цьому пам’ять, у той час як при вилученні нумерованих елементів оператор скидає значення, залишаючи контейнер непорожнім.
Додавання елементів до масиву
Додати елементи до масиву можна трьома способами:
1) безпосереднє додавання нових елементів;
2) додавання елементів за допомогою властивості length;
3) додавання елементів за допомогою методу Array.
При безпосередньому додаванні нового елемента до існуючого масиву за заданим індексом відбувається звичайне присвоювання значення цьому елементу:
// створюється масив та присвоюються йому значення
var goods = ["bananas", «apples», «oranges"];
//додається четверте значення
goods = «grapes»;
Не обов’язково додавати новий елемент відразу за останнім, можна вказати будь-який номер елемента в масиві. Якщо елемент вже існує, то він буде замінений новим значенням. Якщо елемент не існує, то він буде створений.
Для поширення масиву, не присвоюючи значень новим елементам, достатньо збільшити властивість length, та ActionScript додасть потрібну кількість елементів для досягнення вказаної довжини:
// створити масив з трьох елементів
var myColors = ["red", «green», «blue"];
// додати в масив 38 порожніх елементів за номерами від
// 3 до 40
myColors.length = 41;
Третій спосіб додавання елементів — використання вбудованих методів масивів:
1) метод push ();
2) метод unshift ();
3) метод splice ();
4) метод concat ().
3. Метод push ()
Метод push () додає один або більше елементів у кінець масиву. Він автоматично записує дані за останнім нумерованим елементом масиву. Метод push () може одночасно додавати декілька елементів до масиву. Для виклику push () вказується ім'я масиву, потім оператор «точка», ключове слово push та нуль або більше параметрів, взяті в круглі дужки:
arrayName. push (item1, item2, …, item n);
Тут item1, item2, …, item n — розділений комою список елементів, що додається у кінець масиву як нові елементи. Елементи можуть бути будь-якими виразами. Перед додаванням елементів вирази обчислюються. Метод push () повертає нову довжину масиву, що змінився.
Приклад:
// створюємо масив з кількох елементів
var myList = [12, 24, 46];
// додаємо ще 2 елемента
myList.push (28, 36);
trace (myList.push (2, 88)); // додає в список 2 і 88,
// повертає 7
4. Метод unshift ()
Метод unshift () подібний із push (), але один або декілька елементів додаються до початку масиву, просуваючи далі всі існуючі елементи:
arrayName. unshift (item1, item2, …, item n);
Тут item1, item2, …, item n — розділений комами список елементів, що додається до початку масиву як нові елементи. Якщо додається декілька елементів, то вони розміщуються в масив у тому порядку, в якому вказані. Також як і push (), метод unshift () повертає нову довжину масиву.
Приклад:
var myList = new Array ();
myList[0] = 6;
myList.unshift (5); // myList = [5, 6]
myList.unshift (2, 3, 4); // myList = [2, 3, 4, 5, 6]
мова actionscript масив array
5. Метод splice ()
Метод splice () може додавати елементи до масиву або вилучати їх з нього. Зазвичай він застосовується для вставки елементів у середину масиву (наступні елементи перенумеровуються для звільнення простору) або вилучення елементів з середини масиву (наступні елементи перенумеровуються для ліквідації розриву). Якщо splice () використовується для обох задач за один виклик, то в результаті деякі елементи заміняються новими (кількість елементів, що вилучаються та вставляються, має співпадати).
arrayName.splice (startIndex, deleteCount, item1, item2, …, itemn);
Тут startIndex — це число, що задає індекс, з якого має розпочатися вилучення елементів та необов’язкова їхня вставка; deleteCount — необов’язковий аргумент, що зазначає кількість вилучених елементів (включаючи елемент з індексом startIndex). Якщо deleteCount пропущений, віддаляються всі елементи, починаючи зі startIndex включно. Необов’язкові параметри item1, item2, …, item n є елементами, що додаються як елементи масиву, починаючи з номера startIndex.
Також метод splice () повертає масив тих елементів, які вилучив. Тому його також можна використовувати для вилучення послідовності елементів з масиву. Якщо ж жоден елемент не вилучений, то splice () повертає порожній масив (тобто масив без елементів).
Приклад:
months = new Array («January», «Friday», «April», «May», «Sunday», «Monday», «July»);
months.splice (1,1);//months=["January", «April», «May»,
//"Sunday", «Monday», «July"]
months.splice (1, 0, «February», «March»);
// months=["January", «February», «March», «April», «May»,
// «Sunday», «Monday», «July"]
months.splice (5, 2, «June»);
// months=["January", «February», «March», «April», «May»,
// «June», «July"]
months.splice (3);
// months=["January", «February», «March"]
trace (months.splice (1, 2));
// виводить «February», «March»
// months=["January"]
6. Метод concat ()
Подібно push (), метод concat () додає елементи у кінець масиву. На відміну до push (), метод concat () не змінює масив, у якому був застосований, а повертає новий масив. Також він може поєднувати два та більше масивів до одного масиву.
arrayName.concat (elementList)
Елементи, які містяться в elementList, додаються по одному в кінець масиву arrayName, а результат повертає у новий масив, при цьому arrayName залишається без змін. Також метод concat () не розбиває вкладені масиви.
Приклад:
var list1 = new Array (1, 4, 3);
var list2 = list1. concat (12, 33);
// list2 = [1, 4, 3, 12, 33]
var list3 = list2. concat (list1);
// list3 = [1, 4, 3, 12, 33, 1, 4, 3]
var list4 = [[5, 6], [7, 8]];
var list5 = list2. concat (list4);
// list5 = [1, 4, 3, [5, 6], [7, 8]]
7. Вилучення елементів масиву
Способи вилучення елементів з масиву:
1) застосувати оператор delete;
2) зменшити властивість масиву length;
3) використовувати вбудовані методи масивів.
Оператор delete присвоює елементу масиву значення undefined із дотриманням наступного синтаксису:
delete arrayName[index]
Тут arrayName — це будь-який масив, а index є номером або ім'ям елемента, значення якого потрібно установити в undefined.
Метод delete аналогічний присвоюванню елементу масиву значення undefined. Для повного вилучення елемента з масиву використовуються методи splice (), shift (), pop (). При застосуванні оператора delete до іменованого масиву, він може знищити властивості об'єктів, руйнуючи їх назавжди.
Приклад:
var myList = ["a", «b», «c"];
delete myList[2]; // myList = ["a", «b», undefined]
trace (myList.length); // Виводе 3
Для вилучення елементів за допомогою властивості length необхідно присвоїти йому значення, менше поточної довжини масиву (усікання масиву):
var myList = ["a", «b», «c"];
myList.length = 2; // myList = ["a", «b"]
Для вилучення елементів з масиву використовуються такі вбудовані методи класу Array:
1) метод pop ();
2) метод shift ();
3) метод splice () — розглянутий вище.
8. Метод pop ()
Метод pop () протилежний методу push (): він вилучає останній елемент масиву. Синтаксис pop ():
arrayName.pop ()
Метод pop () зменшує довжину масиву на 1 та повертає вилучений елемент. Методи pop () і push () часто застосовуються спільно для організації стеку типу LIFO (last-in-first-out).
Приклад:
var x = [1, 2, 3];
trace (x.pop ()); // x = [1, 2] Повертає 3
9. Метод shift ()
Метод shift () протилежний методу unshift () і вилучає елемент з початку масиву:
arrayName.shift ()
Як і pop (), shift () повертає значення вилученого елемента. Елементи, що залишилися, переміщаються вверх до початку масиву зі збереженням порядку.
Приклад:
var x = [1, 2, 3];
trace (x. shift ()); // x = [2, 3] Повертає 1
Вбудовані методи для роботи з масивами:
1) метод reverse () — змінює порядок елементів на протилежний;
2) методи sort () і sortOn () — упорядковують елементи масиву відповідно до будь-якого заданого правила (якщо правила не задані, то за алфавітом);
3) метод slice () — повертає з масиву ряд елементів; створює новий масив і не змінює оригінал, на відміну від методу splice ();
4) метод join () — створює рядок, що містить всі нумеровані елементи масиву;
5) метод toString () — повертає рядкове представлення того об'єкта, з яким він викликається. У випадку з масивами він повертає список елементів масиву, перетворених у рядки та розділених комами.