I've found an oddity with a simple script. I've attached a JPG of the
script, which is the only one I've created in the image. Basically, the
object is to track the mouse. If its X/Y is not equal to the mouse's X/Y
it changes its own X/Y by one.
If I set the script to fire an even number of times per second, it works.
If I set it to fire an odd number of times, it bobbles. It goes to the
right place, then moves off it by one, then goes to the right place.
As if the update of the X/Y occurs out of synch with the event firing.
Great job finding oddities. Keep up the good work.
The key to the movement oddity is in the width and
heigth of the morph. The etoy x and y of the morph are
the center or nearly the center. Which means that when
the morph has an odd width or in this case heigth
either the corner or the center will not be on an
integer boundry. World's mouse x and mouse y are the
cursor point. And that is always integer. Obviously,
somehow, this is causing the inequality to fail after
the morph has been moved. And so it will adjust one
way at one tick and the other way at the next.
If there are an even number of ticks. It will bobble
twice as much but end up in the same place each time
its displayed. We don't see it.
A work around is to adjust your morphs width and
height so that they are both even and then the morph
will be rock steady when it gets to the cursor point.
A good way to demostrate the relationship would be to
use a ruler morph as the test morph. And try it with
different heights and widths.
> Thanks, Jerome!
> Any thoughts on detecting mouse clicks?
Sure since you asked.
First, I need some more info. When you say mouse
clicks what are you talking about?
I know this sounds silly but I have a good reason for
asking. In Etoys you can set a script to be run on
mouse down or mouse up. Which should do for many
In the innards of squeak you can make distinctions
between click (an uninterupted mouse down, mouse up
sequence), double click ( two uninterupted sequences),
a startdrag interuption, and a timeout interuption.
AFAIK eToys does not provide for the latter so one
needs to get by with the former.
The innards also provide for checking on whether the
red (left) yellow ( right ) or ( blue ) button was
pressed . Etoys does not provide a way to test which
button AFAIK. Someone else may know more about the
etoy capabilities. I got lured to the innards side of
squeak after getting frustrated by the limitations of
So, knowing this can you describe what you wish to
achieve more precisely?