[Newbies] Mophic scripts tiles vs textual code
Bert Freudenberg
bert at freudenbergs.de
Mon Jun 4 15:53:37 UTC 2007
I'm not sure what exactly you want to achieve. "adding a method to a
class" is how you approach things in Smalltalk. "Scripting an object"
is what you do in Etoys. These two do not go well together, you have
to choose. Etoys tile scripting is *not* an introduction to Morphic
programming. It's a different world.
- Bert -
On Jun 4, 2007, at 15:00 , David H. Shanabrook wrote:
> This is getting clearer. So would a better approach be to add a
> method for this class? Would I add a method for PasteUpMorph such
> as showa: polyb. Looking at the following script, showa method
> would show self, and hide the argument polyb? Then when writing
> the morph code I can refer to this new method?
>
>
>
> On 4 Jun 2007, at 07:10, Bert Freudenberg wrote:
>
>> Etoys is a layer on top of Smalltalk, so in most cases you can
>> (unfortunately) not use the regular Smalltalk coding tools
>> directly. OTOH, it's Smalltalk after all so of course you *can*
>> access everything ;)
>>
>> Also, the way you phrased it, it seems you may have missed the
>> distinction between the the "player" which is the object that gets
>> scripted, and the "morph" which is its costume. That distinction
>> is not relevant to Etoys users but important if you do Smalltalk.
>>
>> The simplest thing to reference the *player*, the equivalent to
>> "PolyB" in a textual scriptor, is
>>
>> References at: #PolyB
>>
>> To get at the *morph*, use
>>
>> (References at: #PolyB) costume
>>
>> Now that only works for morphs that actually *have* a player, that
>> is, the morphs that are scripted.
>>
>> To reference any morph (and we're leaving the Etoys world with
>> this) is to enable the "create textual references to dropped
>> morphs" option in the Workspace's menu next to its close button.
>>
>> - Bert -
>>
>> On Jun 4, 2007, at 12:51 , David H. Shanabrook wrote:
>>
>>> Thanks, this worked and helped.
>>>
>>> So to extend this, and help my understanding, how do I refer to a
>>> morph in a workspace? If I named the morph polyB, and I do
>>> something like "hide PolyB" in the workspace it asks about PolyB.
>>>
>>>
>>> On 3 Jun 2007, at 14:26, Bert Freudenberg wrote:
>>>
>>>> On Jun 3, 2007, at 19:50 , David H. Shanabrook wrote:
>>>>
>>>>> Hi.
>>>>>
>>>>> I am writing some simple morphic scripts. It would be
>>>>> convenient to use smalltalk directly, so I toggle the script to
>>>>> directly enter the code. But I am having problems, as it is
>>>>> not working. If I uses tiles to create a script and then
>>>>> toggle over to text mode, the script looks like this for script
>>>>> "showa":
>>>>>
>>>>> showa
>>>>> self setX: PolyZb getX.
>>>>> self setY: PolyZb getY.
>>>>> self setHeading: PolyZb getHeading.
>>>>> PolyZb hide.
>>>>> self show
>>>>>
>>>>> I think when I type the script in directly it doesn't know how
>>>>> to reference PolyZb (a polygon object I created).
>>>>
>>>> You need to reference an object at least once in another
>>>> object's tile script to make it "known" to the scripting system
>>>> (*). After that, you can just type the name.
>>>>
>>>>> Any help? How does this translation between morph object's
>>>>> name and the internal SmallTalk name happen?
>>>>
>>>> It's "Smalltalk", btw., with a lower-case "t".
>>>>
>>>> - Bert -
>>>>
>>>> (*) More precisely, #uniqueNameForReference must have been sent
>>>> to the object to put it into the global registry named
>>>> "References".
More information about the Beginners
mailing list