From: <no...@so...> - 2001-01-10 10:26:56
|
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 ma...@ri... 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 |