To template or to lock?

David Bovill david at architex.tv
Sat Feb 6 06:11:33 EST 2010


Pretty sure that setting a templateXXX to a bunch of properties is the way
to go if you need to repeatedly create the same type of object, but I was
wandering about one-off's? I'm looking at a community provided script - and
it used the templategraphic technique to create each object - like this:

   1. set the prop x of the templategraphic to n
   2. set the prop y of the templategraphic to m ....
   3. create the graphic
   4. reset templategraphic

In my not entirely scientific speed tests I get 168 ticks for the creation
of 100 objects using this technique. As fo the technique of simple creation
and locking the screenr:

   1. lock the screen
   2. create the graphic
   3. set prop x, y, z....
   4. unlock the screen

I get 94 ticks for the creation of 100 objects using the lock screen
technique for each object creation. I guess simple creation of the object is
not only a little safer (no forgetting to rest), but nearly twice as fast
(which is surprising).

Here are the two scripts:

on mouseUp
>    put the ticks into startTick
>    set lockmessages to true
>    repeat 100
>       set the foregroundcolor of the templategraphic to colour_GetRandom()
>       set the backgroundcolor of the templategraphic to colour_GetRandom()
>       set the style of the templategraphic to "rectangle"
>       set the linesize of the templategraphic to random (8)
>       set the opaque of the templategraphic to true
>       set the loc of the templategraphic to the loc of this cd
>
>       create graphic "Test"
>       reset templategraphic
>    end repeat
>    set lockmessages to false
>    put the ticks - startTick
> end mouseUp
>
> on mouseUp
>    put the ticks into startTick
>    set lockmessages to true
>    repeat 100
>       lock screen
>       create graphic "Test"
>       put it into createdGraphic
>
>       set the foregroundcolor of createdGraphic to colour_GetRandom()
>       set the backgroundcolor of createdGraphic to colour_GetRandom()
>       set the style of createdGraphic to "rectangle"
>       set the linesize of createdGraphic to random (8)
>       set the opaque of createdGraphic to true
>       set the loc of createdGraphic to the loc of this cd
>
>       unlock screen
>    end repeat
>    set lockmessages to false
>    put the ticks - startTick
> end mouseUp
>
> function colour_GetRandom
>    put random(255) into item 1 of someColour
>    put random(255) into item 2 of someColour
>    put random(255) into item 3 of someColour
>    return someColour
> end colour_GetRandom
>



More information about the use-livecode mailing list