![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
задача: необходимо сделать скроллинг объектов, как это обычно бывает на ios.
Использую объект, составленный из 'страниц', называемый cont всё чудно и прелестно работает вот так: var shir:Number=cont.width; var vis:Number=cont.height; var offsetX,offsetY:Number; var cord:Number=0; var k, intervalID, moving:Number; if(Multitouch.supportsGestureEvents){ cont.addEventListener(MouseEvent.MOUSE_DOWN, startDraggingX); cont.addEventListener(MouseEvent.MOUSE_UP, stopDraggingX); } function startDraggingX(event:MouseEvent):void { trace(cont.x) offsetX = event.stageX-cont.x; cont.addEventListener(MouseEvent.MOUSE_MOVE, moveImageX); } function stopDraggingX(event:MouseEvent):void {k=0; cont.removeEventListener(MouseEvent.MOUSE_MOVE, moveImageX); if (cont.x>Math.round(-512)){moving=-(cont.x);} if (cont.x<Math.round(-cont.width/3+512)){moving=-(cont.width/3+cont.x);} if (cont.x<Math.round(-cont.width/3*2+512)){moving=-(cont.x+cont.width/3*2);} intervalID = setTimeout( place,1 ); } function place () { if(k<=5){ intervalID = setTimeout( place, 1); k=k+0.5; cont.x+=moving/11+(cont.width/shir-1)*9; } cord=cont.x; } function moveImageX(event:MouseEvent):void { if (cont.x<=0+(cont.width/shir-1)*430) { if (cont.x>=Math.round(-cont.width/3*2)-(cont.width/shir-1)*430) {cont.x = (event.stageX - offsetX); if (cont.x>Math.round(-512)){fill.x=50;} if (cont.x<Math.round(-cont.width/3+512)){if (cont.x>Math.round(-cont.width/3-512)){fill.x=80;}} if (cont.x<Math.round(-cont.width/3*2+512)){fill.x=110;} if (cont.x>0+(cont.width/shir-1)){cont.x=0+(cont.width/shir-1)*430} if (cont.x<Math.round(-cont.width/3*2)-(cont.width/shir-1)*430){cont.x=Math.round(-cont.width/3*2)-(cont.width/shir-1)*430} event.updateAfterEvent(); } } } Возникает проблема, когда я добавляю зум на объект. надо, чтобы как и в IOS: при достижении условного края "страницы", новая страница занимала координату 0 и восстанавливала свой размер. вот с этим у меня проблемы. Куда только и чего только не вписывала - результаты плачевные. Если вдруг найдётся тут кто-то сердобольный, кто поможет мне решить проблему - исходник в приложении А вдруг у кого готовый плагин есть - поделитесь, ну пожалуйста? сил уже нет... |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
пересохраните исходник в cs5
вообще это делается не так, делаете 2 переменных - leftDragLimit,rightDragLimit, потом при каждом перемещении проверяете if(cont.x > rightDragLimit){ cont.x = rightDragLimit; } if(cont.x < leftDragLimit){ cont.x = leftDragLimit; } P.S. у вас учень много магических чисел и повторяющихся операций, такой код будет проблематичен в плане редактирования. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|