我从一本书中学习,这是我正在研究的作业问题: 创建一个询问用户名称的应用程序,然后在屏幕一侧显示名称,一次一个字母。
到目前为止,我能够获得用户的名字并以旁边的方式显示。让它在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} )
如果您需要查看更多我的代码,请与我们联系。
答案 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