[Squeak-fr] EToys: appel d'un script

Dreyfuss Pierre-André (EDU) pierre-andre.dreyfuss at edu.ge.ch
Mer 10 Oct 15:30:25 UTC 2007


Bonjour,

Je pense que exécute lance le script comme processus (une fois), de même que active lance le processus répétivement.
Une fois le processus lancé, l'instruction suivante est exécutée immédiatement, suivant le temps d'exécution du script lancé comme processus, l'instruction suivante peut être exécutée (ici Appel de script)  avant la fin du processus.

On peut faire exécuter un script  par un autre objet en modifiant la partie gauche (lr nom du 'receiver')  par substitution en lâchant une brique ayant le nom d'un objet. (halo brun d'un morph)  ou dans le menu du visualiseur article 'une brique représentant cet objet.

En principe, lors d'une copie, il faut affecter à une variable de type player la brique objet.copie pour avoir une poignée sur cet objet. La valeur de cette variable (brique saisie par la gauche (et non la flèche d'affectation)peut se substituer au nom du receiver,
ce qui permet de faire exécuter un script ou des commandes par l'objet copié.

IL est possible de prendre une  brique de commande là où elle se trouve dans un objet et de la placer dans un script en modifiant le receveur qui est par défaut celui de l'objet dans le visualiseur.

Par contre en agissant ainsi on peut demander à des objets de faire des choses qu'ils ne savent pas faire. Par exemple demander à une ellipse de stocker un texte :-(


Si la substitution d'objet est pour obtenir un changement de forme,il est beaucoup plus simple de changer le graphique de l'objet par leas commandes de la catégorie graphique pour les dessins, et la commande graphique dans la catégorie scène pour les scènes.



-------- Message d'origine--------
De: squeak-fr-bounces at lists.squeakfoundation.org de la part de Vincent Osele
Date: mer. 10/10/2007 13:19
À: squeak-fr at lists.squeakfoundation.org
Objet : [Squeak-fr] EToys: appel d'un script
 
Bonjour,

Dans un projet, on a un objet qui se copie et qui prend la place d'un autre qui lui s'efface.

Donc on a un script de ce type dans l'objet ancien:

nouveau.copie exécute init
ancien supprime

Et dans nouveau.init, on a:
nouveau.x <- ancien.x
nouveau.y <- ancien.y

nouveau était positionné à des endroit bizarre !
Après recherche, le problème vient du fait que le script init semble être appelé _après_ 'ancien supprime' !

J'ai remplacé par la commande exécute par l'appel direct du script et la c'est bon.


J'ai testé sur un objet les deux types d"appel:
objet exécute script1
objet script2

script1 s'execute après script2 placé pourtant avant !

Est-ce que c'est normal ?
Est-ce que ce comportement fait partie de la sémantique de exécute ?

Je trouve cela pas très intuitif et risqué (la preuve avec notre projet).

a+
Vincent




      _____________________________________________________________________________ 
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail 

-------------- section suivante --------------
Une pièce jointe non texte a été nettoyée...
Nom: non disponible
Type: application/ms-tnef
Taille: 4122 octets
Desc: non disponible
Url: http://lists.squeakfoundation.org/pipermail/squeak-fr/attachments/20071010/a97df860/attachment.bin


Plus d'informations sur la liste de diffusion Squeak-fr