如何在lua场景之间移动,而不需要用户输入,就像幻灯片演示一样?

如何在没有用户输入或按钮的情况下用另一个lua文件(如幻灯片)替换一个lua文件?声音结束?计时器?

例如,这在scene1中的编码:

--视觉效果

   positionOne = display.newImage( note1, 170, pitch1 )
--小节中的两个音符中的第一个:170=x坐标,音高=y

   coordinate
   positionTwo = display.newImage( note2, 320, pitch2 )
--小节中的两个音符的第二个

-- 陪奏1

    local acomp = audio.loadStream("sounds/chord1.mp3")
        audio.play(acomp, {channel = 1})
    audio.stopWithDelay(60000/72)
    -- 72 = 每分钟节拍数
-- 陪奏2

    local function listener(event)
    local acomp = audio.loadStream("sounds/chord2.mp3")
        audio.play(acomp, {channel = 2})
    audio.stopWithDelay(60000/72])
    end
    timer.performWithDelay(60000/72, listener)
    end

一旦音乐结束,就被这个代码替换:

--视觉效果

   positionOne = display.newImage( note1, 170, pitch3 )
--小节中的两个音符中的第一个:170=x坐标,音高=y

   coordinate
   positionTwo = display.newImage( note2, 320, pitch4 )
--小节中的两个音符的第二个

-- 陪奏1

    local acomp = audio.loadStream("sounds/chord3.mp3")
        audio.play(acomp, {channel = 1})
    audio.stopWithDelay(60000/72)
    -- 72 = 每分钟节拍数
-- 陪奏2

    local function listener(event)
    local acomp = audio.loadStream("sounds/chord4.mp3")
        audio.play(acomp, {channel = 2})
    audio.stopWithDelay(60000/72])
    end
    timer.performWithDelay(60000/72, listener)
    end

作为一个初学者的编码员,我无法理解Corona的现成多场景编码,这取决于用户输入按钮。我注意到在启动这样的项目时,主要的移动直接进入scene1,没有ui。是否其他场景也是如此?我错了吗?

点赞
用户1366533
用户1366533

您可以使用 timer.performWithDelay() 安排场景切换,因为您可以计算第二个音频播放将停止的时间。

类似于:

local function switchScene()
   composer.gotoScene( "scene2", { effect = "slideLeft", time = 500} )
end

-- 在此处启动音频内容,如之前所示...

-- 注册场景切换,以在音频完成后执行一次
local timeBeforeSwitch = 2*(60000/72)
timer.performWithDelay(timeBeforeSwitch, switchScene)

作为一种替代方法,您可以像这样为最后的音频播放调用注册一个 onComplete 回调:

audio.play(accomp, {channel = 2, onComplete=switchScene})

但我尚未测试其是否可以与 audio.stopWithDelay() 预期工作。

2015-09-06 12:10:15