【问题标题】:Lua - Corona SDK - Text not appearing inside a display ObjectLua - Corona SDK - 文本未出现在显示对象内
【发布时间】:2014-03-02 13:37:11
【问题描述】:

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

 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 论坛,但我仍在尝试。

【问题讨论】:

    标签: sdk lua coronasdk


    【解决方案1】:

    我没有发现任何问题,但组应该不是必需的。验证文本 can 是否可见:在 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(),如果现在它消失了,这将为您提供线索。

    【讨论】:

    • 我测试和测试,最后我想出了一个解决方法!我使用函数“getBtn”来生成背景图像,所以我为文本创建了另一个函数,它只是让文本作为按钮工作。谢谢你……告诉我不要放弃(这听起来很俗气)!
    • 很高兴您解决了这个问题。那么这个新功能是做什么来修复它的呢?
    • 这是我用于 btn pastebin.com/r4xaEg7R 的函数,新函数是 pastebin.com/rczXtXGJ
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多