PDA

Просмотр полной версии : Массивы во Флеше Ну ООЧЕНЬ ЧАсто задаваемый ВОпрос


Big_J_
27.11.2001, 21:58
Array (object)
Объект Array позволяет вам работать с массивами. Объект Array - это объект, чьи свойства идентифицируются порядковым номером, позицией в массиве. Номер этот называют индексом. Первый элемент массива всегда имеет нулевой индекс, второй - [1], третий - [2], и т. д. В следующем примере массив myArray состоит из проиндексированных названий месяцев года.

myArray[0] = "January"

myArray[1] = "February"

myArray[2] = "March"

myArray[3] = "April"


Для создания объекта Array необходимо воспользоваться конструктором new Array. Чтобы получить доступ к отдельному элементу массива, используйте оператор [ ].
[list]
concat Соединяет аргументы (последовательности массивов), и возвращает их уже как новый массив.

Пример
В этом примере складываются два массива:


alpha = new Array("a","b","c");
numeric = new Array(1,2,3);
alphaNumeric=alpha.concat(numeric);
// создается массив ["a","b","c",1,2,3]


В этом примере складываются три массива:
num1=[1,3,5];
num2=[2,4,6];
num3=[7,8,9];
nums=num1.concat(num2,num3) // создается массив [1,3,5,2,4,6,7,8,9]

join Объединяет элементы массива в строку.

Пример
В следующем примере создается массив с тремя элементами. Затем элементы объединяются тремя способами: с разделителем по умолчанию, с запятой и пробелом, и со знаком плюс.


a = new Array("Earth","Moon","Sun")
// присваиваем значение "Earth,Moon,Sun" массиву myVar1
myVar1=a.join();
// присваиваем значение "Earth, Moon, Sun" массиву myVar2
myVar2=a.join(", ");
// присваиваем значение "Earth + Moon + Sun" массиву myVar3
myVar3=a.join(" + ");


pop Удаляет последний элемент массива и возвращает его значение.

Пример
В примере создается массив myPets, содержащий четыре элемента, а затем последний удаляется:


myPets = ["cat", "dog", "bird", "fish"];
popped = myPets.pop();



push Добавляет один или больше элементов в конец массива и возвращает длину нового массива.

Пример
Создается массив myPets, содержащий два элемента, затем добавляются еще два, после чего pushed содержит 4 элемента.


myPets = ["cat", "dog"];
pushed = myPets.push("bird", "fish");


reverse Выворачивает массив наизнанку, т. е. первый элемент становится последним, второй - предпоследним, и т. д ., и наоборот.

Пример
Использование метода Array.reverse:


var numbers = [1, 2, 3, 4, 5, 6];
trace(numbers.join());
numbers.reverse();
trace(numbers.join());


На выходе:
1,2,3,4,5,6
6,5,4,3,2,1


shift Удаляет первый элемент массива и возвращает его значение.

Пример
Создаем массив myPets и удаляем из него первый элемент:


myPets = ["cat", "dog", "bird", "fish"];
shifted = myPets.shift();

Возвращаемое значение равно cat.

slice Извлекает из массива часть и возвращает ее как новый массив.
Синтаксис myArray.splice(start, deleteCount, value0,value1...valueN); Аргументы

start Индекс элемента массива, где начинается добавление/удаление элементов.

deleteCount Количество удаляемых элементов, включающее в себя элемент start. Если deleteCount не задан, метод удаляет все элементы от start до конца массива.

value Вставляемые в массив элементы, начиная с точки start. Не обязателен.

Описание
Метод; добавляет и/или удаляет элементы из массива. Модифицирует массив без создания копии.


sort Сортирует массив.

Пример
Используем Array.sort без определения аргумента orderfunc:


var fruits = ["oranges", "apples", "strawberries",
"pineapples", "cherries"];
trace(fruits.join());
fruits.sort();
trace(fruits.join());

Получаем:
oranges,apples,strawberries,pineapples,cherries
apples,cherries,oranges,pineapples,strawberries
Используем Array.sort, определяя аргумент orderfunc:


var passwords = [
"gary:foo",
"mike:bar",
"john:snafu",
"steve:yuck",
"daniel:1234"
];
function order (a, b) {
// Элементы записаны в форме
// nameassword
// Сортируем, используя в качестве ключа
// только часть name.
var name1 = a.split(':')[0];
var name2 = b.split(':')[0];
if (name1 < name2) {
return -1;
} else if (name1 > name2) {
return 1;
} else {
return 0;
}
}
for (var i=0; i< password.length; i++) {
trace (passwords.join());
}
passwords.sort(order);
trace ("Sorted:");
for (var i=0; i< password.length; i++) {
trace (passwords.join());
}

Получаем:

daniel:1234
gary:foo
john:snafu
mike:bar
steve:yuck

splice Добавляет и/или удаляет элементы из массива.
Array.splice
Синтаксис

myArray.splice(start, deleteCount, value0,value1...valueN);
Аргументы

start Индекс элемента массива, где начинается добавление/удаление элементов.

deleteCount Количество удаляемых элементов, включающее в себя элемент start. Если deleteCount не задан, метод удаляет все элементы от start до конца массива.

value Вставляемые в массив элементы, начиная с точки start. Не обязателен.

Описание

Метод; добавляет и/или удаляет элементы из массива. Модифицирует массив без создания копии.


toString Возвращает значение строки, которую представляют из себя элементы массива.
Пример
Создаем массив myArray и преобразуем его в строку:

myArray = new Array();
myArray[0] = 1;
myArray[1] = 2;
myArray[2] = 3;
myArray[3] = 4;
myArray[4] = 5;
trace(myArray.toString())

Получаем:
1,2,3,4,5

unshift Добавляет один или больше элементов в начало массива и возвращает длину нового массива.
Array.unshift
Синтаксис

myArray.unshift(value1,value2,...valueN);

Аргументы

value1,...valueN Один или больше элементов, переменных или чисел, вставляемых в начало массива.
Описание
Метод; добавляет один или больше элементов в начало массива и возвращает длину нового массива.

length Возвращает длину массива.
Пример
Ниже поясняется, как обновляется свойство length:

//initial length is 0
myArray = new Array();
//myArray.length обновляется до 1
myArray[0] = 'a';
//myArray.length обновляется до 2
myArray[1] = 'b';
//myArray.length обновляется до 10
myArray[9] = 'c';

Синтаксис


new Array();
new Array(length);
new Array(element0, element1, element2,...elementN);

Аргументы

length Целое число, равное количеству элементов в массиве. Если элементы не смежные, length равен индексу последнего элемента плюс 1. Для дополнительной информации смотри свойства Array.length.

element0...elementN Список двух или более произвольно выбранных значений. Это могут быть числа, имена или другие элементы. Первый элемент массива всегда имеет индекс, или позицию, равную 0.

Описание

Конструктор; позволяет создать массив и работать с ним. Индексы начинаются с нуля, и растут с ростом порядкового номера элемента.

Если аргументы не определялись, создается нулевой массив.

Пример

В этом примере создается нулевой объект Array:

myArray = new Array();
В этом примере создается новый объект Array A-Team, с длиной length равной 4:

A-Team = new Array("Jody", "Mary", "Marcelle", "Judy");
Ниже показана возможная инициализация элементов массива A-Team:


myArray[0] = "Jody"

myArray[1] = "Mary"

myArray[2] = "Marcelle"

myArray[3] = "Judy"


Ну вот и все вобщемто

Countach
27.11.2001, 22:01
Да я один тока 500 раз спросил ;)

vol
28.11.2001, 11:39
Прямо бери и вставляй в книжку. К вышеописанному я добавлю одну примочечку.
Иногда бывает нужно перегнать в массив слова, содержащиеся в какой-либо строке. Мне на глаза однажды попался весьма подходящий для этого дела метод, который (ни в коей мере не претендуя на авторство) я излагаю.

1. Пишем прототип для объекта типа строка.
Пишем его, пока что, в первом кажре клипа.

String.prototype.getWordsArray=function(){
var temp=[];
var begin=0;
var firstSpace=this.indexOf(" ");
var lastSpace=this.lastIndexOf(" ");
for(var i=0;i<this.length;i++){
if(end!=lastSpace){
end=this.indexOf(" ",begin+1)
temp[i]=this.substring(begin,end,end-begin);
begin=this.indexOf(" ",end)+1;
}else{
break;
}
}
temp.push(this.substring(lastSpace+1,this.length));
return temp;
}

2.Теперь этот прототип можно использовать для любых строк и любых массивов.
Как?
Да очень просто.
Пишем где-нибудь в руте
s="Эта строка будет разбита на слова, которые запишутс\xff в массив";

Создаем массив

a=new array();

И перегоняем в него все слова

a=s.getWordsArray();

3.Остались просмотредь этот массив (убедиться дабы), что и делаем.

for (i=0;i<a.length;i++){
trace(a[i]);
}

4. Почему же все-таки прототип?
Потому, что эта задача может возникнуть завтра, а может - и через месяц. Чтобы не создавать каждый раз код заново, используем один раз созданное для всех случаев жизни.

Для этого вышеописанный прототип записываем в отдельный файл с именем strtowords.as, из самого же клипа в таком случае - удаляем его, а в первом кадре вашего клипа пишем:

#include "strtowords.as";

Вот и все. Теперь вам не нужно переписывать каждый раз код прототипа из программы в программу, достаточно лишь положить в исполняемую папку файл с прототипом (с вашей библиотекой прототипов!) и откомпилировать клип. Написанный прототип подключится, куда надо, и для работы исполняемого файла он более не нужен.

Вот и все, что хотел добавить по поводу массивов.

Big_J_
28.11.2001, 13:00
:) String (object) :)

Объект String - оболочка для первоначального строкового типа данных, позволяет использовать методы и свойства объекта String для управления первоначальными строковыми значениями типов. Используя функцию String(), можно преобразовывать значение любого объекта в строку.

Все методы объекта String, за исключением concat, fromCharCode, slice и substr , являются универсальными. Это означает, что сами методы вызывают this.toString перед выполнением их операций и Вы можете использовать эти методы с другими не-строковыми объектами.

Можно вызывать любой метод объекта String, используя конструктор метода new String или литеральное строковое значение. Если Вы определяете строковый литерал, интерпретатор ActionScript автоматически конвертирует его во временный объект String, вызывает метод, а затем удаляет временный объект String. Можно также использовать свойство String.length со строковым литералом.

Важно не путать строковый литерал с экземпляром объекта String. В следующем примере в первой строке создается строковый литерал s1, а во второй, экземпляр объекта String s2.


s1 = "foo"
s2 = new String("foo")

Рекомендуется использовать строковые литералы, если Вы определенно не будете использовать объект String, поскольку объекты String могут вести себя неоднозначно.


charAt Возвращает номер, указывающий на размещение символа в строке.
Пример

myString.charAt(index);

Аргументы
index Номер символа в строке, который будет возвращен.

Описание
Метод; возвращает символ, указанный параметром index. Индекс первого символа в строке - 0. Если index не является числом от 0 до string.length - 1, возвращается пустая строка

charCodeAt Возвращает значение символа по данному индексу как 16-разрядное целое число между 0 и 65535.

Пример
myString.charCodeAt(index);
Аргументы
index Номер символа, значение которого востребовано.

Описание
Метод; возвращает значение символа, указанного индексом index. Возвращенное значение - 16-разрядное целое число от 0 до 65535.
Этот метод подобен string.charAt за исключением того, что возвращается значение символа в определенном местоположении, вместо подстроки, содержащей символ.

concat Объединяет текст двух строк и возвращает новую строку.
Пример

myString.concat(value1,...valueN);

Аргументы
значение1,...значениеN Ноль или большее количество значений, которые будут соединены.

Описание
Метод; объединяет указанные значения и возвращает новую строку. В случае необходимости, каждый аргумент value преобразуется к строке и добавляется в конец выходной строки.

fromCharCode Возвращает строку, составленную из символов, указанных в параметрах.
Пример

myString.fromCharCode(c1,c2,...cN);

Аргументы
c1,c2,...cN Символы, которые будут превращены в строку.
Описание
Метод; возвращает строку, составленную из символов, указанных в параметрах.

indexOf Ищите строку и возвращает индекс значения, указанного в параметрах. Если значение найдено больше чем однажды, возвращается индекс первого возникновения. Если значение не найдено, возвращается -1.

Пример

myString.indexOf(value);
myString.index of (value, start);

Аргументы

value Целое число или строка, определяющая подстроку, которую нужно искать в пределах myString.

start Целое число, определяющее начальную точку поиска. Этот параметр необязательный.

Описание
Метод; ищет строку и возвращает позицию первого совпадения с указанным значением. Если значение не найдено, метод возвращает -1.


lastIndexOf Возвращает последнее местонахождение подстроки в пределах строки, перед позицией ее начала, указанной в параметре, или -1 если не найдена.

Пример

myString.lastIndexOf(substring);
myString.lastIndexOf(substring, start);

Аргументы
substring Целое число или строка, определяющая строку, которую нужно искать.
start Целое число, определяющее точку начала поиска внутри подстроки. Этот параметр необязательный.
Описание

Метод; ищет строку и возвращает индекс последнего совпадения подстроки, найденной в пределах вызываемой строки. Если подстрока не найдена, метод возвращает -1.
slice Извлекает часть строки и возвращает новую строку.

Пример

myString.slice(start, end);
Аргументы

start Номер, определяющий индекс начальной точки сектора. Если start отрицательное число начальная точка определяется с конца строки, где -1 - последний символ.

end Номер, определяющий индекс конца сектора. Если end не определен, сектор включает все символы от начала до конца строки. Если end отрицательное число, то конечная точка определяется с конца строки, где -1 - последний символ.

Описание
Метод; извлекает сектор или подстроку, указанного объекта String, затем возвращает это как новую строку, без изменения оригинального объекта String. Возвращенная строка включает start символ и все символы до (но не включая) end символа.

split Разбивает объект String на массив строк, отделяя строку в подстроки.

Пример

myString.split(delimiter);

Аргументы
delimiter Символ, используемый в качестве разделителя строки.
Описание
Метод; разбивает объект String везде, где встречается определенный аргумент delimiter и возвращает полученные подстроки в виде массива. Если никакой разделитель не определен, возвращенный массив содержит только один элемент - саму строку непосредственно. Если разделитель - пустая строка, каждый символ в объекте String становится элементом в массиве.
substr Возвращает указанное число символов в строке, начиная с местоположения, указанного в параметре.

Пример

myString.substr(start, length);

Аргументы
start Целое число, которое указывает позицию первого символа в создаваемой подстроке. Если start отрицательное число, исходная позиция определяется с конца строки, где -1 - последний символ.
length Число символов в создаваемой подстроке. Если length не определен, подстрока включает все символы от начала до конца строки.
Описание
Метод; возвращает символы в строке от индекса, указанного в параметре start, длинной указанной в аргументе length.

substring Возвращает символы между двумя индексами, указанными в параметрах, в строку.

Пример

myString.substring(from, to);

Аргументы
from Целое число, указывающее позицию первого символа в создаваемой подстроке. Допустимые значения для from от 0 до string.length - 1.

to Целое число, которое является 1 + индекс последнего символа в создаваемой подстроке. Допустимые значения для to от 1 до string.length. Если параметр to не определен, конец подстроки есть конец строки. Если from равно to, метод возвращает пустую строку. Если from больше чем to, параметры автоматически меняются прежде, чем функция выполняется.

Описание
Метод; возвращает строку, состоящую из символов между точками, указанными параметрами from и to.

toLowerCase Преобразовывает строку в нижний регистр и возвращает результат.

Пример

myString.toLowerCase();

Аргументов нет.
Описание
Метод; возвращает копию объекта String, со всеми символами верхнего регистра, преобразованными в нижний регистр.


toUpperCase Преобразовывает строку в верхний регистр и возвращает результат.

Пример
myString.toUpperCase();
Аргументов нет.
Описание
Метод; возвращает копию объекта String, со всеми символами нижнего регистра, преобразованными в верхний регистр.
length Возвращает длину строки.

Пример

string.length

Аргументов нет.
Описание
Свойство; возвращает число символов в указанном объекте String. Индекс последнего символа для любой строки x - x.length-1.


Конструктор для объекта String
Синтаксис

new String(value);

Аргументы
value Начальное значение нового объекта String.
Описание
Конструктор; создает новый объект String.
:) :rolleyes: :)
Для работы со строками также применима и функция :
substring
Синтаксис

substring(string, index, count);

Аргументы
string Исходная строка, из которой извлекается новая строка.
index Номер первого символа, с которого начинается извлечение.
count Число символов, которые нужно включить в извлеченную строку, не включая индексный символ.
Описание
Строковая функция; извлекает часть символьной строки.
:)

Ну Вот и с строками разобрались :) :) :)