Lua - Corona SDK - 文本未显示在显示对象内

时间:2014-03-01 22:31:33

标签: sdk lua corona

我正在尝试将隐藏在屏幕右侧的显示对象移动到场景中。它与图像(即背景)非常合作,但不能与文本一起使用(使用print()调试它们似乎是正确的,但它们从不显示,我已经尝试过obj:toFront)。 我认为它们可能在显示对象中工作,所以我将所有内容放在显示对象中:没有。只是文字?都不是。任何人都知道为什么/如何覆盖这个?

 function tscreen:init()
    local textGroup = display.newGroup()

    local menuBackground = self:getBtn("src/bgMenu.png")
    menuBackground.isVisible = false
    menuBackground.anchorX = 0.5
    menuBackground.anchorY = 0.5
    self.menuBackground = menuBackground

    local optionsText = {
        parent = textGroup,
        text = "Hello World",     
        x = centerX,
        y = centerY,
        width = 128,     
        font = native.systemFontBold,   
        fontSize = 14,
        align = "center" 
    }
    local workText = display.newText( optionsText )
    workText:setFillColor( 1, 0, 0 )
    setPos(textGroup, W, 0) 
            --setPos() is a custom function that assigns x and y coords
    textGroup.isVisible = false

    self.textGroup = textGroup
  end

 function tscreen:show()
    local menuBackground = self.menuBackground
    local textGroup      = self.textGroup

    local inTime        = 1200

    setPos(menuBackground, 2*W + centerX, centerY)
    menuBackground.isVisible = true

    setPos(textGroup, W, 0)
    textGroup.isVisible = true

    self:cancelTween(menuBackground)
    self:cancelTween(textGroup)

    menuBackground.tween = transition.to(menuBackground, {time = inTime, transition = easing.outExpo, x = centerX,
        onComplete = function()
        tscreen:cancelTween(menuBackground)
    end
    })

    textGroup.tween = transition.to(textGroup, {time = inTime, transition = easing.outExpo, x = 0,
        onComplete = function()
        tscreen:cancelTween(textGroup)
        print(getPos(textGroup), textGroup.width, textGroup.height)
    end
    })

end

我有Corona的初学者版,所以我没有最近实现的Composer API。 也许这不是发布此查询的最合适的网站,因为已经有一个Corona SDK论坛,但我还在尝试。

1 个答案:

答案 0 :(得分:1)

我没有看到任何错误,但一群人不应该是必要的。验证文本是否可以:在init()中,执行

local optionsText = {
    text = "Hello World",     
    x = 0,
    y = 100,
}
local workText = display.newText( optionsText )
workText:setFillColor( 1, 1, 1 )

如果你看不到文本,那么其他东西正在发生,也许你的init()没有被调用等等。一旦看到它,将参数更改为您想要的(填充颜色等),并进行测试。如果仍然有效,请在init()之后添加一个转换:

local easeXto100 = {
     time = 2000, 
     transition = easing.outExpo, 
     x = 100,
     onComplete = function() print('did you see text move from x=0 to 100?') end
}
transition.to(workText, easeXto100)

如果你看到它移动,那么将代码的相关部分移动到你的show(),如果现在它消失了,这将给你线索。