Thanks for bearing with me on this one Ryan. I have always struggled with mootools classes, possibly because I have only ever attempted to create them because I feel I "ought" to rather than because I "want" to. Clearly in this instance I am using your classes, but just be needing to adpat them to my needs and therefore forcing me to go through them line by line is really helping my understanding of how they work (give me a few weeks and I will wonder what all the fuss was about). I have been through several tutorials, but I must admit to have not found them as helpful as going though your code. Also thanks to your comments and helpful guidance I can see "why" you are doing things and making changes rather than just "doing" it.
"Loop's periodical doesn't need to be cleared or anything, it's got methods to handle all that for you: `stopLoop` and `startLoop`. " I must confess to have having tried to use the `stopLoop` and `startLoop` in one of my early attempts at resetting the delay but I clearly did something wrong. As for the camelCase function names, I must admit to not being a fan but if that is in the Mootools style guide who am I to argue.... Anyway, it all works now exactly as I wanted it :) Thanks again for all your help and for sharing your classes. Chris On 9 nov, 18:39, Ryan Florence <[email protected]> wrote: > Keep at it! Believe me, I'm still learning more about mootools every > day. My classes are getting a lot better than they used to be, but > even my crappy ones made developing so much more awesome. > > I made a few adjustments to your code. Loop's periodical doesn't need > to be cleared or anything, it's got methods to handle all that for > you: `stopLoop` and `startLoop`. > > Also, we were figuring out the next index in two places (`loop` and > `loop_next`.) So I pulled that logic out into it's own method so we > only have it in one place. > > Here's an example without altering functionality, you can see it's a > bit easier to read and deal with. > > http://mooshell.net/nTLZq/3 > > But I didn't like that if I stopped the loop, and then clicked "next" > or "back", it would restart. So I put a little conditional in there > to check if it was looping or not in the next and previous methods. > > I also renamed the methods from `loop_next` to `showNext` (and > `showPrevioius`) for two reasons: > 1) MooTools style guide is to use camelCase and > 2) the method won't necessarily restart the loop anymore, it simply > shows the next slide and lets the loop keep doing whatever it was > doing before. > > http://mooshell.net/nTLZq/4 > > Ryan Florence > > [Writing TextMate Snippets] (http://blog.flobro.com/) > > On Nov 9, 2009, at 2:28 AM, cbolson wrote: > > > > > Thanks Ryan. > > > That wasn't quite what I was after. Your code makes it loop in > > reverse order whereas what I wanted was it just to go back just by 1 > > "slide" then continue foward as before. I probably didn't explain > > myself very clearly :( > > > Anyway, I got it working by doing, as you said in that, rather than > > modifying the loop class, I added new methods to the class that > > implemented it. > > > I am using a variation of your slideshow (removed the side labels for > > my needs) so that is the class that I adjusted. If it is of any use > > to any body, I have put up a demo here:http://mooshell.net/nTLZq/2 > > > These are the methods that I added for "back" and "next" controls: > > > // move forward one item and reset timer > > loop_next:function(){ > > $clear(this.periodical); > > this.periodical = this.looper.periodical > > (this.options.delay,this); > > var nextIndex = (this.currentIndex == this.slides.length-1) ? > > 0 : this.currentIndex + 1; > > this.show(nextIndex); > > return this; > > }, > > // move back one item and reset timer > > loop_prev: function(delay){ > > $clear(this.periodical); > > this.periodical = this.looper.periodical > > (this.options.delay,this); > > var nextIndex = (this.currentIndex == 0) ? > > this.slides.length-1 : this.currentIndex - 1; > > this.show(nextIndex); > > return this; > > } > > > Once again, great stuff Ryan, thanks to your demos I feel that I am > > finally beginning to understand classes (don't laugh) > > > Chris > > > On 9 nov, 04:44, Ryan Florence <[email protected]> wrote: > >> You shouldn't have to touch Loop, just adjust your class that > >> implements it (though I did add one line to the setLoop method, so > >> you > >> might want to download it here:http://moodocs.ryanflorence.com/RpFlo/Loop) > >> . > > >> 1) Write a previous method in your implementing class that works with > >> Loop, just like the next method worked without the looping. > > >> 2) Call `myInstance.setLoop(this.previous, 500)`, or whatever delay > >> you want, and it will now loop your previous method. > > >> 3) If you're relying on `this.loopCount`, just drop in > >> `this.loopCount > >> = count - 2` in your previous method to increment it negatively. > > >> Check out the new test: > > >>http://ryanflorence.com/scripts/mootools/Loop/test/ > > >> Ryan Florence > > >> [Writing TextMate Snippets] (http://blog.flobro.com/) > > >> On Nov 8, 2009, at 4:24 PM, cbolson wrote: > > >>> Thanks Ryan, I shall be waiting patiently :) > > >>> On 8 nov, 23:47, Ryan Florence <[email protected]> wrote: > >>>> I've been thinking of doing something like that. I'll take a look, > >>>> see if I can come up with something. > > >>>> Ryan Florence > > >>>> [Writing TextMate Snippets] (http://blog.flobro.com/) > > >>>> On Nov 8, 2009, at 3:28 PM, cbolson wrote: > > >>>>> Great little class Ryan, thanks for sharing it! > >>>>> I am trying to adapt it slightly give it some "back" and "next" > >>>>> manual > >>>>> controls. > >>>>> The "next" I have achieved by simply calling the "looper" > >>>>> function, > >>>>> however I am having trouble getting it to roll back. > >>>>> Any suggestions as to how this could be done? > >>>>> I tried adding a further method to the class like this but with no > >>>>> luck: > >>>>> unloop: function(){ > >>>>> this.loopCount--; > >>>>> this.loopMethod(this.loopCount); > >>>>> return this; > >>>>> } > >>>>> Thanks, > >>>>> Chris > > >>>>> On 21 oct, 06:34, Ryan Florence <[email protected]> wrote: > >>>>>> Makes sense to me. Done. > > >>>>>> I actually made some posts about usingLoop(or any mixin, really): > > >>>>>>http://blog.flobro.com/#/posts/4-mootools-mixins-part-one-loop- > >>>>>> jshttp... > >>>>>> posts/5-mootools-mixins-part-two- > >>>>>> spriteanimation-jshttp://blog.flobro.com/#/posts/6-mootools- > >>>>>> mixins- > >>>>>> part-three- > >>>>>> simpleslideshow-js > > >>>>>> -Ryan Florence > > >>>>>> On Oct 20, 2009, at 9:07 PM, csuwldcat wrote: > > >>>>>>> What do you think about dropping the -ing on the start and stop > >>>>>>> calls? I say this only for length sake, take it or leave it :) > > >>>>>>> On Oct 19, 11:51 am, Rolf -nl <[email protected]> wrote: > >>>>>>>> Not looping anything right now, but I like it anyway :) > >>>>>>>> Also dig the wallpaper plugin, I think I can use it too which > >>>>>>>> saves > >>>>>>>> me > >>>>>>>> some time! > > >>>>>>>> Cheers > > >>>>>>>> On Oct 19, 8:22 pm, Ryan Florence <[email protected]> wrote: > > >>>>>>>>> Cool, thanks. > > >>>>>>>>> I plan on allowing users to have more than one library (at the > >>>>>>>>> moment > >>>>>>>>> you have to register twice for two libraries). I'll also be > >>>>>>>>> allowing > >>>>>>>>> users to make libraries public or private, since some classes > >>>>>>>>> are so > >>>>>>>>> application specific you don't necessarily want to share them. > > >>>>>>>>> On Oct 19, 2009, at 11:53 AM, Eneko Alonso wrote: > > >>>>>>>>>> The site looks good too... I signed up and soon will be > >>>>>>>>>> sharing > >>>>>>>>>> some > >>>>>>>>>> mootools snippets I have. > > >>>>>>>>>> On Sun, Oct 18, 2009 at 8:49 PM, Ryan Florence > >>>>>>>>>> <[email protected]> wrote: > >>>>>>>>>>> Thanks Fabio, > >>>>>>>>>>> Here's probably a better demo of is use: > >>>>>>>>>>>http://ryanflorence.com/scripts/mootools/InfiniteTicker/ > >>>>>>>>>>> test/ > >>>>>>>>>>> On Oct 18, 2009, at 4:21 PM, Fábio M. Costa wrote: > > >>>>>>>>>>> oh nice, i always wanted to implement a mixin class but i > >>>>>>>>>>> just > >>>>>>>>>>> cant > >>>>>>>>>>> find a > >>>>>>>>>>> generic case where it fits. > >>>>>>>>>>> Nice one! > >>>>>>>>>>> i see you got a lot of work in there Ryan. > >>>>>>>>>>> Thanks for your contributions! > >>>>>>>>>>> cya > > >>>>>>>>>>> -- > >>>>>>>>>>> Fábio Miranda Costa > >>>>>>>>>>> Solucione Sistemas > >>>>>>>>>>> Engenheiro de interface > > >>>>>>>>>>> On Sun, Oct 18, 2009 at 6:38 PM, Ryan Florence > >>>>>>>>>>> <[email protected]> wrote: > > >>>>>>>>>>>>http://moodocs.ryanflorence.com/RpFlo/Loop > > >>>>>>>>>>>> It seems several of my classes end up with some methods to > >>>>>>>>>>>> start, > >>>>>>>>>>>> stop, > >>>>>>>>>>>> and reset aloopthat's firing a function on a timer: image > >>>>>>>>>>>> galleries, news > >>>>>>>>>>>> tickers, twitter feeds, sprite animations, to name a few. > > >>>>>>>>>>>> Instead of writing out those methods every time, now I can > >>>>>>>>>>>> just > >>>>>>>>>>>> implement > >>>>>>>>>>>> Loopand I'm done. > > >>>>>>>>>>>> You can use it just like Options or Events in any class. > > >>>>>>>>>>>> Enjoy!
