从scrollview中拖出对象时,对象不会显示。

伙计,我需要在 Corona SDK 中使用 ScrollView 的帮助,我是新手..

我在尝试制作一个简单的拼图游戏:

以下是拼图代码:

local widget = require("widget")

_W = display.contentWidth -- 获取设备屏幕宽度
_H = display.contentHeight -- 获取设备屏幕高度
imgPiece = 3
imgPieces = {}
imgPieceStartingY = { 80,230,380 }
imgPieceWidth, imgPieceHeight = 120, 120

-- 在此获取一些背景图片
bg = display.newImageRect("bg.png", _W, _H)
bg.x = _W/2
bg.y = _H/2

-- 创建一些 ScrollView
scrollView = widget.newScrollView{
    top=100,
    left = _W/2,
    height=_H/2,
    width = 160,
    hideBackground = true,
    scrollWidth = 50 ,
    scrollHeight = 1000 }

-- 将图像放置在 ScrollView 中
for i = 1, imgPiece do
   imgPieces[i] = display.newImageRect("s"..i..".jpg", imgPieceWidth, imgPieceHeight)
   imgPieces[i].x = 85 -- 设置图像位置的起始 X 坐标
   imgPieces[i].y = imgPieceStartingY[i] -- 设置图像位置的起始 Y 坐标
   imgPieces[i].id = i
   imgPieces[i].place = "start"
   scrollView:insert(imgPieces[i])
end

问题是,当我试图将图像从 ScrollView 中拖出时,图像将消失。

如何使当用户仍然在拖动和持有图像,在对象离开 ScrollView 边界框(我设置为 160 宽)时,图像仍然可见?

谢谢!

点赞
用户4690798
用户4690798

我遇到了同样的问题,并通过在“began”阶段中在主组中插入图像解决了它。

local function dragElements(event)
    local phase   = event.phase
    local obj     = event.target

    if phase == "began" then
        display.getCurrentStage():setFocus(obj)

        grp:insert(obj)
        obj.StartMoveX = event.x
        obj.StartMoveY = event.y

    elseif phase == "moved" then

        obj.x = (event.x - event.xStart) + obj.StartMoveX
        obj.y = (event.y - event.yStart) + obj.StartMoveY

    elseif phase == "ended" or phase == "canceled" then
        display.getCurrentStage():setFocus(nil)
    end

    return true
end
2015-03-19 16:38:19