dereference a string as a custom property...

Ken Corey ken at kencorey.com
Tue Feb 21 13:10:53 EST 2012


Hi All,

I'm making a silly little animate function for my app.

Let's say I have a grc "new".  I'd like to be able to animate it like this:

animate (the long name of grc "new", "loc 100,50;width 40%;height 
50%;foregroundColor 255,0,0",200)

How do I pass the name of a custom property, and then use it in a statement?

So, the intent of the function should be pretty clear:
Assuming n frames per second, we have nf = n*200/1000 frames to play with.
Each attribute should change 1/nf between the start value and the end value.

I'm making this up as I go, but something like the code below. Can 
anyone point out how to dereference the name of a custom property just 
after the asterisks?

-- pAtts and pTime is only passed the first time
on animate pObj,pAtts,pTime
   if the animating of pObj is false then
     -- set up animating
     -- make sure we always get at least 1 frame
     put max(n*pTime/1000,1) into nf

     split pAtts by ";" and space
     set the pAtts of pObj to pAtts
     repeat for each line aKey in the keys of pAtts
       -- this next line is where I'm stuck...how do I use
       -- the value of 'aKey' as the name of the custom prop
       -- instead of setting the custom prop name to be "aKey_delta"
       -- below? *******************************
       set the aKey&"_delta" of pObj to (<cur>-<new>)/nf
       set the timeslice of pObj to 1/nf
       set the numberOfFrames of pObj to nf
       set the curFrame of pObj to 1
     end repeat
     set the animating of pObj to true
     send "animate "&pObj to me in 1/nf milliseconds
   else
     -- we're animating, so the delta's should exist
     if the curFrame of pObj < the numberOfFrames of pObj then
       set the curFrame of pObj to (the curFrame of pObj + 1)
       put the pAtts of pObj into pAtts
       repeat for each line of the keys of pAtts
         -- do the math to modify the attributes by deltas
       end repeat
       send "animate "&pObj to me in 1/nf milliseconds
     end if
   end if
end animate

Thanks!

-Ken




More information about the use-livecode mailing list