[etoys-dev] How can I cause a script to be executed on an object when I click on it? (Beyond MouseDown)

Bert Freudenberg bert at freudenbergs.de
Tue Mar 29 07:43:26 EDT 2011

On 29.03.2011, at 12:49, Steve Thomas wrote:

> For example, I want to some buttons to transform a costume or set an objects color  and I want to click on the button and then be able to click on an object (or set of objects) and run a particular script on the objects I click on.
> I could program each object to perform a particular action on Mouse Down, but I would rather write the script once and then have that script execute on the object I click.  I was able to achieve this by using a Player variable watcher and then having a constantly running script that tests if the myPlayer != dot and if so, run the script on the Player variable value, then reset to dot. But besides looking ugly (the dot always shows) I can only run on one object at a time then have to click on the Player variable's watcher.
> Thanks,
> Stephen

Well, Etoys is really object-centric. So adding the mouseDown script to each object is the Right Thing to do. But if you want to "centralize" what actually happens when clicked, you could call a "dispatching" script and pass the object itself as argument. Give that script a parameter of type "Player" so it can execute to the current command.

I'm attaching an example project. To make a new command, just duplicate an existing one and change its "actOn:" script.

- Bert -

-------------- n?chster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.squeakland.org/pipermail/etoys-dev/attachments/20110329/8877e08c/attachment-0002.html>
-------------- n?chster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : MouseActions.003.pr
Dateityp    : application/x-squeak-project
Dateigröße  : 66560 bytes
Beschreibung: nicht verfügbar
URL         : <http://lists.squeakland.org/pipermail/etoys-dev/attachments/20110329/8877e08c/attachment-0001.bin>
-------------- n?chster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.squeakland.org/pipermail/etoys-dev/attachments/20110329/8877e08c/attachment-0003.html>

More information about the etoys-dev mailing list