Hallo, Squeakers!
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!!)
Mir scheint, daß in ETOYS nicht alle vordefinierten Objekte über ausreichende Methoden verfügen...
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?
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 ...
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?
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?
Und an wen melde ich am besten die unzähligen Bugs in Etoys, die ich gefunden habe, wird Etoys noch wirklich gepflegt und weiterentwickelt?
So, viele konkrete Fragen, bin dankbar für jede Antwort ....
Viele Grüße, Guido Stepken
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
Markus hat ja schon schön geantwortet, nur noch ein paar Anmerkungen:
On Mar 6, 2007, at 23:21 , Markus Gaelli wrote:
Wie übernehme ich z.B. aus Etoys objekten, wie Linie die Koordinaten in selber geschriebene Skripte
Im von Markus erwähnten OLPC-Etoys gibt es ein neues Vokabular für Polygone und Kurven, mit dem man auf Kontrollpunkte einzeln zugreifen kann.
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 ...
Versteh ich nicht ... du kannst doch Variablen einfach zuweisen?
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... ;-)
Sollte über den Halo eigentlich funktionieren.
Ersteres mit dem hell(!)gruenen Kopierknopf, also sogenannte deep copies machen, da kopierst Du auch die Skripte mit und ikannst diese so unabaengig aendern.
Mit der Umschalttaste kann man das eine oder andere Verhalten auswählen ... (steht auch in Hilfeballon des Kopiersmarties).
Und an wen melde ich am besten die unzähligen Bugs in Etoys, die ich gefunden habe, wird Etoys noch wirklich gepflegt und weiterentwickelt?
Die meiste Entwicklungszeit geht derzeit in die OLPC-Version. Die ist allerdings ein bewegliches Ziel, Squeakland ist stabil. Aufgrund der angepassten Fonts sieht es auf einem normalen Monitor recht ungewöhnlich aus - es wäre z.B. ein nettes Community-Projekt, diese Anpassungen konfigurierbar zu machen.
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.
Sind wir :) Es gibt auch noch den normalen Bugtracker für die Squeaklandversion:
(als Projekt "squeakland" auswählen).
- Bert -
squeak-ev@lists.squeakfoundation.org