2013-05-02 101 views
0

我似乎在這裏有一些嚴重的問題 - 我試圖顯示圖像並將其轉換,然後在底部閃爍文字。如何在Corona SDK中的圖像上顯示閃爍文字?

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‘文本’(一個零值)」

我在這個總的小白,所以要溫柔!

+0

盡我所能,儘量避免[閃爍文字](http://stackoverflow.com/questions/1211044/what-is-the-replacement-for-a-blinking-text-in-a-web如果可能的話)。 – naththedeveloper 2013-05-02 20:18:10

+0

請注意您正在使用「文本」作爲全局變量。即使你實現了功能,這也不是一個好習慣。當你的應用程序增長時,以這種方式使用全局變量將失去控制並且失去可讀性。 – 2014-03-25 09:01:37

回答

0

您的問題是,當調用Blink2()時,它會查找當時未創建的對象「文本」。所以你應該首先檢查是否有一個名爲「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 
+0

不,在之前的圖像淡入淡出之後,Splash函數被onComplete調用。 – 2013-05-02 21:41:21

+0

我編輯了我的答案 – 2013-05-03 05:37:26

+0

你是一個天才的傢伙。像魅力一樣工作。 – 2013-05-03 06:23:33

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() 

我改變了幾個變量名,以便更好地理解它們。

0

該錯誤表明您的函數Blink2已被要求訪問先前未聲明爲表/對象的變量「text」。放:

local text = {} 

在頂部,它應該解決您的問題。