Flashing text

David McFarlane mcfarla9 at msu.edu
Thu Mar 5 02:45:15 UTC 2009


Greg,

I think things are about as messy as you fear, but I hope someone else 
has a better answer (or you come up with one yourself and then enlighten 
the rest of us).  I only want to remind you of a couple items that you 
may have already seen in your reading of the online E-Basic Help and 
that you might use as building blocks for your solution.

It looks like you are thinking of fiddling with the properties of the 
slide sub-objects.  If you do this in a script loop, then you might be 
able to use the slide .Draw method (as opposed to .Run) to just redraw 
the modified slide and not affect anything else.  Even better, visual 
slide sub-objects have their own .Draw method, so perhaps you can use 
that in script to redraw just the relevant sub-object after making your 
changes.  I have never explored any of this, so I would be interested to 
know if this works.  As far as keeping track of the state of each 
sub-object, if you do not want to do that in variables or an array, you 
might try changing some property of the sub-object that has no visible 
effect for your slide, e.g., change .BackStyle from opaque to 
transparent, or change .BorderColor while leaving .BorderWidth at 0.

Digging deeper, you can even make direct use of the Canvas object.  In 
fact, when you think of it, all the visual objects are just shortcuts to 
the Canvas object (which in turn is a shortcut to the DisplayDevice 
object).  So you can think of visual display objects in a hierarchy: 
the Slide object acts as a container for handling Text and Image 
objects, and Text and Image objects act as containers for the operations 
that they perform on a Canvas object.  We can always do things directly 
on the Canvas, but that rather defeats the whole purpose of E-Prime, so 
I would generally discourage that.  But for some situations that is the 
best solution.  (Sorry for the didactic digression.)

So yes, I might marshal these tools in some loop, whether looping with a 
List or inline script with an explicit Do...Loop (please do not use 
While...Wend, that went out with the Commodore 64).  (Oh, and for 
something really whacky, you can split up the Do.. and the ..Loop in two 
inline script objects that surround some EP design objects in your 
Procedure, though so far I have never had to resort to that myself.)

But after all that I get the feeling that I have missed your real 
question, because I think you already have the slide in a loop via a 
List object and know how to modify the properties you need, and you just 
want some help with the conditional structure.  Sorry about that.

-- David McFarlane, Professional Faultfinder


On Tuesday 3 March 2009 at 7:50 p.m. Greg Osenbach wrote:
> Does anyone out there know a good way to make text on a slide flash?  I 
> have several text items on a slide that gets looped through based on 
> responses.  For every item in the list the slide may be looped through 
> up to 10 times before moving on to the next list item.  One the the text 
> objects on the page only change when moving to a new list entry.  I 
> would like to make the text flash once to notify the subject that that 
> portion changed.
> 
> I have though about setting up a small loop around the slide with some 
> gotos and some labels and using SlideText1.ForeColor.  Basically setting 
> a boolean flag for FirstPass, changing the text color and setting the 
> slide to time out for 400ms or something.  then doing a check and if 
> First Pass is True, change the text to black and then jump to a label 
> above the slide and setting the timeout back to infinate.  Again after 
> the slide, check the flag and if false, then do not go back up to the label.
> 
> This looks like a bit of a rube goldberg machine to me.  There has got 
> to be a simpler way.  I just am not sure what it is.
> 
> Ideas?
> 
> Thanks,
> Greg


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en
-~----------~----~----~----~------~----~------~--~---



More information about the Eprime mailing list