我想添加縮放功能我的應用程序。我使用Kinetic js和某處找到了此功能的解決方案,但由於某些原因,我無法應用這些解決方案。我試圖調整解決方案,但沒有成功。我有許多Kinetic.Layer,其中一些會在縮放應用時縮放。我的挑戰是:縮放將發生在鼠標位置。我找到的解決方案給我:縮放後的layer.setPosition()。正如我之前提到的,我不能使用「layer.setPosition」我會這樣做,因爲使用stage.setPosition(),但我無法準確計算新的位置x和y。任何人都可以提出任何解決方案嗎?
0
A
回答
0
當縮放設置比例時,您真正想要做什麼。
您可以設置任何圖層,節點或整個舞臺的比例。只要這樣做:
layer1.setScale(2,2); // this doubles the layer size from the original
這不會影響任何其他圖層,因此您的疊加層將保留原位。
此外,你也應該做到:
layer1.setPosition(x,y); // this will move the layer to the fixed point you want.
總之你可以這樣做:
function zoom(){
var position = stage.getUserPosition();
layer1.setScale(2,2);
layer1.setPosition(position.x - layer2.getX(), position.y - layer2.getY()); //move the layer by an offset based on the second layer. This isn't exactly correct so it's something you have to experiment with.
}
0
看看這個:http://jsfiddle.net/TFU7Z/1/也許是你在找什麼,我沒太明白這個問題。
var zoom = function(e) {
var zoomAmount = 1;
layer.setScale(layer.getScale().x+zoomAmount)
layer.draw();
}
document.addEventListener("click", zoom, false)
只需點擊任意位置即可縮放。您可以將「click」事件監聽器附加到您想要的任何舞臺/文檔部分。
0
這些答案似乎不適用於KineticJS 5.1.0。這些不工作主要是針對規模函數的簽名更改:
stage.setScale(newscale); --> stage.setScale({x:newscale,y:newscale});
但是,下面的解決方案似乎與KineticJS 5.1.0工作:
的jsfiddle:http://jsfiddle.net/rpaul/ckwu7u86/3/
相關問題
- 1. 動力學JS圖片放大鏡
- 2. 動力學JS繪圖形狀和放大和縮小
- 3. 如何縮小在舞臺上用ActionScript
- 4. 動力學JS - 分層問題
- 5. 舞臺縮放影響AS3
- 6. 整個舞臺的捏縮放?
- 7. 如何爲Kinetic JS舞臺或圖層添加背景顏色?
- 8. Android-Adobe Air:在舞臺上放置一個圖像(和聲音)
- 9. 動力學JS - 放線的長度在它上面
- 10. 動態地將舞臺上的MovieClip實例放在舞臺上(AS3)
- 11. 動力學拖放
- 12. KineticJS在一個舞臺上拖動對象導致在另一個舞臺上移動對象
- 13. 如何在舞臺上放置動畫片段?
- 14. 動力學JS - 如何摧毀一個精靈
- 15. LibGDX - 在縮放Scene2d舞臺時如何平滑actor drawable?
- 16. KineticJS - 縮放舞臺到視口
- 17. AS3 - 縮放到舞臺的手勢
- 18. 動力學JS圖像調用setVisible
- 19. 動力學JS拖放,調整大小和旋轉圖像
- 20. 動力學JS - 兒童
- 21. 動力學js畫布
- 22. 在縮放圖層上使用觸摸
- 23. 在舞臺AS3上放置了一個動畫片段的幾個實例
- 24. 通過Actionscript在舞臺上放置一個影片剪輯
- 25. Cocos2d如何縮放sprite而不縮放圖層?或者,如何縮放和裁剪精靈/圖層?
- 26. 如何使用actionscript3放大和縮小舞臺?
- 27. 在舞臺上只有一個物體閃動動畫
- 28. Tween過渡在動力學js
- 29. 將一個圖像(平移)放在另一個圖像(平移)上時動力學中斷
- 30. 如果物品在舞臺上從舞臺上移除多個孩子
無法理解這個問題很清楚。考慮用更多的例子重寫?或只有我? – allenhwkim