2
滾動組中的觸摸功能
我正在嘗試將觸摸事件偵聽器添加到放置在滾動組中的對象。滾動部分工作正常,但觸摸功能的「結束」部分從未註冊。觸摸功能在滾動組(電暈)中使用時如何正確觸發?
我已經看到其他人有這個問題,但他們的解決方案從來沒有解決我的問題 - 我沒有看到任何使用表。在我的代碼中,它實現了修復其他人問題的代碼。
我試過以不同的順序重新組織所有東西,但是這似乎沒有改變任何東西。
local widget = require("widget")
local scrollView = widget.newScrollView
{
left = 100,
top = 200,
width = 900,
height = 500,
maskFile = "white.png"
scrollWidth = 2000,
scrollHeight = 400,
hideBackground = true,
friction = 0.9 --0 is slowest
}
scrollView.x = 0
scrollView.y = H/2 - scrollView.height/2
上面的滾動屏幕正常工作......
local page = {}
page[1] = {exists = true}
page[2] = {exists = true}
page[3] = {exists = true}
page[4] = {exists = true}
page[5] = {exists = true}
page[6] = {exists = true}
page[7] = {exists = true}
page[8] = {exists = true}
page[9] = {exists = false}
page[10] = {exists = false}
在上面,我創建了一個表。
for i = 1,#page do
if page[i].exists == true then
page[i].img = display.newImage("images/"..myScene..i..".png") --makes the different page link images
else
page[i].img = display.newImage("images/coming.png")
end
page[i].img:setReferencePoint(display.CenterReferencePoint)
page[i].img.x = (W+(i*2*W))/9 - 2*W/8 + 50
page[i].img.y = scrollView.height/4+20
if i > #page/2 then
page[i].img.x = (W+((i-#page/2)*2*W))/9 - 2*W/8 + 50
page[i].img.y = page[i].img.y + scrollView.height/2-20
end
local img = page[i].img
我將其重命名爲局部變量,因爲觸摸功能不喜歡[]
scrollView:insert(img)
group:insert(scrollView)
function img:touch(e)
if e.phase == "began" then
display.getCurrentStage():setFocus(img)
img.isFocus = true
elseif e.phase == "moved" then
local dx = math.abs(e.x - e.xStart)
local dy = math.abs(e.y - e.yStart)
if dx > 10 or dy > 10 then
scrollView:takeFocus(event)
end
以上的部分是什麼理應修復此問題的其他.. 它檢查x或y Y型轉變超過10把焦點集中到我的滾動型
elseif e.phase == "ended" then --it never gets to this part...
if page[i].exists == true then
storyboard.gotoScene(myScene..i)
else
audio.play(soon)
end
end
end
img:addEventListener("touch")
end
現在給了我下面的錯誤,當我選擇圖片:/應用/ CoronaSDK /科羅納終端:9號線:54097段錯誤:11「$ PATH /科羅納Simulator.app/Contents/MacOS/Corona模擬器「$ * 註銷 [處理完成] ---然後它崩潰... – 2013-05-03 00:26:24
我收到了更多的代碼。崩潰似乎是因爲widget = require(「widget」)本地進入場景,而不是本地文件或整個場景。將它移出輸入場景解決了崩潰 – 2013-05-03 07:48:48
非常感謝! – 2013-05-03 14:10:46