我想在滚动组时顺利进行。组中有三个图像。我想制作幻灯片。
当我滚动组并释放它时。我希望它顺利。
这是我的代码:
local sScrolling
local sInitialMouseX, sInitialMouseY
local sInitialHScroll, sInitialVScroll
on mouseDown
## Allow the group to scroll
put true into sScrolling
## Record the initial touch position
put item 1 of the mouseLoc into sInitialMouseX
put item 2 of the mouseLoc into sInitialMouseY
## Record the initial hScroll and vScroll
put the vScroll of me into sInitialVScroll
put the hScroll of me into sInitialHScroll
end mouseDown
on mouseMove mouseX, mouseY
## If the screen is being touched then
if sScrolling then
## Calculate how far the touch has moved since it started
put mouseY - sInitialMouseY into tVChange
put mouseX- sInitialMouseX into tHChange
## Reset the hScroll and vScroll to follow the touch
lock screen
set the vScroll of me to sInitialVScroll - tVChange
set the hScroll of me to sInitialHScroll - tHChange
put the hScroll of me into lastPoint
unlock screen
end if
end mouseMove
on mouseRelease
mouseUp
end mouseRelease
on mouseUp
put false into sScrolling
end mouseUp
答案 0 :(得分:2)
如果不详细查看您的代码,我无法评论算法来执行实际移动。我建议使用acceleRendering功能,虽然它指示LiveCode缓存组的内容,因此渲染速度更快。
on preOpenStack
set the acceleratedRendering to true
end preOpenStack
以上代码打开了该功能。 LiveCode中的加速渲染功能使引擎在缓存的小块中呈现堆栈。 GPU(图形芯片)负责在每次操作系统刷新屏幕时将所有这些图块合成在一起(例如,在iOS上大约每秒60帧)。如果磁贴没有改变,GPU只是显示它......如果某些东西发生了变化,即你移动了一个控件,那么覆盖该控件的磁贴就会重新绘制。
要正确帮助LiveCode缓存,您需要向其提供有关卡上控件及其代表内容的一些信息。您可以通过设置layerMode来完成此操作。它可以是三个选项之一:
所以在你的情况下我也会做以下事情:
set the layerMode of group "scrollingGroup" to "scrolling"
尝试一下,它应该加快渲染速度,使您更容易在图像之间编写一个漂亮的平滑过渡。