2013-04-28 3 views
0

Я использую Kinetic JS на iPhone и Android.Kinetic JS Multi-Touch Scale Stage

Я скопировал пример из

http://www.html5canvastutorials.com/labs/html5-canvas-multi-touch-scale-stage-with-kineticjs/

, чтобы включить масштабирование этап, а потом я понял, что, когда я изменении масштаба трансфокации не происходит на том месте, где я ущипнуть мой зуммирования, а это происходит на верхний угол.

Мне также необходимо ограничить скорость масштабирования с максимальным/минимальным уровнем масштабирования, я считаю, что это очень помогло .. спасибо!

Код:

http://pastebin.com/cAgk2UiB

Modded Pinch слой:

http://pastebin.com/mG1b75KK

+0

setScale только изменяет размеры объектов/слоев, вы должны переводить позиции самостоятельно в зависимости от вычисленных координат, где вы касаетесь/зажимаете. – SoluableNonagon

+0

Ни одна из ссылок не имеет рабочего решения. Пастбины также истекли. –

ответ

1

Это улажено другим разработчиком, который сделал плагин. Попробуйте это и посмотреть, если он работает для вас

https://github.com/eduplus/pinchlayer

+0

Yup Я видел это! Я попытался, но моя страница зашла в тупик, подумайте о некоторой ошибке JS, проверит и попробует снова через некоторое время. Спасибо m8! :)! – Rejinderi

+1

Пинч-слой не будет работать на последнем KineticJS, и мои коды не будут хорошо работать со старым KineticJS, на котором установлен PinchLayer, исправлены его и теперь хорошо работают :) спасибо, теперь проблема в том, что у меня есть 100+ круги и масштабирование на iPhone 4 и Android очень медленны. любая идея, как я могу улучшить ее? – Rejinderi

+0

не очень, перерисовка на мобильных устройствах стоит дорого. Дело в том, чтобы как-то определить область для перерисовки, а не весь слой. – SoluableNonagon

0

Вот обновленная версия учебника: http://jsfiddle.net/9eaBq/

Просто замените строки из 69 до 71 по этому коду:

var scale = { 
    x: stage.scale().x * dist/lastDist, 
    y: stage.scale().y * dist/lastDist 
}; 
stage.scale(scale); 

Работа на iPad (Chrome & Safari) под iOS7.