changing border color of a slide image after clicking on it

David McFarlane mcfarla9 at msu.edu
Tue Oct 15 14:37:46 UTC 2013


Hans,

I am afraid that I do not quite follow all of this.  You refer to a 
Slide, a SoundOut, and an Inline, and I do not know how they all 
interrelate (in particular, I do not recall the complication of a 
SoundOut in your first post).  At this point I would need you to draw 
out a very clear diagram of your Procedure structure, along with 
clear specifications of what you want it to do.

That said, first, you do not understand your code correctly.  As 
written, it means the color of the image, which was clicked, changes 
to "cyan" and would later change to "black" at whatever time your 
hitObject gets redrawn, and goodness knows when that will happen.  If 
you want your inline code to make the BorderColor black, then you 
must also follow that line with another hitObject.Draw command, which 
is missing from your code without comment.  If you left that out on 
purpose (e.g., because the redraw will be taken care of by a later 
object), then you must add a comment to your code to explain that.

As far as settting the Sleep time to something like "remaining time 
of SoundOut", I suppose you might use some combination of Clock.Read, 
SoundOut.TargetOffsetTime, and GetNextTargetOnsetTime, but I think 
that a sloppy way to do things.  I would generally rather let the 
SoundOut handle the timing, and then follow that with more inline 
code to do whatever needs doing.  Again, we need a better look at 
your Procedure structure, you may need to revise it.

As a general strategy, I prefer to do as much as possible through the 
program structure & object properties, and to leave less to inline code.

Regards,
-- David McFarlane


At 10/15/2013 04:56 AM Tuesday, haslinger.hans11 at gmail.com wrote:
>Hallo David
>
>
>I've tried another code for the changing border color part:
>
>Dim hitObject As SlideImage
>Set hitObject = 
>CSlideImage(ExternalCausesSlide.States("Default").Objects(strHit))
>   hitObject.BorderColor = CColor("cyan")
>         hitObject.Draw
>         Sleep 5000
>   hitObject.BorderColor = CColor("black")
>
>
>If I understood this code right, that means the color of the 
>image,which was clicked, changes to "cyan "and after 5 sec it 
>changes back to "black".
>
>But now I have some problems timing the change of color and the sound file.
>
>At first I set "End Action" in the Slide Properties to "(none)" and 
>"End Sound Action" in the Slide Sound Out Properties to "Terminate".
>Then the color was only changing after the soundfile was over.
>
>Then I changed the settings to "End Action" -> Terminate and added 
>"Sleep 5000" in the inline code.
>Now the color changes immediately after clicking and stays for the 
>5sec before changing back to black
>But if the Sleep Time after clicking is longer then the remaining 
>time of the SoundOut, the SoundOut of the next Slide State isn't starting.
>
>Is there any command which sets the Sleep time to something like 
>"remaining time of SoundOut"?
>
>
>Best regards
>Hans

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com.
To post to this group, send email to e-prime at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/e-prime/525d5346.c819320a.0983.1c54SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
For more options, visit https://groups.google.com/groups/opt_out.



More information about the Eprime mailing list