![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 282
|
Всем привет,
Прошу гуру о помощи, уже третий день никак преодолеть не могу одну весчь. В общем есть несколько предметов которые можно будет помещать в любую из ячеек т.н. инвентаря (типа как в РПГ) Все перемещается прекрасно, только вот никак не могу записать условие "если ячейка занята, то предмет в нее не добавляется", чтоб нельзя было класть в одну ячейку по два и более предмета. Вот код... Первый кадр: //Обозначаю что ячейки 1,2,3,4,5,6 - пустые Empty1="0"; Empty2="0"; Empty3="0"; Empty4="0"; Empty5="0"; Empty6="0"; На нем находятся Предметы (у меня портфели) - 6 мувиков с линками Portfel1, Portfel2...Portfel6 для перетаскивания. На каждый мувик повешен код on (press) { //Переход к функции для начала перетаскивания toStart(Portfel1); } on (release) { //Переход к функции для окончания перетаскивания toStop(Portfel1); } На сам кадр вешаю код: stop(); //Остановка кадра function toStart(NameP){ //Начало переноса предмета startDrag (NameP); if (box1.hitTest(_root._xmouse,_root._ymouse,false)){ Empty1="0";}; //Освобождаем ячейку 1 (если предмет в ней) if (box2.hitTest(_root._xmouse,_root._ymouse,false)){ Empty2="0";}; //Освобождаем ячейку 2 (если предмет в ней) if (box3.hitTest(_root._xmouse,_root._ymouse,false)){ Empty3="0";}; //Освобождаем ячейку 3 (если предмет в ней) if (box4.hitTest(_root._xmouse,_root._ymouse,false)){ Empty4="0";}; //Освобождаем ячейку 4 (если предмет в ней) if (box5.hitTest(_root._xmouse,_root._ymouse,false)){ Empty5="0";}; //Освобождаем ячейку 5 (если предмет в ней) if (box6.hitTest(_root._xmouse,_root._ymouse,false)){ Empty6="0";}; //Освобождаем ячейку 6 (если предмет в ней) } function toStop(NamePortfel){ //При отпускании предмета if (box1.hitTest(_root._xmouse,_root._ymouse,false)){ //Проверка находится ли портфель над ячейкой 1 (box1) NameP=NamePortfel; ItemInBoxX=259; ItemInBoxY=180; //Координаты предмета в ячейке //Проверяем пустая ли ячейка 1 и если пустая то переходим к функции SelectBox if (Empty1="0"){ Empty1="1"; SelectBox(NameP,ItemInBoxX,ItemInBoxY,"box1",Empty1)} //если ячейка не пустая то переходим к функции GoItemToStart else if (Empty1="1"){ GoItemToStart(NameP,"box1")} //вывод данных для отладки при Empty=1 ячейка заполнена при Empty=0 - пуста infoBox=" box1:"+Empty1+" box2:"+Empty2+" box3:"+Empty3; trace (infoBox); infoBox2=" box4:"+Empty4+" box5:"+Empty5+" box6:"+Empty6; trace (infoBox2); }; if (box2.hitTest(_root._xmouse,_root._ymouse,false)){ NameP=NamePortfel; ItemInBoxX=332; ItemInBoxY=180; if (Empty2="0"){ Empty2="1"; SelectBox(NameP,ItemInBoxX,ItemInBoxY,"box2",Empty2)} else if (Empty2="1"){ GoItemToStart(NameP,"box2")} infoBox=" box1:"+Empty1+" box2:"+Empty2+" box3:"+Empty3; trace (infoBox); infoBox2=" box4:"+Empty4+" box5:"+Empty5+" box6:"+Empty6; trace (infoBox2); }; if (box3.hitTest(_root._xmouse,_root._ymouse,false)){ NameP=NamePortfel; ItemInBoxX=405; ItemInBoxY=180; if (Empty3="0"){ Empty3="1"; SelectBox(NameP,ItemInBoxX,ItemInBoxY,"box3",Empty3)} else if (Empty3="1"){ GoItemToStart(NameP,"box3")} infoBox=" box1:"+Empty1+" box2:"+Empty2+" box3:"+Empty3; trace (infoBox); infoBox2=" box4:"+Empty4+" box5:"+Empty5+" box6:"+Empty6; trace (infoBox2); }; if (box4.hitTest(_root._xmouse,_root._ymouse,false)){ NameP=NamePortfel; ItemInBoxX=259; ItemInBoxY=253,5; if (Empty4="0"){ Empty4="1"; SelectBox(NameP,ItemInBoxX,ItemInBoxY,"box4",Empty4)} else if (Empty4="1"){ GoItemToStart(NameP,"box4")} infoBox=" box1:"+Empty1+" box2:"+Empty2+" box3:"+Empty3; trace (infoBox); infoBox2=" box4:"+Empty4+" box5:"+Empty5+" box6:"+Empty6; trace (infoBox2); }; if (box5.hitTest(_root._xmouse,_root._ymouse,false)){ NameP=NamePortfel; ItemInBoxX=332; ItemInBoxY=253,5; if (Empty5="0"){ Empty5="1"; SelectBox(NameP,ItemInBoxX,ItemInBoxY,"box5",Empty5)} else if (Empty5="1"){ GoItemToStart(NameP,"box5")} infoBox=" box1:"+Empty1+" box2:"+Empty2+" box3:"+Empty3; trace (infoBox); infoBox2=" box4:"+Empty4+" box5:"+Empty5+" box6:"+Empty6; trace (infoBox2); }; if (box6.hitTest(_root._xmouse,_root._ymouse,false)){ NameP=NamePortfel; ItemInBoxX=405; ItemInBoxY=253,5; if (Empty6="0"){ Empty6="1"; SelectBox(NameP,ItemInBoxX,ItemInBoxY,"box6",Empty6)} else if (Empty6="1"){ GoItemToStart(NameP,"box6")} infoBox=" box1:"+Empty1+" box2:"+Empty2+" box3:"+Empty3; trace (infoBox); infoBox2=" box4:"+Empty4+" box5:"+Empty5+" box6:"+Empty6; trace (infoBox2); }; }; function SelectBox (Portfel,ItemXBox,ItemYBox,Name_Box,EmptyBox){ //Перенос портфеля в нужную ячейку Portfel._x=ItemXBox; Portfel._y=ItemYBox; //info="координаты: x "+ItemXBox+ " y "+ItemYBox+" Портфель: "+NameP; info="Портфель добавлен в ячейку "+Name_Box; trace (info); stopDrag (); } function GoItemToStart(NamePortfel,NameBox){ //Если ячейка занята то переносим портфель в координаты 0,0 ItemX=0; ItemY=0; infoempty="Ячейка "+NameBox+" занятa"; trace (infoempty); NamePortfel._x=ItemX; NamePortfel._y=ItemY; //stopDrag (); } Прошу помощи ибо я сам практически спекся ![]() (Желательно на AS 2.0 ибо я только еще учусь) вот ссылка на исходник: itemmm.rar |
![]() |
Часовой пояс GMT +4, время: 15:25. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| dragDrop , hittest , перетаскивания |
| Опции темы | |
| Опции просмотра | |
|
|