PDA

Просмотр полной версии : Двумерные массивы и не только...:(


aol_Assassin)))
04.02.2004, 20:38
Всем Привет!
Я полный ламер в программировании на флеше(сразу признаюсь)=)
Вот может кто поможет:
- 1. Как объявить двумерный массив и его использовать? Типа
a[10][5] или там a[10,5] - Не работает. А как правильно?
- 2. Что такое root?
- 3. Может кто знает как можно сохранить картинку не квадратом ,а именно по её форме ,т.е вырезаю по пикселям картинку в Корел Фото-паинте(она ,естественно не квадратная) и хочу во флеше заставить её двигаться по меняющемуся фону(т.е я хочу , чтоб у картинки не было Бэкграунда).Но как?Только я её сохраняю в Кореле или копирую , тут же какой - то гад(комп),ставит ей белый(или любой другой) фон...ААААААхххх...Но как избавится от этого??? заранее спасибо....

kompadre
04.02.2004, 21:48
1. точно также
2. корень. _root это самый "главный" обьект мувиклипа. Он уже существует в пустом документе (это он и есть). Обычно его берут для глобализации чего либо.
3. Не понял вопроса

opex
04.02.2004, 22:10
могу добавить мосив обявляют ну примерно так
array = new Array();
array = [[1, 2, 3, 4, 5, 6, 7, 8, 9], ["a", "b", "c", "d", "f", "g", "k", "l", "m"]];
trace(array[0][0]);
trace(array[1][0]);

Ламер_Флаша
04.02.2004, 23:54
2. _root - это как корень диска "С:\" - в _root лежит всё остальное.
3. Сохрани файл в формате GIF или PNG. Только эти два формата пиксельной (растровой) графики поддерживают прозрачный фон.

Пожалуйста.

aol_Assassin)))
05.02.2004, 19:31
Cпасибо всем,кто ответил! Однако ,я не совсем понял насчёт массивов :
array = new Array(); // объявляем,так?
array = [[1, 2, 3, 4, 5, 6, 7, 8, 9],["a", "b", "c", "d", "f", "g", "k", "l", "m"]]; - это значения,да? НО , неужели не нужно указывать размеры(кол-во строк и столбцов)? Я написал :
a = new Array();
a[1,1]=1;
a[0,0]=0
a[1,0]=10
trace(a[0][0]);
trace(a[1][0]);

Вроде компилятор пропустил(верно то бишь), но вот проблема: ентот(этот) trace - ничего не выводит,а должен вроде в окошке...... ну да ладно, дубль два - делаю этот dynamic text ,var a[1,1] и ... НИЧЕГО..... (совсем:( )
Где же ошибка?( знаю - в ДНК ,но всё же)

насколько я понял _root не сильно то и нужен...да?
Спасибо всем!

Штрек
05.02.2004, 21:57
Оригинал написал(а) aol_Assassin)))
Cпасибо всем,кто ответил! Однако ,я не совсем понял насчёт массивов :
array = new Array(); // объявляем,так?
array = [[1, 2, 3, 4, 5, 6, 7, 8, 9],["a", "b", "c", "d", "f", "g", "k", "l", "m"]]; - это значения,да? НО , неужели не нужно указывать размеры(кол-во строк и столбцов)? Я написал :
a = new Array();
a[1,1]=1;
a[0,0]=0
a[1,0]=10
trace(a[0][0]);
trace(a[1][0]);


Читаем Хэлп

new Array()
new Array(length)
new Array(element0, element1, element2,...elementN)
Параметры


length Целое число, равное количеству элементов в массиве. Если элементы не смежные, аргумент length равен индексу последнего элемента плюс 1.

element0...elementN Список двух или более произвольно выбранных значений. Это могут быть числа, имена или ДРУГИЕ ЭЛЕМЕНТЫ!!!!!.
Т.е.вложенность массивов может быть такой, какой ты захочешь.
Вот тебе трёхмерный массив.
a = new Array();
a = [[1, ["a", "b", "c"]], [0, 0], [1, 0]];
trace(a[0][1][0]);// что бы достать "a"!!!!
// т.е. обращаться к элементам массива надо аккуратно,
ВДУМЧИВО. :p

Оригинал написал(а) aol_Assassin)))
насколько я понял _root не сильно то и нужен...да?
Спасибо всем!
Иногда без него просто не обойтись.
Однако, чтоб не привязываться к чему то глобальному,
лучше использовать _parent и this.

aol_Assassin)))
06.02.2004, 20:14
Спасибо тебе Штрек!
Теперь вроде всё ясно, вот только почему написав в dynamic text ,var a[1,1] или a[1][1] оно ничего не выводит? странно...
А...насчёт trace(expression): оно вроде должно в отдельном окне чё-то вывести,да? Но, хм...., а где это окно - то? ужас...

aol_Assassin)))
06.02.2004, 20:18
А! Ув. Ламер_Флаша!
Попробовал сохранить в формате GIF ,но ничего не вышло... - картинка осталась квадратной!!!! Ну уже не знаю что и делать? А во Флеше можно вырезать картинку?

Штрек
06.02.2004, 22:03
Оригинал написал(а) aol_Assassin)))
А! Ув. Ламер_Флаша!
Попробовал сохранить в формате GIF ,но ничего не вышло... - картинка осталась квадратной!!!! Ну уже не знаю что и делать? А во Флеше можно вырезать картинку?
PNG 24. ;)

Штрек
06.02.2004, 22:07
Оригинал написал(а) aol_Assassin)))
Спасибо тебе Штрек!
Теперь вроде всё ясно, вот только почему написав в dynamic text ,var a[1,1] или a[1][1] оно ничего не выводит? странно...

Чего то ты гоняешь.
/гл.исх./ ;)

fmsmith
07.02.2004, 15:23
Двумерный массив устроен так, что каждый элемент его "первой" размерности сам является массивом, что и было показано выше. Если заранее известны размерности, то можно сделать так

len=5;
aMas=new Array(len);
for (var i=0; i<len; i++){
aMas[i]=new Array(len);
//забьём в массив чего-то, чтобы потом прочитать
for (var j=0; j<len; j++){
aMas[i][j]=i add j;
}
}

//на практике не нужно, но убедиться хочется
for (i=0; i<len; i++){
for (j=0; j<len; j++){
trace(aMas[i][j]);
}
}

fmsmith
07.02.2004, 15:29
Сорри, форматирование потерялось.