在Corona SDK中创建克隆/生成/独特重复实例

我是 Corona SDK 的极度新手,目前尝试制作一个音效面板,屏幕上显示多个按钮,每次点击一个按钮都会播放不同的音效。我正在使用复制图像并让每个副本播放一个音效的过程,但我遇到了一些问题。

有没有一种方式可以创建显示对象的“克隆”?我的意思是,我想在屏幕上生成多个图像,每个图像都有某种独特的值,当其中一个被点击时,我将能够识别它是哪个图像。

点赞
用户2524586
用户2524586

尝试一下:

local function onClickButton( event )
    local button = event.target
    if event.phase == "ended" then
        audio.stop() -- 停止所有当前频道
        audio.play( button.stream )
    end
end

local function createButton( params )
    local x = params.x or 0
    local y = params.y or 0
    local audio_location = params.audio or "my_sound.mp3"

    local button = display.newRect( x, y, 50, 50 )
    button.stream = audio.loadStream( audio_location )
    button:addEventListener( "touch", onClickButton )
end

createButton( { x = 100, y = 100, audio = "my_sound.mp3" } )
createButton( { x = 200, y = 100, audio = "my_sound_2.mp3" } )
createButton( { x = 100, y = 200, audio = "my_sound_3.mp3" } )
createButton( { x = 200, y = 200, audio = "my_sound_4.mp3" } )

如果你打算面向 Windows Phone 开发,记住它不支持 MP3 格式的音频: https://docs.coronalabs.com/guide/media/audioSystem/index.html

你也可以使用带有 元表 的模块类,但我不认为在这种情况下是必要的,这里有更多关于这方面的信息: https://coronalabs.com/blog/2011/09/29/tutorial-modular-classes-in-corona/

2016-01-19 18:30:24