PROBLEMA CON BOTON

HOLA A TODOS, QUIERO SABER SI ME PUEDE AYUDAR CON UN PROBLEMA, ESTO HACIENDO UNA APP LA CUAL LLEVA VARIOS BOTONES LOS CUALES LOS ESTOY CREANDO CON ESTA SINTAXIS:

local widget = require( “widget” )

local function handleButtonEvent( event )

if ( “ended” == event.phase ) then
print( “Button was pressed and released” )
end
end

local button1 = widget.newButton
{
width = 240,
height = 120,
defaultFile = “buttonDefault.png”,
overFile = “buttonOver.png”,
label = “button”,
onEvent = handleButtonEvent
}

BUENO CREE EL BOTÓN TODO NORMAL, AL TOCARLO VA A OTRA  ESCENA PARA ESO E UTILIZADO STORYBOARD, EL BOTÓN CUMPLE SU FUNCIÓN CORRECTAMENTE, PERO EL PROBLEMA ESTA EN QUE  LA ESCENA SE ABRE TOCANDO AUN POR FUERA DEL BOTÓN, NO SE PORQUE SE SUPONE QUE SE DEBERÍA ABRIR SOLO AL TOCAR LA SUPERFICIE DEL BOTÓN Y NO SU EXTERIOR HASTA CIERTO PUNTO.

NOTA: EL BOTÓN TIENE FORMA REDONDA, E UTILIZADO UNA IMAGEN DE EXTENSIÓN .GIF

GRACIAS POR SU AYUDA

HOLA SOY YO DE NUEVO SIGO CON EL PROBLEMA DE ARRIBA  PERO TAMBIÉN TENGO OTRO, LO QUE PASA ES QUE TODOS MIS BOTONES TIENEN UNA FUNCIÓN QUE LLAMA A OTRA ESCENA (YA QUE USO STORYBOARD) EL PROBLEMA ES QUE ESTANDO DENTRO DE ESA ESCENA SI TOCO POR ALGUNA PARTE DETERMINADA DE LA PANTALLA ME SALTA A OTRA ESCENA.

SUPONGO QUE LA ESCENA ANTERIOR SIGUE ACTIVA Y NO SE COMO DESTRUIRLA YA QUE EN EL STORYBOARD HAY UNA PARTE QUE DICE : 

function scene : destroyScene(event)

    

end

PERO NO SE COMO USARLO ASÍ QUE AGRADECERÍA SU AYUDA 

SALUDOS

premierghost - puedes postear mas de tu codigo para que alguien lo pueda revisar? Asi tal ves podemos ver cual es el problema…

ok  david, aqui va mas de mi codigo: 

comienza asi: 

display.setStatusBar(display.HiddenStatusBar) 

local storyboard = require (“storyboard”)

storyboard.gotoScene(“inicio”)

y todo esto va dentro de inicio.lua :

local storyboard = require (“storyboard”)

local scene = storyboard.newScene()

local function hprimero( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton1”)

        print( “Button was pressed and released” )

    end

end

local function hsegundo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton2” )

        print( “Button was pressed and released” )

    end

end

local function htercero( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton3” )

        print( “Button was pressed and released” )

    end

end

local function hcuarto( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton4” )

        print( “Button was pressed and released” )

    end

end

local function hquinto( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton5” )

        print( “Button was pressed and released” )

    end

end

local function hsexto( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton6” )

        print( “Button was pressed and released” )

    end

end

local function hseptimo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton7” )

        print( “Button was pressed and released” )

    end

end

local function hoctavo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton8” )

        print( “Button was pressed and released” )

    end

end

local function hnoveno( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton9” )

        print( “Button was pressed and released” )

    end

end

local function hdecimo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton10” )

        print( “Button was pressed and released” )

    end

end

local function honceavo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton11”)

        print( “Button was pressed and released” )

    end

end

function scene : createScene( event)

    

    background = display.newImage ( “background.gif”)

    

    local text1 = display.newText (“herramientas”,50,93,“Arial”,20)

    text1 : setFillColor(black)

    local text2 = display.newText(“armas”,180,93,“Arial”,20)

    text2 : setFillColor( black )

    local text3 = display.newText(“armaduras”,305,93,“Arial”,20)

    text3 : setFillColor( black )

    local text4 = display.newText(“bloques”,435,93,“Arial”,20)

    text4 : setFillColor( black )

    local text5 = display.newText(“alimentos”,45,203,“Arial”,20)

    text5 : setFillColor( black )

    

    local text6 = display.newText(“miscelanea”,180,203,“Arial”,20)

    text6 : setFillColor( black )

    local text7 = display.newText(“mecanismos”,305,203,“Arial”,20)

    text7 : setFillColor( black )

    local text8 = display.newText(“transportes”,435,203,“Arial”,20)

    text8 : setFillColor( black )

    local text9 = display.newText(“lanas”,110,308,“Arial”,20)

    text9 : setFillColor( black )

    local text10 = display.newText(“colorantes”,240,308,“Arial”,20)

    text10 : setFillColor( black )

    local text11 = display.newText(“craft.basicos”,368,308,“Arial”,20)

    text11 : setFillColor( black )

    local widget = require( “widget” )

    local herramientas = widget.newButton

 {

    left = -55,

    top = -55,

    defaultFile = “herramientas.gif”,

    overFile = “herramientasover.gif”,

    label = “”,

    onEvent = hprimero

 }

    local alimentos = widget.newButton

 {

    left = -55,

    top = 55,

    defaultFile = “alimentos.gif”,

    overFile = “alimentosover.gif”,

    label = “”,

    onEvent = hquinto

 }

    

    local armas = widget.newButton

 {

    left = 75,

    top = -55,

    defaultFile = “armas.gif”,

    overFile = “armasover.gif”,

    label = “”,

    onEvent = hsegundo

 }

    local armaduras = widget.newButton

 {

    left = 200,

    top = -55,

    defaultFile = “armaduras.gif”,

    overFile = “armadurasover.gif”,

    label = “”,

    onEvent = htercero

 }

    local bloques = widget.newButton

 {

    left = 330,

    top = -55,

    defaultFile = “bloques.gif”,

    overFile = “bloquesover.gif”,

    label = “”,

    onEvent = hcuarto

 }

    local miscelanea = widget.newButton

 {

    left = 75,

    top = 55,

    defaultFile = “miscelanea.gif”,

    overFile = “miscelaneaover.gif”,

    label = “”,

    onEvent = hsexto

 }

    local mecanismos = widget.newButton

 {

    left = 200,

    top = 55,

    defaultFile = “mecanismos.gif”,

    overFile = “mecanismosover.gif”,

    label = “”,

    onEvent = hseptimo

 }

    local transportes = widget.newButton

 {

    left = 330,

    top = 55,

    defaultFile = “transportes.gif”,

    overFile = “transportesover.gif”,

    label = “”,

    onEvent = hoctavo

 }

    local lana = widget.newButton

 {

    left = 8,

    top = 160,

    defaultFile = “lana.gif”,

    overFile = “lanaover.gif”,

    label = “”,

    onEvent = hnoveno

 }

    local colorantes = widget.newButton

 {

    left = 135,

    top = 160,

    defaultFile = “colorantes.gif”,

    overFile = “colorantesover.gif”,

    label = “”,

    onEvent = hdecimo

}

    local basico = widget.newButton

 {

    left = 265,

    top = 160,

    defaultFile = “basico.gif”,

    overFile = “basicoover.gif”,

    label = “”,

    onEvent = honceavo

 }

    – body

end

function scene : enterScene(event)

    

    – body

end

function scene : exitScene(event)

    

    – body

end

function scene : destroyScene(event)

    – body

end

scene : addEventListener( “createScene”,scene)

scene : addEventListener( “enterScene”,scene)

scene : addEventListener( “exitScene”,scene)

scene : addEventListener( “destroyScene”,scene)

return scene

creo que el problema esta en la parte de enterScene, exitScene o destroyScene bueno espero que me ayudes 

SALUDOS

Me dice un ingeniero que parece que tienes dos problemas:

  1. No estas poniendo nada en el display group de la escena. Storyboard no puede manejar cosas que no esten en el grupo.

function scene : createScene( event)

    local group = scene.view
 

    background = display.newImage ( “background.gif”)

    group:insert(background)
 

    local text1 = display.newText (“herramientas”,50,93,“Arial”,20)

    text1 : setFillColor(black)

    group:insert(text1)

etc.
 

  1. Deberias hacer un “return true” al final de los handlers de los botones:
     

local function hprimero( event )

 

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton1”)

        print( “Button was pressed and released” )

    end

    return true
end

cleardot.gif

muchas gracias solucione el segundo problema, y pues bueno el primero se trataba de las imágenes pues tenían un fondo el cual estaba seguro de haberlo borrado pero seguía ahí, bueno ya edite las imágenes, borre el fondo correctamente y ahora todo va de 10

Muchas gracias me sirvió mucho su ayuda.

HOLA SOY YO DE NUEVO SIGO CON EL PROBLEMA DE ARRIBA  PERO TAMBIÉN TENGO OTRO, LO QUE PASA ES QUE TODOS MIS BOTONES TIENEN UNA FUNCIÓN QUE LLAMA A OTRA ESCENA (YA QUE USO STORYBOARD) EL PROBLEMA ES QUE ESTANDO DENTRO DE ESA ESCENA SI TOCO POR ALGUNA PARTE DETERMINADA DE LA PANTALLA ME SALTA A OTRA ESCENA.

SUPONGO QUE LA ESCENA ANTERIOR SIGUE ACTIVA Y NO SE COMO DESTRUIRLA YA QUE EN EL STORYBOARD HAY UNA PARTE QUE DICE : 

function scene : destroyScene(event)

    

end

PERO NO SE COMO USARLO ASÍ QUE AGRADECERÍA SU AYUDA 

SALUDOS

premierghost - puedes postear mas de tu codigo para que alguien lo pueda revisar? Asi tal ves podemos ver cual es el problema…

ok  david, aqui va mas de mi codigo: 

comienza asi: 

display.setStatusBar(display.HiddenStatusBar) 

local storyboard = require (“storyboard”)

storyboard.gotoScene(“inicio”)

y todo esto va dentro de inicio.lua :

local storyboard = require (“storyboard”)

local scene = storyboard.newScene()

local function hprimero( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton1”)

        print( “Button was pressed and released” )

    end

end

local function hsegundo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton2” )

        print( “Button was pressed and released” )

    end

end

local function htercero( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton3” )

        print( “Button was pressed and released” )

    end

end

local function hcuarto( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton4” )

        print( “Button was pressed and released” )

    end

end

local function hquinto( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton5” )

        print( “Button was pressed and released” )

    end

end

local function hsexto( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton6” )

        print( “Button was pressed and released” )

    end

end

local function hseptimo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton7” )

        print( “Button was pressed and released” )

    end

end

local function hoctavo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton8” )

        print( “Button was pressed and released” )

    end

end

local function hnoveno( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton9” )

        print( “Button was pressed and released” )

    end

end

local function hdecimo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton10” )

        print( “Button was pressed and released” )

    end

end

local function honceavo( event )

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton11”)

        print( “Button was pressed and released” )

    end

end

function scene : createScene( event)

    

    background = display.newImage ( “background.gif”)

    

    local text1 = display.newText (“herramientas”,50,93,“Arial”,20)

    text1 : setFillColor(black)

    local text2 = display.newText(“armas”,180,93,“Arial”,20)

    text2 : setFillColor( black )

    local text3 = display.newText(“armaduras”,305,93,“Arial”,20)

    text3 : setFillColor( black )

    local text4 = display.newText(“bloques”,435,93,“Arial”,20)

    text4 : setFillColor( black )

    local text5 = display.newText(“alimentos”,45,203,“Arial”,20)

    text5 : setFillColor( black )

    

    local text6 = display.newText(“miscelanea”,180,203,“Arial”,20)

    text6 : setFillColor( black )

    local text7 = display.newText(“mecanismos”,305,203,“Arial”,20)

    text7 : setFillColor( black )

    local text8 = display.newText(“transportes”,435,203,“Arial”,20)

    text8 : setFillColor( black )

    local text9 = display.newText(“lanas”,110,308,“Arial”,20)

    text9 : setFillColor( black )

    local text10 = display.newText(“colorantes”,240,308,“Arial”,20)

    text10 : setFillColor( black )

    local text11 = display.newText(“craft.basicos”,368,308,“Arial”,20)

    text11 : setFillColor( black )

    local widget = require( “widget” )

    local herramientas = widget.newButton

 {

    left = -55,

    top = -55,

    defaultFile = “herramientas.gif”,

    overFile = “herramientasover.gif”,

    label = “”,

    onEvent = hprimero

 }

    local alimentos = widget.newButton

 {

    left = -55,

    top = 55,

    defaultFile = “alimentos.gif”,

    overFile = “alimentosover.gif”,

    label = “”,

    onEvent = hquinto

 }

    

    local armas = widget.newButton

 {

    left = 75,

    top = -55,

    defaultFile = “armas.gif”,

    overFile = “armasover.gif”,

    label = “”,

    onEvent = hsegundo

 }

    local armaduras = widget.newButton

 {

    left = 200,

    top = -55,

    defaultFile = “armaduras.gif”,

    overFile = “armadurasover.gif”,

    label = “”,

    onEvent = htercero

 }

    local bloques = widget.newButton

 {

    left = 330,

    top = -55,

    defaultFile = “bloques.gif”,

    overFile = “bloquesover.gif”,

    label = “”,

    onEvent = hcuarto

 }

    local miscelanea = widget.newButton

 {

    left = 75,

    top = 55,

    defaultFile = “miscelanea.gif”,

    overFile = “miscelaneaover.gif”,

    label = “”,

    onEvent = hsexto

 }

    local mecanismos = widget.newButton

 {

    left = 200,

    top = 55,

    defaultFile = “mecanismos.gif”,

    overFile = “mecanismosover.gif”,

    label = “”,

    onEvent = hseptimo

 }

    local transportes = widget.newButton

 {

    left = 330,

    top = 55,

    defaultFile = “transportes.gif”,

    overFile = “transportesover.gif”,

    label = “”,

    onEvent = hoctavo

 }

    local lana = widget.newButton

 {

    left = 8,

    top = 160,

    defaultFile = “lana.gif”,

    overFile = “lanaover.gif”,

    label = “”,

    onEvent = hnoveno

 }

    local colorantes = widget.newButton

 {

    left = 135,

    top = 160,

    defaultFile = “colorantes.gif”,

    overFile = “colorantesover.gif”,

    label = “”,

    onEvent = hdecimo

}

    local basico = widget.newButton

 {

    left = 265,

    top = 160,

    defaultFile = “basico.gif”,

    overFile = “basicoover.gif”,

    label = “”,

    onEvent = honceavo

 }

    – body

end

function scene : enterScene(event)

    

    – body

end

function scene : exitScene(event)

    

    – body

end

function scene : destroyScene(event)

    – body

end

scene : addEventListener( “createScene”,scene)

scene : addEventListener( “enterScene”,scene)

scene : addEventListener( “exitScene”,scene)

scene : addEventListener( “destroyScene”,scene)

return scene

creo que el problema esta en la parte de enterScene, exitScene o destroyScene bueno espero que me ayudes 

SALUDOS

Me dice un ingeniero que parece que tienes dos problemas:

  1. No estas poniendo nada en el display group de la escena. Storyboard no puede manejar cosas que no esten en el grupo.

function scene : createScene( event)

    local group = scene.view
 

    background = display.newImage ( “background.gif”)

    group:insert(background)
 

    local text1 = display.newText (“herramientas”,50,93,“Arial”,20)

    text1 : setFillColor(black)

    group:insert(text1)

etc.
 

  1. Deberias hacer un “return true” al final de los handlers de los botones:
     

local function hprimero( event )

 

    if ( “ended” == event.phase ) then

        storyboard.gotoScene( “boton1”)

        print( “Button was pressed and released” )

    end

    return true
end

cleardot.gif

muchas gracias solucione el segundo problema, y pues bueno el primero se trataba de las imágenes pues tenían un fondo el cual estaba seguro de haberlo borrado pero seguía ahí, bueno ya edite las imágenes, borre el fondo correctamente y ahora todo va de 10

Muchas gracias me sirvió mucho su ayuda.