如何一次显示一个字母串?

时间:2014-03-25 03:19:10

标签: lua corona

我从一本书中学习,这是我正在研究的作业问题:  创建一个询问用户名称的应用程序,然后在屏幕一侧显示名称,一次一个字母。

  • 澄清我尝试做的事情:让用户的名字一次一个地淡入淡出。示例: Adam " A "将在1秒后出现," d "将在显示的 A 下显示3秒后," a "将在显示的 d 下显示5秒后," m "在显示的 a 下7秒后出现。视觉效果会有一种多米诺骨牌效应。当它们出现时,它们会一直显示在屏幕上。

到目前为止,我能够获得用户的名字并以旁边的方式显示。让它在2秒内消失。我一直坚持如何让信件一次淡入一个字母。

function submit ()  
print( "connect" )
userName = userNameField.text
display_userName = display.newText( userName, display.contentWidth-20, display.contentHeight/2 )
    display_userName.rotation = 90
    display_userName.alpha = 0

userNameField: removeSelf( )
greeting:removeSelf( )
submitButton:removeSelf( )

transition.fadeIn( display_userName, {time = 2000} )

如果您需要查看更多我的代码,请与我们联系。

2 个答案:

答案 0 :(得分:3)

您可以通过以下简单方式完成此操作:

local myString = "Adam"  -- Create your string
local positionCount = 0     -- initialize a variable to determine letter position

local function displayData()
  positionCount = positionCount + 1
  if(positionCount<=string.len(myString))then
    -- if positionCount is less than or equal to letters in 'myString'
    local letter = string.sub(myString, positionCount, positionCount) -- get the current letter
    local letterLabel = display.newText(letter,20,20*positionCount,nil,20) -- place the letter
    letterLabel.alpha = 0;
    -- display the label and update the function after the completion of transition
    transition.to(letterLabel,{time=1000,alpha=1,onComplete=displayData})
  end
end
displayData()

保持编码....................:)

答案 1 :(得分:1)

以下是用于存储表格中每个字符的代码段。 初始化变量:

check =0;

这里splitWord是一个存储字符串每个字符的表。和变量&#34; yourStringForOneLetter&#34;是用于拆分的字符串变量。 &#34; string.sub&#34;将使用for循环将字符串拆分为单词。

 if(check==wordSize) then
   check=1
 end

 local wordSize = string.len(yourStringForOneLetter)
 splitWord = {}

 for i=check, check do            
   splitWord[i] = string.sub(yourStringForOneLetter, i, i)    
   check= check +1;
 end