Bug #128263, was updated on 2001-Jan-10 00:30
Here is a current snapshot of the bug.

Project: DynAPI 2
Category: API Extentions
Status: Open
Resolution: None
Bug Group: None
Priority: 5
Submitted by: marstr
Assigned to : nobody
Summary: PathAnimation.stopAnimation() bug (& patch)

Details: dynapi/util/pathanim.js

a bug in PathAnimation.stopAnimation() causes the onpathstop-event to fire
before some values were set
(this.playing=false)
before you couldn't slide a DynLayer directly in a
onpathstop eventListener (while this.playing still
was true)

i've moved the line 
if (this.dlyr != null) this.dlyr.invokeEvent("pathstop");

last in the method which solved the problem

PathAnimation.prototype.stopAnimation = function () {
        if (this.pathPlaying && this.pathPlaying.resets && !this.cancelThread &&
this.dlyr!=null)
this.dlyr.moveTo(this.pathPlaying[0],this.pathPlaying[1]);
        this.stop();
        delete this.pathPlaying;  // only deletes unstored path
        this.playing = false;
        if (this.dlyr != null) this.dlyr.invokeEvent("pathstop");
};

Follow-Ups:

Date: 2001-Jan-10 02:27
By: nobody

Comment:
Hi,
I'm glad to see pathanim tackled at last.What you're sayng is correct, and
is what I did in my modified pathanim (see:
http://www.resass.f2s.com/?menu=examples&node=1  or
http://www.richardinfo.f2s.com/?menu=examples&node=1 
under "dynapi.util.pathanim.chained.html" when the servers up again)

But I also had to add the method stopAnimation now() , which is identical,
but without
invoke-ing pathstop, so the animation could be manually halted without
starting the next one from the onpathstop listener:

PathAnimation.prototype.stopAnimationNow = function () {  
 if (this.pathPlaying && this.pathPlaying.resets && !this.cancelThread &&
this.dlyr!=null)
this.dlyr.moveTo(this.pathPlaying[0],this.pathPlaying[1]);
 this.stop();
 delete this.pathPlaying;  // only deletes unstored path
 this.playing = false;
};
 And I don't understand why slideBy() has been scrapped just because you
can do that manually aswell; you can do most of the 
API manually, but it's easier if you can just call a method. And we still
use moveBy(), so slideBy() keeps consistency, and saves changing existing
webcode when you upgrade you're API.

DynLayer.prototype.slideBy = function(x,y,inc,ms) { 
 if (x==null) x = 0;
 if (y==null) y = 0;
 this.slideTo(this.x+x,this.y+y,inc,ms);
};

Cheers,
Richard  :o

[EMAIL PROTECTED]
www.richardinfo.com
(Everything running on, and ported to the 19/12/2000 snapshot of DynAPI2)
-------------------------------------------------------

For detailed info, follow this link:
http://sourceforge.net/bugs/?func=detailbug&bug_id=128263&group_id=5757

_______________________________________________
Dynapi-Dev mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/mailman/listinfo/dynapi-dev

Reply via email to