Jason, I know this wasn't really your point, which was about having better docs and not the TweenEffect API specifically, but for what it's worth: the new effects for the next release of Flex, along with the Animation class (which is used instead of Tween), avoid the use of Function handles for easing and update/end handlers. Instead, we use interfaces for easing (and for type interpolation, a new concept in the effects). And events are sent through event handlers. Hopefully this all makes it more explicit what's happening to whom and what developers need to know about it...
Chet. From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Pan Troglodytes Sent: Thursday, September 11, 2008 9:32 AM To: flexcoders Subject: [flexcoders] Note to someone at Adobe who is in charge of documentation Hopefully, someone who reads this can maybe forward it or mention it to someone who is in the documentation department. My biggest problem with the documentation is when it comes to function signatures. Unfortunately in ActionScript, function signatures are not "typeable". If I was using Delphi, I could define TMyEventCallback = function (param1: String, param2: Integer):Boolean; So properties always just take a "Function" and it's up to the developer to figure out what the function should look like. Okay, I can deal with that, given proper documentation. But so many times in the docs, no function signature is listed. I understand that it's hard to create docs while the SDK is still under development, however there are plenty of examples of it in code that shipped with 2.0. For example, from TweenEffect: easingFunction property public var easingFunction:Function<../../Function.html> = null The easing function for the animation. The easing function is used to interpolate between the initial value and the final value. A trivial easing function would simply do linear interpolation, but more sophisticated easing functions create the illusion of acceleration and deceleration, which makes the animation seem more natural. If no easing function is specified, an easing function based on the Math.sin() method is used. The easing function follows the function signature popularized by Robert Penner. The function accepts four arguments. The first argument is the "current time", where the animation start time is 0. The second argument is the initial value at the beginning of the animation (a Number). The third argument is the ending value minus the initial value. The fourth argument is the duration of the animation. The return value is the interpolated value for the current time. This is usually a value between the initial value and the ending value. The value of this property must be a function object. Flex includes a set of easing functions in the mx.effects.easing package. This documentation is strange in that a paragraph is dedicated to describing the function signature, when just putting a function (currentTime:Number, startValue:Number, endValueMinusStartValue:Number, duration:Number):Number alone would have been far more useful than the whole paragraph. I'm not saying to ditch the paragraph, but a code examples is almost always preferable. Especially since that paragraph forgot to specify that the last two params and teh return param should be a Number. This was inferable from context in this case, but it is not always. These omissions tend to send me on a code hunt, looking for some place in the SDK where the function is called. For easingFunction, this was quite a bit of digging until I finally found defaultEasingFunction in Tween.as. I could put this in as a bug/enhancement, but it just seems like that falls short. I'd really just like to see more of a focus on doing it properly the first time and possibly doing a review of all documentation that mentions a property or method that involves a type Function. -- Jason