如何在Corona SDK中显示图像上的闪烁文本?

时间:2013-05-02 20:13:00

标签: image text sdk corona

我似乎在这里遇到了一些严重问题 - 我正在尝试显示图像并将其转换为图像,然后在底部闪烁文字。

function Splash()
   local item = display.newImage("SplashImage.png")
   item.x = display.contentWidth*0.5
   item.y = display.contentHeight*0.5
   item.alpha=0
   transition.to(item, {time =1500, alpha=1, onComplete=Blink})
end

-- blinking text

function Blink()
   text = display.newText("This is Blinking Text", 100, 100, "Arial", 22)
   text.x = display.contentWidth/2
   text.y = display.contentHeight/1.2
   text.alpha=0
transition.to(text, {time =1500, alpha=1, onComplete=Blink2})
end

function Blink2()
   if (text.alpha > 0) then                  [--THIS IS THE LINE THAT IS BROKEN APPARENTLY]
      transition.to(text, {time=1500, alpha=0})
   else
      transition.to(text, {time=1500, alpha=1})
   end
end

txt_blink = timer.performWithDelay(500, Blink2, 0)

代码中断错误“尝试索引upvalue'文本'(零值)”

我是一个完全的菜鸟,所以要温柔!

3 个答案:

答案 0 :(得分:0)

你的问题是,当调用Blink2()时,它会查找一个在那段时间内没有创建的对象“text”。因此,您应首先检查是否存在名为“text”的对象。这是你的新blink2()函数:

function Blink2()
    if text ~= nil then
        if (text.alpha > 0) then
            transition.to(text, {time=1500, alpha=0})
        else
            transition.to(text, {time=1500, alpha=1})
        end
    end
end

答案 1 :(得分:0)

试试这个,看看它是否适合你。

--> Pre-declare the text variable
local blinkingText

--> Create the splash function
function Splash()
    local item = display.newImage("SplashImage.png")
    item.x = display.contentWidth*0.5
    item.y = display.contentHeight*0.5
    item.alpha=0
    transition.to(item, {time =1500, alpha=1, onComplete=createBlinkingText})
end

--> Create the blinking text
function createBlinkingText()
    blinkingText = display.newText("This is Blinking Text", 100, 100, "Arial", 22)
    blinkingText.x = display.contentWidth/2
    blinkingText.y = display.contentHeight/1.2
    blinkingText.alpha=0
    transition.to(blinkingText, {time =1500, alpha=1, onComplete=startBlinking})
end

--> Start the blinking
function startBlinking()
    if (blinkingText.alpha > 0) then
        transition.to(blinkingText, {time=1500, alpha=0, onComplete=startBlinking})
    else
        transition.to(blinkingText, {time=1500, alpha=1, onComplete=startBlinking})
    end
end

--> Call the splash function
Splash()

我更改了几个变量名,以便您更好地理解它们。

答案 2 :(得分:0)

该错误表示您的函数Blink2已被要求访问之前未声明为表/对象的变量“text”。放一个:

local text = {}

在顶部,它应该可以解决您的问题。