#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, «статический»)