![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2008
Сообщений: 39
|
Добрый день, я бы хотел разобраться с такой задачей, как создание массива элементами которого будут переменные и как работать с такими переменными?
Я хочу создать n количество клипов на сцене которые имена объектов которых находились бы в массиве и я мог к ним обращаться через массив. К сожалению моя проба потерпела фиаско: Последний раз редактировалось iNils; 21.10.2012 в 15:06. |
|
|||||
var n:int = 10; // так как индекс массива - это целое число, то и указываем тип целого, лучше даже uint прописать, для неотрицательных чисел var items:Array = []; // в ас3 динамические массивы, размерность задавать не нужно for (var i:int = 0; i < n; i++) { items[i] = new Mc(); // создаем на каждом новом индексе, новый мувиклип items[i].x = items[i].width * i + items[i].width /2; // расставляем как надо items[i].y = items[i].height / 2; addChild(items[i]); // добавляем в текущий контейнер только что созданный мувиклип } trace(items[2], "это третий элемент массива"); |
|
|||||
|
Регистрация: Apr 2012
Сообщений: 70
|
Вы объявляете массив items, а обращаетесь к массиву item!
упс опередили =) |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 39
|
Спасибо большое!
Теперь возникла другая проблема. Я создал матрицу объектов на сцене (10 на 10) путем создания вложенных массивов Array[i][j][0] в котором последний массив содержит объект (0 - первый элемент) и номер его создания (1 - 2 элемент). Но я не могу понять, как мне отследить действия мыши над определенным элементом массива (объектом) и удалить именно его. Я добавил слушатель событий в каждый объект, но как отследить над каким именно произошло действие я не могу( //создаю массив объектов var n:int = 10 // создаем длину массива (необязательно) var items:Array = new Array(n-1); //массив вещей var c:int = 0 for ( var i:int = 0; i <= n-1; i++ ) { items[i] = new Array(n-1) for ( var j:int = 0; j <= n-1; j++ ) { var item:Mc = new Mc; c = c+1 addChild(item); item.x = item.width*i + item.width/2 ; item.y = item.height*j + item.height/2; items[i][j]=new Array(item, c); } } trace(items[1][1][1]); trace(items.length); trace(items[1].length); // создание слушателя событий for ( i = 0; i < items.length; i++ ) { for ( j = 0; j < items[i].length; j++ ) { items[i][j][0].addEventListener(MouseEvent.CLICK, SelectGex); items[i][j][0].addEventListener(MouseEvent.MOUSE_OVER, SelectGex); } } // функция активизирующаяся при наведении или клике объекта function SelectGex(e:MouseEvent):void { trace ("Нажато или наведено на Гекс"); //trace(items[i][j][1]); trace(e); } |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
|
|
|||||
|
Просто добавлю, Shaak в Вашем случае, вот так:
писать не нужно. Это просто лишняя заморочка. Вот это идентичное условие, но несколько проще: |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|