OK, it would probably help if you could submit a JIRA issue with a small sample 
app that reproduces the problem.

On May 27, 2011, at 1:36 PM, Edgar Merino wrote:

> I'm sorry, I was using System.out.println and not breakpoints. I increased 
> the duration to 400, rate to 28 but it gets even worse, it seems like having 
> a smaller duration helps a bit, but I can still reproduce the bug.
> 
> El 27/05/11 07:26, Greg Brown escribió:
>> Try using System.out() to log progress. If you set a breakpoint, your 
>> transition will almost certainly complete while you are stepping through 
>> code. Also try extending the transition duration since that will give you a 
>> larger data set.
>> 
>> On May 26, 2011, at 9:15 PM, Edgar Merino wrote:
>> 
>>> Hello, I've been trying to fix a bug I just found using Transitions and 
>>> ComponentMouseListeners. You can take, for example, the ScaleTransition I 
>>> just submitted to the dev mailing list, although this should apply to any 
>>> transition.
>>> 
>>> For this example, I'll use the ScaleTransition in a ComponentMouseListener, 
>>> as follows:
>>> 
>>> 
>>> import java.util.Arrays;
>>> import java.util.Collection;
>>> import org.apache.pivot.wtk.Component;
>>> import org.apache.pivot.wtk.ComponentMouseListener;
>>> 
>>> public class ZoomComponentMouseListener implements ComponentMouseListener {
>>> 
>>>    private ScaleTransition scaleTransition = new ScaleTransition();
>>> 
>>>    public ZoomComponentMouseListener(Component targetComponent) {
>>>        scaleTransition.addComponent(targetComponent);
>>>    }
>>> 
>>>    public boolean mouseMove(Component component, int x, int y) {
>>>        return false;
>>>    }
>>> 
>>>    public void mouseOver(Component component) {
>>>        if (scaleTransition.isRunning()) {
>>>            scaleTransition.reverse();
>>>        } else {
>>>            scaleTransition.setReversed(false);
>>>            scaleTransition.start();
>>>        }
>>>    }
>>> 
>>>    public void mouseOut(Component component) {
>>>        if (scaleTransition.isRunning()) {
>>>            scaleTransition.reverse();
>>>        } else {
>>>            scaleTransition.setReversed(true);
>>>            scaleTransition.start();
>>>        }
>>>    }
>>> 
>>>    public void setZoom(float zoom) {
>>>        scaleTransition.setZoom(zoom);
>>>    }
>>> }
>>> 
>>> 
>>> When this listener is attached to a Component, like an ImageView for 
>>> example, if you get through the ImageView quickly with the mouse pointer 
>>> and then cross it again quickly, the method Transition#getPercentComplete 
>>> will get screwed, the second time the transition is started 
>>> getPercentComplete will report 1 when it should report 0. I've tested this 
>>> many times, before calling Transition#start, getPercentComplete reports 0, 
>>> when calling start and checking the value of getPercentComplete from the 
>>> Transition#update method it reports 1.
>>> 
>>> I've got no clue on what's happening here, placing a breakpoint inside the 
>>> Transition#start method reports currentTime - startTime == 0, but checking 
>>> again when it gets to the Transition#update method currentTime - startTime 
>>> == 1.
>>> 
>>> Perhaps I've anticipated on saying this is a bug for Transitions, perhaps 
>>> is my code what's causing problems, but I just don't have a clue on how to 
>>> fix this.
>>> 
>>> Please, if anybody's able to reproduce this, let me know so we can find a 
>>> solution. I've attached the ScaleTransition here in case there are users 
>>> not subscribed to the dev mailing list.
>>> 
>>> Thanks in advance!
>>> Edgar Merino
>>> <ScaleTransition.java>

Reply via email to