Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.12.2013, 15:45
alex_195 вне форума Посмотреть профиль Отправить личное сообщение для alex_195 Найти все сообщения от alex_195
  № 1  
Ответить с цитированием
alex_195

Регистрация: Apr 2009
Сообщений: 104
По умолчанию перестановка элементов массива в зависимости от условий

Есть такие задания - перестановки. Встречаются они в специальных программах-тестерах и т. д. Посколько я делаю свои тесты во flash, то решил реализовать и такое задание. Вот листинг того, что пока получилось:
Код AS1/AS2:
//////////////////////////////////Команды
var str0:String = 'Program upr_1;';
var str1:String = 'uses CRT;';
var str2:String = 'var a:integer;';
var str3:String = 'begin';
var str4:String = 'end.';
///////////////////////////массивы клипов
var arrMesto:Array = [];
//клипы-подложки
var arrKomand:Array = [];
//клипы с командами
var arrKomnew:Array = [];
//рандомно отсортированные клипы с командами
////////////////////организую рандомную расстановку индексов 
var a:Array = [0, 1, 2, 3, 4];
var l:Number = a.length;
var t:Number = l;
while (t--) {
	var r:Number = random(l);
	a[r] += a[t]-(a[t]=a[r]);
}
trace(a);
var pusto:MovieClip;
////////////////заполение массива с клипами-подлжками и расстановка их на сцене
for (var i = 0; i<5; i++) {
	_root.attachMovie('mesto', 'mesto'+i, i+10, {_x:50, _y:100+40*i});
	arrMesto.push(_root['mesto'+i]);
}
trace(arrMesto);
////////////////заполение массива с клипами с командами и расстановка их на сцене
for (var d = 0; d<5; d++) {
	var komand:MovieClip = _root.attachMovie('komanda', 'komanda'+d, d+30);
	arrKomand.push(_root['komanda'+d]);
	komand._x = 50;
	komand._y = 100+a[d]*40;
	komand.pole_txt.text = _root['str'+d];
}
trace(arrKomand);
//////////////////////////перетасока клипов с командами
for (var s = 0; s<5; s++) {
	arrKomnew.push(arrKomand[a[s]]);
}
trace(arrKomnew);
///////////////// перетаскивание клипов-команд в заданных пределах
for (var m = 0; m<5; m++) {
	arrKomnew[m].onPress = function() {
		trace(this);
		this.startDrag(false, 50, 100, 50, 100+40*m-40);
	};
	arrKomnew[m].onRelease = arrKomnew[m].onReleaseOutside=function () {
		this.stopDrag();
	};
}
Из библиотеки атачатся два клипа 'mesto'(прямоугольник в цвете) и 'komanda'(с текстовым полем), организовываются в массивы и расставляются на сцене. Все 'komanda' перетаскиваются.
Логика дальнейших действий такова: если при перетаскивании взятого 'komanda' с 'mesto' и 'komanda'(не перетаскиваемого) есть пересечение, то 'komanda'(не перетаскиваемого) переходит на освободившееся 'mesto'. Логика то понятна, а вот с реализацией программно запоролся. Прошу помочь в этом. Приложен мувик для визуализации.
лОГИКА \\\\
Вложения
Тип файла: swf zadanie1.swf (99.0 Кб, 76 просмотров)

Старый 24.12.2013, 01:06
alex_195 вне форума Посмотреть профиль Отправить личное сообщение для alex_195 Найти все сообщения от alex_195
  № 2  
Ответить с цитированием
alex_195

Регистрация: Apr 2009
Сообщений: 104
Ладно. Понимаю, что разбираться в чужом коде нет желания. "Просканировал" свои закрома и нашел нужное. См. в приложении. Если есть интерес, то выложу исходники.
Вложения
Тип файла: swf main_verticalno.swf (10.2 Кб, 46 просмотров)

Старый 14.01.2014, 21:17
v1v2v3 вне форума Посмотреть профиль Отправить личное сообщение для v1v2v3 Найти все сообщения от v1v2v3
  № 3  
Ответить с цитированием
v1v2v3

Регистрация: Dec 2013
Сообщений: 19
Интерес к исходнику есть

Старый 14.01.2014, 21:50
alex_195 вне форума Посмотреть профиль Отправить личное сообщение для alex_195 Найти все сообщения от alex_195
  № 4  
Ответить с цитированием
alex_195

Регистрация: Apr 2009
Сообщений: 104
В архиве один исходник без применения эффекта скольжения и несколько вариантов , использующих caurina.
Вложения
Тип файла: rar Переставь команды.rar (203.1 Кб, 10 просмотров)

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:12.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.