J'ai un composant widget.newScrollView et un widget.newButton devant lui. Malheureusement, lorsque je clique sur mon bouton, il appelle aussi mon gestionnaire "tap" ScrollView. Comment arrêter mon ScrollView d'obtenir cet événement? Voici une partie du code que je utilise:lua corona - comment désactiver les événements tactiles widget.newScrollView
local function handleButtonEvent(event)
if ("ended" == event.phase) then
print("Button was pressed and released")
end
return true; **I tried this - but it had no effect**
end
ajouté
local button1 = widget.newButton(
{
label = "button",
onEvent = handleButtonEvent,
emboss = false,
shape = "roundedRect",
width = 400,
height = 100,
cornerRadius = 32,
fillColor = { default={1,0,0,1}, over={1,0.1,0.7,1} },
strokeColor = { default={1,0.4,0,1}, over={0.8,0.8,1,1} },
strokeWidth = 4,
fontSize=100;
}
J'ai un tableau (planètes) de display.NewImages et mon gestionnaire - comme ceci:
local planets = {};
planets[1] = display.newImage("planetHexs/001.png", _topLeft_x, _topLeft_y);
planets[2] = display.newImage("planetHexs/002.png", _topLeft_x, _topLeft_y + _planet_height2);
....
local scrollView = widget.newScrollView(
{
top = 0,
left = 0,
width = display.actualContentWidth,
height = display.actualContentHeight,
scrollWidth = 0,
scrollHeight = 0,
backgroundColor = { 0, 0, 0, 0.5},
verticalScrollDisabled=true;
}
for i = 1, #planets do
local k = planets[i];
scrollView:insert(k)
end
function PlanetTapped(num)
print("You touched the object!"..num);
end
for i = 1, #planets do
local k = planets[i];
k:addEventListener("tap", function() PlanetTapped(i) end)
end
Je reçois ce journal d'impression:
Button was pressed and released
You touched the object2
Copie possible de [Propagation d'événement d'arrêt dans Corona SDK] (http://stackoverflow.com/questions/20140217/stop-event-propagation-in-corona-sdk) – Piglet
Veuillez utiliser google avant de poser une nouvelle question. Si vous souhaitez arrêter la propagation d'un événement, le dernier gestionnaire d'événements qui doit gérer l'événement doit renvoyer true. juste mettre retour vrai comme la dernière déclaration dans votre fonction handleButtonEvent ... – Piglet
merci beaucoup Piglet :) J'ai essayé mais cela n'a pas fonctionné :( J'ai ajouté un peu plus de mon code qui pourrait aider :) S'il vous plaît aider un peu plus :) –