Измерьте громкость одним нажатием кнопки

#android #lua #coronasdk

#Android #lua #coronasdk

Вопрос:

Привет, ниже приведен код, который измеряет громкость во время выполнения. Я хочу кнопку, которая при нажатии один раз запускает громкость, как в этом коде, а затем при повторном нажатии прекращает измерение.

 local g = display.newGroup()

local function newBar()
local bar = display.newLine( 0, 0, 1, 0 ) 
bar:setColor( 0, 55, 100, 20 )
bar.width = 7
bar.y=400
bar.x=20
    return bar
end


local volumeBar = newBar()

volumeBar.y =  309
volumeBar.x = 320


function volumeBar:enterFrame ( event )

local v = 20*math.log(r:getTunerVolume())    
local MINTHRESH = 20
local LEFTMARGIN = 20
local ONE = -1
local v2 = MINTHRESH   math.max (v, -MINTHRESH)
v2 = (display.contentWidth - 20 ) * v2 / MINTHRESH
local neg =  math.max ( 20, v2 )
volumeBar.xScale =  neg * ONE
if (v >= -4) then
    volumeBar:setColor( 110,  110, 20, 200 )

elseif (v < -4) then

volumeBar:setColor( 235,  80, 80, 233)

end 

end

Runtime:addEventListener("enterFrame", volumeBar)

g:insert(volumeBar)
  

Помогите, пожалуйста, потому что здесь нужно выполнить 2 нажатия.

Ответ №1:

Добавьте прослушиватель событий касания к кнопке и вызовите Runtime:removeEventListener («enterFrame», панель громкости) в функции tap.

Комментарии:

1. ну, я уже пробовал, это не сработало : (. Следовательно, я хотел помочь вот с кодом.

2. локальная функция newBar () локальная строка = отображение.Новая строка ( 0, 0, 1, 0) строка: набор цвета (0, 55, 100, 20) строка.ширина = 7 строк.y = 400 строк.x = 20 возвращает конец строки

3. локальная панель управления = newBar () Панель управления объемом.y = 309 Панель управления объемом.x = 320

4. функция VolumeBar: enterFrame (событие) local v = 20 * math.log (r: getTunerVolume()) local MINTHRESH = 20 local LEFTMARGIN = 20 local ONE = -1 local v2 = MINTHRESH math.max (v, -MINTHRESH) v2 = (display.contentWidth — 20) * v2 / MINTHRESH local neg = math.max ( 20, v2 ) VolumeBar.XScale = neg * ОДИН, если (v > = -4) затем регулятор громкости: setColor (110, 110, 20, 200) elseif (v < -4) затем регулятор громкости: setColor (235, 80, 80, 233) end конец

5. локальный buzzL = ui.newButton { defaultSrc = «defence.png», defaultX = «50», defaultY = «50», overSrc = «defence-light.png», overX = «50», overY = «50», onEvent = myButtonHandler, id = «buzzL» } buzzL.x = 126 buzzL.y = 292 buzzL:addEventListener ( «tap», buzzer2) buzzL.buzzer2Selected = false physics.addBody(buzzL, «статический»)