On Aug 2, 2004, at 7:31 AM, Troy Rollins wrote:
On Aug 2, 2004, at 7:45 AM, Kevin Miller wrote:

It is now open source. All that is happening is that we're not supporting
it ourselves. We'll post it soon. We're not abandoning doing animation in
Rev, just saying that there are better ways to do it, such as using the
Player object. Look out for further improvements related to this area in
later releases.

Hey, that's great - both the open sourcing of the current, and the fact that RunRev is looking to make a better system.


FWIW - The specific "type" of animation I am referring to is more in the line of "interface animation." e.g. a panel of controls slides onto the screen, and each control fades up one after the other, after which the default control pulses... that sort of thing.

Troy,

Maybe this isn't exactly what you are after but I have used the following handlers for interface animation. I dynamically create the controls from a db in a group and then call the following to ease it onto the screen. I've found that scripted animation works very well in Revolution. If you want to see some really cool stuff track down some of samples that Scott Rossi has done.

Here is an example of using the libAnim_Ease function taken from my code:

libAnim_Ease id of group (pTarget & i), owner of group (pTarget & i), \
item 1 of loc of group (pTarget & i), tOffsetLeft + (width of group (pTarget & i) / 2), \
item 2 of loc of group (pTarget & i), item 2 of loc of group (pTarget & i), \
false, 10, 10


If you set pWithMsgs to "true" then make sure you have the following messages in the message path:

libAnim_Finished
libAnim_Update


-- Trevor DeVore Blue Mango Multimedia [EMAIL PROTECTED]




/**
* Performs the ease animation on an object
*
* @param pObjID objID ID of the object to animate
* @param pOwner obj Owner of the object to animate
* @param pStartX integer Starting x position
* @param pEndX integer Ending x position
* @param pStartY integer Starting y position
* @param pEndY integer Ending y position
* @param pWithMsgs boolean Whether to send updates to object on updates and finishing.
* @param pSpeed integer Speed of animation in milliseconds. How often message is sent.
* @param pNumSteps integer Number of steps to do the animation in
*/
on libAnim_Ease pObjID, pOwner, pStartX, pEndX, pStartY, pEndY, pWithMsgs, pSpeed, pNumsteps
local tTarget


  put "control id " & pObjID & " of " & pOwner into tTarget

set the libAnim["uCurrentStep"] of tTarget to 1
set the libAnim["uNumSteps"] of tTarget to pNumsteps
set the libAnim["uStepSizeX"] of tTarget to (pEndX - pStartX) / pNumSteps
set the libAnim["uStepSizeY"] of tTarget to (pEndY - pStartY) / pNumSteps
set the libAnim["uStepAngle"] of tTarget to 2 * pi / pNumSteps
set the libAnim["uSendMessages"] of tTarget to pWithMsgs
set loc of tTarget to pStartX, pStartY


  # Start animation
  libAnim_CosineInterpolation pObjID, pOwner, pSpeed
end libAnim_Ease


/**
* Animates an object using cosine interpolation
*
* @param pObj objID ID of control to animate
* @param pOwner obj Owner of the object (long owner)
* @param pSpeed integer How often to resend the message in milliseconds.
*/
on libAnim_CosineInterpolation pObjID, pObjOwner pSpeed
local tVelocityScale
local tTarget


  put "control id " & pObjID & " of " & pObjOwner into tTarget

put 1 - \
cos (the libAnim["uCurrentStep"] of tTarget * the libAnim["uStepAngle"] of tTarget) \
into tVelocityScale
put item 1 of loc of tTarget into tX
put item 2 of loc of tTarget into tY
set loc of tTarget to (tX + (tVelocityScale * the libAnim["uStepSizeX"] of tTarget), \
tY + (tVelocityScale * the libAnim["uStepSizeY"] of tTarget))
set the libAnim["uCurrentStep"] of tTarget to the libAnim["uCurrentStep"] of tTarget + 1
if (the libAnim["uCurrentStep"] of tTarget <= the libAnim["uNumSteps"] of tTarget) then
send "libAnim_CosineInterpolation" && pObjID &","& pObjOwner & "," & pSpeed to me in pSpeed milliseconds
else
if (the libAnim["uSendMessages"] of tTarget = true) then
send "libAnim_Finished" to tTarget
end if
end if
end libAnim_CosineInterpolation


_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to