This answer is the synthesis of the discussion we had in the comment section which eventually led to a solution.
Before we do anything in such a situation, it is vital to double-check whether there was some change after all that we did not see for some reason. It is important not to omit this double-check, because this does not take much time, while the systematic approach that leads to the solution involves a lot of effort. So, with this double-check we have a lot of potential gain with virtually no risk/cost. I personally use git as a version control system, but any system that is reliably showing such differences will do the job.
Seeing many not working image buttons looks overwhelming, we need to focus our research to a manageable and understandable problem-space. So, we need to choose one of the not working image buttons and find out why that does not work. If we are lucky, then solving that problem will either automatically solve the others, or give us some strong hints for the others. Naturally, we could have multiple very different problems, which off course means that we need to repeat the process outlined in this answer.
A very important hint is that not all the image buttons show this behavior, so we know that the problem is unlikely to be related to image buttons and it's more likely related to actions triggered by events on the image buttons.
Some debugging and logging is always helpful. Debugging shows us what happens, so if we do debug, we might find some bad behavior at some point which might well be the issue itself. If we do some logging, then we can see what happens while the program is running. We can do either or both.
In some cases there is no solution. For example a remotely working API might stop working, which is an unsolvable issue. In this case detecting this situation is vital. If there is no solution, then at least we need to find this out as quickly as possible, so we do not sweat on it too much.
Some steps towards the solution:
- Reduce the problem space to a small, manageable size (and possibly provide more information into your question)
- Define your problem well (Currently you link your problem to image buttons, but you are wrong to do so, since the fact that some image buttons work disproves the hypothesis that image buttons would work wrongly)
- Look into the undivideable units of work, in your case the actions, choose one of them as a current focus and redefine the problem into an even smaller size)
- Log and debug to collect information
- From the list of the information you have collected plan a few experiments
- Sequentially try all your hypotheses
- If the solution is not yet found, then you might start all over from point 1. or you might decide to remove the action (temporarily) and gradually implement it back, until you either find what the problem is or accidentally solved it
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…