Re: [Squeak-ev] Text über Kurve fließen lassen, etc. ?

Markus Gaelli gaelli at emergent.de
Die Mar 6 22:21:16 UTC 2007


Hallo Guido,
>
> Hat jemand ein Codesnipplet, wo Text entlang einer Kurve, Linie, rand
> eines gemalten Objektes oder über eine Ellipse fließt? (Wie Demo in
> Squeak 3.6!!)
Geht immer noch. Ellipse "aufmachen" (accept drops), Text  
reindroppen, Text >> fill owner's shape,
aus demselben Text>> add successor", dieses (leere) Textfeld in  
anderen Morph, auch diesen Text >> fill owner's shape,
et voila.... (obiges sind Menu Punkte im roten Halo)
>
> Mir scheint, daß in ETOYS nicht alle vordefinierten Objekte über
> ausreichende Methoden verfügen...
Yepp, da kann man noch beliebig viel verbessern.
>
> Sehr seltsam ist es, wenn man z.B. einen Taschenrechner baut, 3
> Textfenster hat, die man Eingabe1, Eingabe2, Ausgabe nennt, und dann
> einen +-Button bastelt, der die Inhalte addiert. Kein Problem - nur -
> lösche ich die beiden Textfenster und ziehe aus dem Objektbaukasten  
> neue
> hin, benenne sie gleich, so werden sie intern in Squeak mit  
> Eingabe3 und
> Eingabe4 bezeichnet, sodaß ich das Skript anpassen musste. Woran liegt
> das? Hatte die Garbage-Collection noch die Objektnamen behalten, und
> erhöht intern dann eigenständig die Zahl, oder woran liegt's?
In so einem Fall am besten Variablen (player) fuer den Rechner  
spendieren, dann hast Du vollen Zugriff (ich vermute, die beiden  
lagen noch im Trash, aber die Verbindung passiert ja aber auch nicht  
(zum Glueck!!) ueber Namen...)
>
> Weiterhin ist mir aufgefallen, daß z.B. im Image Tweak 3.8 eine
> gehübschte Variante von ETOYS drin ist, die sogar noch einige Dinge
> kann, die das normale EToys nicht kann, z.B. Bilder langsam  
> seitwärts zu
> rotieren....
>
> Ich möchte gerne EToys noch um einige Features erweitert sehen, hat
> jemand vielleicht ein Tutorial, welches mir einen Überblück über die
> internen Zusammenhänge von EToys gibt?  Es geht um folgendes:
>
> Wie übernehme ich z.B. aus Etoys objekten, wie Linie die  
> Koordinaten in
> selber geschriebene Skripte .... mir fehlt nämlich noch ein sich mit
> bewegender Pleuel zu meiner Kurbelwelle mit Zylinder ... den LineMorph
> habe ich ja schon gefunden, nur - er bietet mir keine Methoden für die
> xy-Koordinaten der Endpunkte an ... welche andere Methoden habe  
> ich? Ich
> würde gerne so praktische Kleinigkeiten noch ergänzen ... Auch weiß  
> ich z.B. nicht, wie ich Eingabe aus Textfenstern in eine Formel  
> übernehme, daß ich einen XY-Plot oder eine Kurvendiskussion eines  
> Polynoms 2. Grades z.B. mal machen kann....(nicht das Plotten des  
> Graphen ist das Problem, sondern die Übergabe der Werte aus  
> getNumericValues in eine in Etoys definierte Variable hinein ...

"To extend the vocabulary of a Morph, you can just add methods named  
like
additionsToVocabularyCategory* to the class side (look for such  
methods to
get an idea). For each item, you typically need a method in Player  
and the
corresponding method(s) in your Morph class.

For example, here is Morph class >>
additionsToViewerCategoryLayout
  "Answer viewer additions for the 'layout' category"

  ^#(
   layout
   (
    (slot clipSubmorphs 'Whether or not to clip my submorphs' Boolean  
readWrite
Player getClipSubmorphs Player setClipSubmorphs:)

   ))


So this adds the 'clipSubmorphs' slot to the 'layout' vocabulary  
category.
That slot (a pseudo-variable) is read/write, and is implemented by the
methods #getClipSubmorphs and #setClipSubmorphs on Player. Those  
methods just
call back to the morph that is the Player's costume:

Player>>getClipSubmorphs
  "Getter for costume's clipSubmorphs"
  ^ costume renderedMorph clipSubmorphs

The other kind of thing you can add (besides the pseudo-variable  
'slot' type)
is the 'command' type, as in:

additionsToViewerCategoryMiscellaneous
  "Answer viewer additions for the 'miscellaneous' category"
  ^#(
   miscellaneous
   (
    (command doMenuItem: 'do the menu item' Menu)
    (command show 'make the object visible')

These don't have an associated return value, but they can have a  
single typed
parameter."

Aus einer Mail von Ned Konz an die Squeak-Dev-liste.
>
> Was mich an Squeak 3.9 nervt ist, daß viele Projekte/Beispiele aus
> älteren Versionen einfach nicht laufen ...Balloon 3D stürzt ab ... nun
> Textverarbeitung und Tabellenkalkulation mit Squeak ist ja wirklich
> einfach ... Powerpoint, Access ist ja auch enthalten - wirklich  
> Klasse....
> Aber wenn ich mir diese Fenster gemalt habe, Daten speichere, alles
> wunderbar ... ich möchte jedoch, daß die Daten in ein CSV - Datei auf
> der Festplatte generell abgelegt werden ... mir behagt die Speicherung
> im Image nicht wirklich so gut ... auch die mit dem Karteikasten nicht
> so ... wie stelle ich den um, damit ich größere Textobjekte indizieren
> und auf Festplatte speichere ... Haben die Squeak Planer das nicht
> vorgesehen?

Fuer Etoys ist 3.9 nicht das beste System, am einfachsten Du nimmst  
entweder das OLPC image,
oder das Teil von Squeakland.

Wenn Du lieber was mit Tweak machen moechtest, dann das neueste  
Croquet...

>
> Und noch eine Frage liegt mir am Herzen bezüglich Siblings ... Ich
> programmiere ein kurzes Billiard-Skript, kein Problem, die Kugeln  
> laufen
> perfekt, mit Kollision untereinander, verschwinden in den Pockets ...
> Dann mache ich Geschwisterchen (Siblings) In Etoys, auch wunderbar ...
> Kugel1... Kugel1s, Kugel2s .... und irgendwann stelle ich fest, daß  
> alle
> nur ein Gehirn haben, also an ein Skript gekoppelt sind. Wie  
> erzeuge ich
> unabhängige Kopien in EToys, die wirklich eigenständig editierbar  
> sind,
> und wie kopiere ich eigentlich Kacheln in andere Skripte?

Letzteres geht leider (noch?) nicht, war aber wahrscheinlich einer  
der treibenden Faktoren hinter Traits... ;-)
Ersteres mit dem hell(!)gruenen Kopierknopf, also sogenannte deep  
copies machen,
da kopierst Du auch die Skripte mit und ikannst diese so unabaengig  
aendern.
>
> Und an wen melde ich am besten die unzähligen Bugs in Etoys, die ich
> gefunden habe, wird Etoys noch wirklich gepflegt und weiterentwickelt?

Generell lieber viele Mails mit weniger Fragen, ich hab grad Sorge,  
dass sich gleichzeitig noch jemand die Muehe macht, waere ja schade.

Und wenn du echte Fehler mit Etoys findest, dann am besten schauen,  
ob sie auch in der OLPC Version sind, dort gibt es auch eine Trac Bug  
DB und eine
Mailingliste, die Kollegen sind Dir fuer jeden gefundenen Fehler  
dankbar.
>
> So, viele konkrete Fragen, bin dankbar für jede Antwort ....
>
Viele Gruesse und keep on Etoying...

Markus