![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Подскажите пожалуйста как можно включить в цикл создание Boolean переменных в размере количества длинны массива?
Вот условие: for (var q:int=0; q<enAll.length; q++) { var cross:Boolean = new Boolean(cross[q]); if((this.y<enAll[q].y)&&(!cross[q])) { parent.swapChildren(enAll[q], this); cross[q]=true; } if((this.y>enAll[q].y) { cross[q]=false; } } хоть тут можно обойтись и addChild мне очень пригодится в будущем этот прием... так сказать взять под контроль поток фреймов, иначе не представляю что может постоянно следить за выполнением условия и выполнять при совпадении действие 1 раз.
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. |
|
|||||
|
[+1 22.04.13]
[+1 06.03.13] Регистрация: Apr 2012
Сообщений: 239
|
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Здесь вообще-то конфликт имен – два объекта с именем cross: локальный Boolean и массив.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Помучился чуток и вот такое получилось
for (var q:int=0; q<enAll.length; q++) { var boo:Boolean=false; cross.push(boo); cross.length=enAll.length; if((this.y<enAll[q].y)&&(cross[q]==false)) { parent.swapChildren(this, enAll[q]); cross[q]=true; } if(this.y>enAll[q].y) { cross[q]=false; } } Нужно условие в котором будит идти проверка каждого элемента массива со своими же элементами отдельно (сортировка), только по условию Пробовал 2 цикла, все равно не получается... хотя может просто не правильно делал)
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А Вас не смущает, что после выполнения первого условия выполнится и второе?
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
и правда... спасибо за замечание)
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Как Вы собираетесь использовать в дальнейшем этот массив с булями cross?
Для чего он нужен? Просто пересортировать массив по свойству "у" не достаточно?
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Использовать буду так: предположим есть множество объектов движущихся по сцене и мне нужно будит отследить столкновения этих "разных" объектов с другим объектом(персонажем), при столкновении будит запускаться некое действие например "разный" урон по персонажу(в зависимости от объекта). Отследить кроме как в Enter Frame я никак не смогу, а нанесение урона должно произойти 1 раз пока объект не покинет область персонажа. Вот тут и выручит условие с булями... до этого я пользовался отдельно созданными переменными(на каждую разновидность объекта), но если разновидностей объектов будит много, мне проще написать цикл создания этих переменных кол-во которых будит равняться длине массива содержащего все виды объектов наносящих урон. Не исключено что я сейчас 5ти колесный велосипед изобрел, но на что не пойдешь ради достижения цели %)
По поводу пересортировки по Y, действительно нужно это сделать и по возрастанию значения Y добавлять в контейнер. Добавлено через 20 часов 46 минут Вот та волшебная функция: public function sortChildrenByY(container:MovieClip):void { var i:int; i = container.numChildren; while(i--) { enAll[i] = container.getChildAt(i); } enAll.sortOn("y", Array.NUMERIC); i = container.numChildren; while(i--) { if (enAll[i] != container.getChildAt(i)) { container.setChildIndex(enAll[i], i); } } }
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. Последний раз редактировалось Tetraeon; 06.07.2012 в 20:25. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|