glegris / pulpcore

Automatically exported from code.google.com/p/pulpcore
0 stars 1 forks source link

A TimelineEvent is *always* executed at the begining of a child Timeline #28

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
1. produce a new scene, in the load() method put the following code:
<code>
FilledSprite s = new FilledSprite(0,0,30,30,YELLOW);
add(s);

Timeline tl = new Timeline();
Timeline sec = new Timeline();
tl.after().move(s, 50,0,0,0,2000);
sec.move(s, 0,0, 100, 100, 2000);
final Int i = new Int(0);
sec.after().addEvent(new TimelineEvent(10) {
    @Override
    public void run() {
        i.set(i.get()+1);
        CoreSystem.print("run"+i.get());
    }   
});
tl.after().add(sec);
addTimeline(tl);
</code>
2. Execute the scene

We expect to see, in the following order:
1) The yellow square moves from (50,0) to (0,0), during 2 seconds.
2) The yellow scene moves from (0,0) to (100,100) during 2 seconds.
3) A "run1" line appears in the console.

What we actually see is:
1) The yellow square moves from (50,0) to (0,0), during 2 seconds.
2) A "run1" line appears in the console.
3) The yellow scene moves from (0,0) to (100,100) during 2 seconds.
4) A "run2" line appears in the console.
5) A "run3" line appears in the console.

Note that the repetition of run2 and run3 is probably related to issue 
27[1]
Also note that this happens only if the child Timeline 'sec' should happen 
in the middle of the father Timeline 'tl'.

This happens with the latest svn version

[1] http://code.google.com/p/pulpcore/issues/detail?id=27

Please provide any additional information below.

Original issue reported on code.google.com by elaz...@gmail.com on 1 Aug 2009 at 7:58

GoogleCodeExporter commented 9 years ago

Original comment by brack...@gmail.com on 2 Aug 2009 at 7:50