Здравствуйте. Уважаемые, Специалисты,Пожалуйста подскажите... Ведется работа над меню из 8-ми AlphaBTN размещенных горизонтально но в окне проекта должно отображаться только 5 кнопок. Изменение положений кнопок осуществляется клавишами ВЛЕВО ВПРАВО. Первым был сделан скрипт на клавишу ВЛЕВО: все работает исключительно (протаскивает все 8 кнопок и начинает по кругу). Но когда прикрутил скрипт на кл. ВПРАВО началась ахинея.
Эсли у Вас будет время и желание помогите пожалуйста синхронизировать скрипты на клавишах (оставив за эталонный скрипт по кл. ВЛЕВО ).
Доп.инф. : Кнопки разного размера и по этому для эстетического вида их приходиться ставить в разные координаты !
В прикреп.файле описаное меню.
Направьте на верную тропу. Спасибо.
Добавлено (20 Январь 2012, 03:26) --------------------------------------------- Файл проекта menu.rar http://files.mail.ru/GUX5DL
с этим нужно разбираться, но чтобы не терять время, внизу над панелью страниц, есть кнопочка страница со стрелкой Debug PAge. Вот в окне дебаггера все видно, смотрите какие значения принимают переменные при прокрутке влево вправо. Очевидно что ошибка связана с неверным присвоением координат posbtn. При движении влево они переназначаются правильно, а вправо - каша получается. У вас логическая ошибка, думайте. я тоже подумаю.
Спасибо, DEMBEL, что откликнулись. ДЕБАГГЕР действительно в помощь. (Но при нахождении нестыковки весь блок кода перемещения кнопки, необходимо поставить в др. место, чтобы обьявление posbtn не было запоздалым или раньше) Но после всего етого опять вылазит в другом месте :). Ищу, правлю, ищу правлю... Подумывал изначально запихнуть всё перемещение по одной клавише в цикл (скрипт в проекте: llllleft) а на другую клавишу поменять в скрипте "в какойто формуле" знаки плюс на минус или в таком духе, Но меня как не имеющего опыта это сразило. (пошел по пути наименьшего, как мне казалось, сопротивления)
Т.ч. продолжаю искать. Спасибо.
Добавлено (20 Январь 2012, 15:57) --------------------------------------------- DEMBEL, пожалуйста обнови код в скрипте Script-right На данный момент самый оптимальный.. Но и не без баггов.
Code
Show("Group_btn") **----------------------------------------------5 If (posbtn_5=5) Then Hide("btn_5") MoveObject("btn_5","-355,ObjectY(btn_5)") Show("btn_5") posbtn_5=100 Else If (posbtn_5=0) Then MoveObject("btn_5","116,ObjectY(btn_5)") posbtn_5=1 Else If (posbtn_5=1) Then MoveObject("btn_5","335,ObjectY(btn_5)") posbtn_5=2 posbtn_4=0 Else If (posbtn_5=2) Then MoveObject("btn_5","545,ObjectY(btn_5)") Hide("Bbtn_6") Hide("btn_5") Show("Bbtn_5") posbtn_5=3 Else If (posbtn_5=3) Then MoveObject("btn_5","849,ObjectY(btn_5)") posbtn_5=4 Else If (posbtn_5=4) Then MoveObject("btn_5","1054,ObjectY(btn_5)") posbtn_5=5 End End End End End End **-------------------------------------------4 If (posbtn_4=4) Then MoveObject("btn_4","1031,ObjectY(btn_4)") posbtn_4=5 Else If (posbtn_4=5) Then Hide("btn_4") MoveObject("btn_4","-355,ObjectY(btn_4)") Show("btn_4") posbtn_4=100 Else If (posbtn_4=0) Then MoveObject("btn_4","102,ObjectY(btn_4)") posbtn_4=1 Else If (posbtn_4=1) Then MoveObject("btn_4","312,ObjectY(btn_4)") posbtn_4=2 posbtn_3=0 Else If (posbtn_4=2) Then MoveObject("btn_4","541,ObjectY(btn_4)") Hide("Bbtn_5") Hide("btn_4") Show("Bbtn_4") posbtn_4=3 Else If (posbtn_4=3) Then MoveObject("btn_4","841,ObjectY(btn_4)") posbtn_4=4 End End End End End End **--------------------------------------------3 If (posbtn_3=3) Then MoveObject("btn_3","848,ObjectY(btn_3)") posbtn_3=4 Else If (posbtn_3=4) Then MoveObject("btn_3","1045,ObjectY(btn_3)") posbtn_3=5 Else If (posbtn_3=5) Then Hide("btn_3") MoveObject("btn_3","-355,ObjectY(btn_3)") Show("btn_3") posbtn_3=100 Else If (posbtn_3=0) Then MoveObject("btn_3","105,ObjectY(btn_3)") posbtn_3=1 Else If (posbtn_3=1) Then MoveObject("btn_3","315,ObjectY(btn_3)") posbtn_3=2 posbtn_2=0 Else If (posbtn_3=2) Then MoveObject("btn_3","521,ObjectY(btn_3)") Hide("Bbtn_4") Hide("btn_3") Show("Bbtn_3") posbtn_3=3 End End End End End End **-------------------------------------------2 If (posbtn_2=2) Then MoveObject("btn_2","546,ObjectY(btn_2)") Hide("Bbtn_3") Hide("btn_2") Show("Bbtn_2") posbtn_2=3 Else If (posbtn_2=3) Then MoveObject("btn_2","866,ObjectY(btn_2)") posbtn_2=4 Else If (posbtn_2=4) Then MoveObject("btn_2","1074,ObjectY(btn_2)") posbtn_2=5 Else If (posbtn_2=5) Then Hide("btn_2") MoveObject("btn_2","-355,ObjectY(btn_2)") Show("btn_2") posbtn_2=100 Else If (posbtn_2=0) Then MoveObject("btn_2","126,ObjectY(btn_2)") posbtn_2=1 Else If (posbtn_2=1) Then MoveObject("btn_2","332,ObjectY(btn_2)") posbtn_2=2 posbtn_1=0 End End End End End End **-----------------------------------------------------------1 If (posbtn_1=1) Then MoveObject("btn_1","292,ObjectY(btn_1)") posbtn_1=2 posbtn_8=0 Else If (posbtn_1=2) Then MoveObject("btn_1","529,ObjectY(btn_1)") Hide("Bbtn_2") Hide("btn_1") Show("Bbtn_1") posbtn_1=3 Else If (posbtn_1=3) Then MoveObject("btn_1","836,ObjectY(btn_1)") posbtn_1=4 Else If (posbtn_1=4) Then MoveObject("btn_1","1026,ObjectY(btn_1)") posbtn_1=5 Else If (posbtn_1=5) Then Hide("btn_1") MoveObject("btn_1","-355,ObjectY(btn_1)") Show("btn_1") posbtn_1=100 Else If (posbtn_1=0) Then MoveObject("btn_1","85,ObjectY(btn_1)") posbtn_1=1 End End End End End End **------------------------------------------------8 If (posbtn_8=0) Then MoveObject("btn_8","105,ObjectY(btn_8)") posbtn_8=1 Else If (posbtn_8=1) Then MoveObject("btn_8","325,ObjectY(btn_8)") posbtn_8=2 posbtn_7=0 Else If (posbtn_8=2) Then MoveObject("btn_8","534,ObjectY(btn_8)") Hide("Bbtn_1") Hide("btn_8") Show("Bbtn_8") posbtn_8=3 Else If (posbtn_8=3) Then MoveObject("btn_8","844,ObjectY(btn_8)") posbtn_8=4 Else If (posbtn_8=4) Then MoveObject("btn_8","1057,ObjectY(btn_8)") posbtn_8=5 Else If (posbtn_8=5) Then Hide("btn_8") MoveObject("btn_8","-355,ObjectY(btn_8)") Show("btn_8") posbtn_8=100 End End End End End End **------------------------------------------------7 If (posbtn_7=0) Then MoveObject("btn_7","104,ObjectY(btn_7)") posbtn_7=1 Else If (posbtn_7=1) Then MoveObject("btn_7","307,ObjectY(btn_7)") posbtn_7=2 posbtn_6=0 Else If (posbtn_7=2) Then MoveObject("btn_7","527,ObjectY(btn_7)") Hide("Bbtn_8") Hide("btn_7") Show("Bbtn_7") posbtn_7=3 Else If (posbtn_7=3) Then MoveObject("btn_7","850,ObjectY(btn_7)") posbtn_7=4 Else If (posbtn_7=4) Then MoveObject("btn_7","1040,ObjectY(btn_7)") posbtn_7=5 Else If (posbtn_7=5) Then Hide("btn_7") MoveObject("btn_7","-355,ObjectY(btn_7)") Show("btn_7") posbtn_7=100 End End End End End End **------------------------------------------------6 If (posbtn_6=0) Then MoveObject("btn_6","99,ObjectY(btn_6)") posbtn_6=1 posbtn_5=0 Else If (posbtn_6=1) Then MoveObject("btn_6","319,ObjectY(btn_6)") posbtn_6=2 Else If (posbtn_6=2) Then MoveObject("btn_6","538,ObjectY(btn_6)") Hide("Bbtn_7") Hide("btn_6") Show("Bbtn_6") posbtn_6=3 Else If (posbtn_6=3) Then MoveObject("btn_6","840,ObjectY(btn_6)") posbtn_6=4 Else If (posbtn_6=4) Then MoveObject("btn_6","1037,ObjectY(btn_6)") posbtn_6=5 Else If (posbtn_6=5) Then Hide("btn_6") MoveObject("btn_6","-355,ObjectY(btn_6)") Show("btn_6") posbtn_6=100 End End End End End End
Добавлено (20 Январь 2012, 16:02) --------------------------------------------- Я извиняюсь, что не использовал СПОЙЛЕР для столь большого скрипта (прозевал). Возможно ли исправить это ? Спасибо.
Добавлено (21 Январь 2012, 22:55) --------------------------------------------- Пришло озарение. :). Задача решена. Обязательно объявлять позиции всех кнопок (не только видимых пользователю). Позиции Кнопок которые ждут своей очереди объявляются без перемещения... А не так как раньше: объявляем видимые, остальные пытаемся както терять, прятать(то и получается, при работе скрипта по одной из клавиш все ОК, начинаем применять обе клавиши получается перехлест объявленых позиций и в рез. каша ). Вот окончательные коды для menu.rar: Script-left
Code
Show("Group_btn") **-----------------------------------1 If (posbtn_1=1) Then Hide("btn_1") MoveObject("btn_1","1284,ObjectY(btn_1)") posbtn_1=8 Show("btn_1") Else If (posbtn_1=8) Then posbtn_1=7 Else If (posbtn_1=7) Then posbtn_1=6 Else If (posbtn_1=6) Then MoveObject("btn_1","1026,ObjectY(btn_1)") posbtn_1=5 Else If (posbtn_1=5) Then MoveObject("btn_1","836,ObjectY(btn_1)") posbtn_1=4 Else If (posbtn_1=4) Then MoveObject("btn_1","529,ObjectY(btn_1)") Hide("Bbtn_8") Hide("btn_1") Show("Bbtn_1") posbtn_1=3 Else If (posbtn_1=3) Then MoveObject("btn_1","292,ObjectY(btn_1)") posbtn_1=2 Else If (posbtn_1=2) Then MoveObject("btn_1","85,ObjectY(btn_1)") posbtn_1=1 End End End End End End End End
DEMBEL, Спасибо большое. Ваш ответ на мою просьбу был пинком к пересмотрению логики всего процесса перемещения кнопок. Спасиб. Всех благ.
Сообщение отредактировал DEMBEL - Пятница, 20 Января 2012, 20:01