Right, well, it's not just the slideshow. It's a bunch of animations running in a sequence (container divs with text or extra images).. the slideshow.show is executed somewhere in the middle of the chain.
However, the problem is more the thumbnail class. It attaches a click event to each thumbnail, which checks: a) if clicked thumbnail == this.current, then do nothing, return, don't fire anything. b) else, set the new current to the clicked one (maybe add a class to the element) and fire an event (so the outside world knows it can do stuff, e.g. it triggers the SlideShow instance). So when clicking the thumbnails I can prevent the slideshow from doing something and the main app too (both have a transitioning true/false flag), but it will still change the "current" var (this.current = index), because the class just checks if the clicked one is the same or different than the current one. Even though some animations are still running... you know, I started with thumbnail 3 and by the time the fx chain in the main app reaches the part where it does slideshowShow I already changed the current thumbnail in the thumbnail class 4 times and current is now 7 for example. When dealing only with SlideShow I could call the setCurrent method only after showComplete, not directly when clicking a thumbnail. But in this case SlideShow is only a part in the sequence of animations, that are created outside of the thumbnail class and are site specific (so shouldn't be put in a class that re-writes the methods in the thumbnail class or something). Pfff... confusing On Aug 20, 5:55 pm, Ryan Florence <rpflore...@gmail.com> wrote: > slideshowInstance.transitioning // true | false > > If it's true, it's animating, you can call show() all you want but nothing > will happen. So if you want to wait for it to finish before doing any of > your other things after an event is fired (like a click), just do > > if (!slideshow.transitioning) doStuff(); > > On Aug 20, 2010, at 7:59 AM, Rolf -nl wrote: > > > > > I wonder how you approach the following issue: > > > I have a bunch of thumbnails that are turned into an "thumbnail grid" > > by a small class. It grabs the container, stores all thumbs in a list, > > attaches events like a click that checks if the clicked on thumb is > > another one than the one set as current. If yes, it fires an event... > > can't get any easier. > > (Similar like Arieh's earlier post here: > >http://groups.google.com/group/mootools-users/browse_thread/thread/99...) > > > I've extended that class to add functionality so it works with Ryan > > Florence's SlideShow. The extended class also creates the basic stuff > > needed for SlideShow (a slide for each thumb) and does a little more. > > Now when you click a thumb, it tells me the slide is ready or not & > > waiting to be moved. Basically you have a gallery now. Can't get any > > easier. > > > The app picks up the fired event and starts with a queue of actions, > > basically a chain of fx, including a call to the SlideShow to slide in > > the clicked image. > > > The goal is to prevent thumb clicks (actions starting after the click) > > when the chain of fx is still running. When the slide is moving and > > other animation is still running I can keep clicking the thumbs which > > register as fresh clicks, since the thumbnail class attached a click > > event and the chain of fx run independant of this. > > > My current "solution" is also a cheap one: I place a div above the > > thumbnail grid with a transparent background so you can't click the > > thumbs below. When the chain is done I remove it and you can click the > > thumbs again. So even though this works, it doesn't feel like a proper > > solution. > > > OK- before I broke it up in parts, I butchered this together > > (deadlines!) in a big singleton class and I used a this._busy variable > > (set to true or false) and I could easily see in the thumbnail click > > event if my app was busy and return/do nothing if this was the > > case... > > > Your toughts are appreciated! > > > Rolf