Jump to content

Search In
  • More options...
Find results that contain...
Find results in...

Jeremy Rudd last won the day on January 6 2013

Jeremy Rudd had the most liked content!

Jeremy Rudd

  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Jeremy Rudd

  1. No issues Jack, glad you already have something in place. I saw SlowMo a while ago, its very intelligent, and I can see why it does pretty much everything the OutIn eases do. Can you explain why InOut is used more commonly than OutIn? The only time I've used InOut is to get a slow-startup, quick-motion and slow-stop effect. This feels more natural than either In/Out separately, so its useful when you're moving a big object onscreen and need to make it look smooth.
  2. Wierd. I just checked everything I have and I can't find them too in GSAP 10/11/12! I finally found it in another tweening engine. Apparently I merged these eases and use them on a daily basis. You should add them in pronto! https://www.box.com/s/m9y7mpayip9uxxndq7h1 Open the cheatsheet SWF, click on "Complete". Spot the OutIn equations? You'll find sources attached. Have fun.
  3. Hi all, In previous versions of GSAP you have the OutIn easing equations, such as BounceOutIn. In GSAP v12 however, I can't find these. Even in the main class Bounce, I have only spotted 3 variants of the ease : out, in, and inOut. Where's the OutIn versions of each ease? Do you have to use InOut as OutIn by reversing it in some way? Am I missing something here? Thanks
  4. I understand now. So since easing is not always started now (it could be started later with a delay) its impossible to save start values on this frame. And the overwriting / performance optimization is incredible as well. Thanks a lot.
  5. Totally awesome. I never knew TweenMax could tween multiple objects with a single command. Thanks for the superhero support, Jack, its really really appreciated!
  6. Thanks for trying so hard to help, Lasercode, and welcome to the greensock forums. I'm pretty new here too! The only thing I can think of is elegance and the fact you don't need to calc all the values upfront. So you can chain complex movements and let GS do the rest. - relative : to(pos), to("10") to ("-10") - absolute : to(pos), to(pos+10), to(pos) I can't really tell which is better.
  7. Nice ideas, but not exactly. I wanted to know the benefits of relative value tweening vs absolute. Why not use this: TweenMax.to(playerStone, 1, {x: stone.x + fieldWidth }); // absolute tweening Instead of this: TweenMax.to(playerStone, 1, {x: String(fieldWidth) }); // relative tweening Apart from the fact that its "easier" or "prettier" are there any functional benefits to doing it as a string instead of providing the values as absolute values.
  8. Hi all, TweenLite allows relative property tweening if the value is supplied as a string. When is this useful? Apart from the obvious like when you want to move an object offscreen you say "x:10000". But I would still prefer calculating the value absolutely. I simply can't see one real world application for relative tweening. Can anyone tell me if they used it? or where it would be good to use it? Maybe something like this? TweenLite.to(obj, {x: 50}); TweenLite.to(obj, {x: "10"}); // goes to 60 TweenLite.to(obj, {x: "-10"}); // goes back to 50 Is this a practical example or are there more? Thanks
  9. Smart one, back-to-back. I suppose this is a good idea to implement with chaining. And the power eases are just renamed versions of the old ones. (I think)
  10. Hi all, This is more of a user question rather than a technical one. Can you give me some usage examples of easeParams? Currently I think its only used for complex equations that need such params, although I still don't know how or when you'd use these config parameters : a Amplitude p Period o Overshoot Thanks
  11. Hi all, I recently stumbled upon MoveThis, another tweening engine. If you scroll down to the Gears demo, you'll see demos of Arch and Reverse, probably 2 tween easing equations. (I can't figure if they are just different names for existing Penner equations, although they are signed by "Todd Williams" aka taterboy) Would adding these eases into TweenLite be of any use? Unless they are already added. Also, MoveThis has a nice "easingStrength" parameter that apparently controls the amount of ease applied. Does TL have anything like that? Would it be a useful addition? Thanks
  12. Thanks a lot. I can see that I don't need such a thing.
  13. Hi, I've found this code inside the initTweenVals() function of GSAP v10. Why is it needed? I'm not using timeScale anywhere, but is the tweening engine using it for something? if (vars.timeScale != undefined && target.hasOwnProperty("timeScale")) { tweens[tweens.length] = new TweenInfo(target, "timeScale", target.timeScale, vars.timeScale - target.timeScale, "timeScale", false); //[object, property, start, change, name, isPlugin] } Thanks
  14. Understood. So its for both reasons. Unpredictable user code and reactivation (enable = true) of deleted tweens that makes it better for TweenLite to defer the deletion until its actually needed. Great job, Jack. No one would suspect the amount of thought-work that goes into everything.
  15. Beautiful. Absolutely fantastic. Never thought of it that way. Thanks a ton, jack! You really are a support superhero. No kidding.
  16. Hi, This is another architectural question, and relates to the starting part of the tween. In the code I'm looking at (GSAP v10), activate() and initTweenVals() is called on the first render(), and then the tween is marked as inited and not inited again. Why is activate() not done in the constructor itself? What are the implications of such a design? Would this cause errors in the tweening engine or the way its used? Yes, I understand that in the present system the tween is initialized on the next enterFrame event (ie. the frame after its created), but are there any advantages to doing it like this? What if the tween were inited on the same frame? Thanks
  17. Okay, although regarding the "its not so simple" part, I've opened up Tint and HexColors and Tint doesn't seem to have the code that hex colors has. Unless ColorTransform takes care of that. It seems to be linearly tweening the color using updateTweens(). Although I trust what you say, from a code perspective I still don't see how they are similar. HexColors seems to tween each prop (RGB) seperately, but Tint seems to do it together. Am I missing something? I don't mind complicated explanations, if you have the time. Thanks again, Jack.
  18. Okay, but I'm still interested in knowing about the loops thing.
  19. Very intelligent design. You really think far ahead. Do you mean loops in user code? Or loops in the TweenLite engine itself? Becasue in the v10 code I'm reading, it is the updateAll() function that either calls render() or deletes the tween. So if render() spliced a tween, would it not be just as good/bad as updateAll() splicing the tween?... Except that updateAll() would splice the tween the next frame (the frame after it got over), whereas splicing immediately would splice the tween this frame. Unless things are more complex in v12 that I'm not aware of? And since we're on the topic can you give me an example use case of the user restarting the tween? I can't imagine restarting a tween once its over (unless you need looping animations)
  20. Strange. I never knew local object vars are accessed faster. You must have near-infinite energy Jack! Half the project owners I know would have stopped answering my questions at this point! Thanks a lot!
  21. Okay, so basically TintPlugin is HexColors + More (whatever is needed for tinting), correct? So I'm not missing out on anything if I use TintPlugin? Thanks for the quick replies, Jack.
  22. Sorry to sound dumb, but the EndArray plugin only works with rounding, it has no other benefits? Apart from the better syntax? Thanks for the quick replies, Jack.
  23. You must be using an older version. (v11) The newest version supports it, as Jack points out. Why don't you try re-downloading it just to be sure and try it again? Or maybe the array you are passing is an array of arrays? Put a breakpoint and check exactly whats going in. In the worst case step through the killTweensOf function and see what's happening.