Events 离开图像区域事件

Events 离开图像区域事件,events,coronasdk,Events,Coronasdk,如何使用事件来确定手指何时离开图像区域?例如,当您解锁iphone,但在触摸并稍微移动手指后,将手指移离滑块太远时,手指仍在触摸屏幕,但不是滑块,它会跳回起始位置。当我在if语句中使用event.phase==end时,图像不会返回到指定的位置,除非我在手指仍停留在图像上时放开屏幕。基本上,当手指离开图像区域时,如何将图像返回到某个点?您需要指定触摸事件的像素范围。如果触摸事件超出此像素范围,则重置图片 因此,在您的触摸事件中,在触摸范围 x=320->480和y=80->280 local f

如何使用事件来确定手指何时离开图像区域?例如,当您解锁iphone,但在触摸并稍微移动手指后,将手指移离滑块太远时,手指仍在触摸屏幕,但不是滑块,它会跳回起始位置。当我在if语句中使用event.phase==end时,图像不会返回到指定的位置,除非我在手指仍停留在图像上时放开屏幕。基本上,当手指离开图像区域时,如何将图像返回到某个点?

您需要指定触摸事件的像素范围。如果触摸事件超出此像素范围,则重置图片

因此,在您的触摸事件中,在触摸范围 x=320->480和y=80->280

local function onTouch(event)    
 local t = event.target    
 if (t.x < 320 || t.x > 480) || (t.y > 280 || t.y < 80) then 
      //reset image
end
//你也可以试试这个

local function onTouch(event)    
 local t = event.target
 local phase = event.phase
 if phase == "moved" then
  t.x = event.x - t.x0
  t.y = event.y = t.y0
  if (t.x < 320 || t.x > 480) || (t.y > 280 || t.y < 80) then
     //reset image
  end
 end
 return true
end

objectName:addEventListener("touch", onTouch)

您需要指定触摸事件的像素范围。如果触摸事件超出此像素范围,则重置图片

因此,在您的触摸事件中,在触摸范围 x=320->480和y=80->280

local function onTouch(event)    
 local t = event.target    
 if (t.x < 320 || t.x > 480) || (t.y > 280 || t.y < 80) then 
      //reset image
end
//你也可以试试这个

local function onTouch(event)    
 local t = event.target
 local phase = event.phase
 if phase == "moved" then
  t.x = event.x - t.x0
  t.y = event.y = t.y0
  if (t.x < 320 || t.x > 480) || (t.y > 280 || t.y < 80) then
     //reset image
  end
 end
 return true
end

objectName:addEventListener("touch", onTouch)

您需要将图像设置为焦距,这样即使在他们的手指离开对象后,也会在对象上触发触摸事件

这是我使用的一个示例代码:

local function switchScreenListener(event)      
    display.getCurrentStage():setFocus( event.target )

    if event.phase == "moved" then      
        local xBoundry = event.target.x + event.target.width/2 -- remember the reference point!
        print ("X Boundry: " .. xBoundry .. ", Current X: " .. event.x);
        if event.x > xBoundry then
            print ("We swiped out.")
            display.getCurrentStage():setFocus( nil )
        end
    elseif event.phase == "ended" then
        display.getCurrentStage():setFocus( nil )
        print ("Start: (" .. event.xStart .. ", " .. event.yStart .. "), End: (" .. event.x .. ", " .. event.y .. ")");

        local options = {
            effect = "slideRight",
            params = {
                isMuted = isMuted
            }
        }
        storyboard.gotoScene( "view_alphabet", options )
    end
end

您需要将图像设置为焦距,这样即使在他们的手指离开对象后,也会在对象上触发触摸事件

这是我使用的一个示例代码:

local function switchScreenListener(event)      
    display.getCurrentStage():setFocus( event.target )

    if event.phase == "moved" then      
        local xBoundry = event.target.x + event.target.width/2 -- remember the reference point!
        print ("X Boundry: " .. xBoundry .. ", Current X: " .. event.x);
        if event.x > xBoundry then
            print ("We swiped out.")
            display.getCurrentStage():setFocus( nil )
        end
    elseif event.phase == "ended" then
        display.getCurrentStage():setFocus( nil )
        print ("Start: (" .. event.xStart .. ", " .. event.yStart .. "), End: (" .. event.x .. ", " .. event.y .. ")");

        local options = {
            effect = "slideRight",
            params = {
                isMuted = isMuted
            }
        }
        storyboard.gotoScene( "view_alphabet", options )
    end
end

发布你的代码,我会看一看。您可能还会发现这个页面对developer.coronalabs.com/content/events-and-listener很有帮助。请将您的代码展示给我,我会看一看。您还可能会发现此页面对developer.coronalabs.com/content/events-and-listener很有帮助。此页面不起作用,因为当目标超出范围时触摸事件不会触发。此页面不起作用,因为当目标超出范围时触摸事件不会触发。