Fragen zu EToys - Wie bekomme ich die Mausposition in einem Script? - Wie kann ich ein Skript triggern, wenn das Objekt gedreht wird? - Wie verhindert man einen Resize? - Wie kann man einen eigenen Morph-Typ dem Objekt-Manager zufügen? - Was macht man genau mit einem Skriptfenster? - Wie kann ich eigenes Vokabular definieren? Ich will einen Morph (z.B. "Koordinatensystem") definieren. Der soll "skalieren" u.ä. "verstehen" - Wie sorgt man dafür, dass Größenänderungen an die Submorphs weitergegeben werden? - Umgekehrt: Wie sorgt man dafür, dass ein Resize im Submorph an den Besitzer weitergegeben wird ODER wie sorgt man dafür, dass man einen Submorph nicht selektieren kann. - Wenn ich Morphs zusammensetze: Welche Koordinate verwende ich? Offensichtlich verwendet man in drawOn absolute Screenkoordinaten. Wenn ich aber mit addMorph einen Morph hinzufüge, erscheint dieser an einer 'position' relativ zur oberen linken Ecke des Morphs. Fragen zu Squeak - Wie kann ich sauber meine eigene Arbeit so speichern, dass ich sie wieder in ein neues Image laden kann? Das betrifft eigene Klassen und Morphs. |
Hallo Klaus,
Am Sunday 21 November 2004 22:48 schrieb Klaus Füller: > Fragen zu EToys > > - Wie bekomme ich die Mausposition in einem Script? > - Wie kann ich ein Skript triggern, wenn das Objekt gedreht wird? > - Wie verhindert man einen Resize? > - Wie kann man einen eigenen Morph-Typ dem Objekt-Manager zufügen? > - Was macht man genau mit einem Skriptfenster? > - Wie kann ich eigenes Vokabular definieren? Ich will einen Morph > (z.B. "Koordinatensystem") definieren. Der soll "skalieren" u.ä. > "verstehen" > - Wie sorgt man dafür, dass Größenänderungen an die Submorphs > weitergegeben werden? > - Umgekehrt: Wie sorgt man dafür, dass ein Resize im Submorph an den > Besitzer weitergegeben wird ODER wie sorgt man dafür, dass man einen > Submorph nicht selektieren kann. > - Wenn ich Morphs zusammensetze: Welche Koordinate verwende ich? > Offensichtlich verwendet man in drawOn absolute Screenkoordinaten. > Wenn ich aber mit addMorph einen Morph hinzufüge, erscheint dieser > an einer 'position' relativ zur oberen linken Ecke des Morphs. Dazu scheint ja nun so spontan gar niemandem etwas einzufallen. Mir jedenfalls fällt da auch nach Denken nichts ein. > > Fragen zu Squeak > > - Wie kann ich sauber meine eigene Arbeit so speichern, dass ich sie > wieder in ein neues Image laden kann? Das betrifft eigene Klassen > und Morphs. Geht das nicht ganz gut, wenn man ein Projekt speichert? Gruß Esther |
Esther Mietzsch wrote:
> Hallo Klaus, > > Am Sunday 21 November 2004 22:48 schrieb Klaus Füller: > >>Fragen zu EToys ... >> - Wie kann ich eigenes Vokabular definieren? Ich will einen Morph >> (z.B. "Koordinatensystem") definieren. Der soll "skalieren" u.ä. >> "verstehen" ... (Bitte schaut noch einmal am Ende dieser Mail. Ich begründe dort noch einmal, warum ich eigenes Vokabular definieren will...) Das ist die Kernfrage, ich kann sie nun genauer stellen: Eine Morph-Klasse kommuniziert mit dem EToy-System über die Klassenmethode #additionsToViewerCategories. Diese Methode gibt eine Liste von Einträgen mit, wie sie im "Viewer" erscheinen sollen. Das verstehe ich. Allerdings gelingt es mit nicht, Änderungen an dieser Liste vorzunehmen. Neueinträge erscheinen nicht im Viewer; Geänderte Einträge verschwinden aus dem Viewer. Das hängt mit der Sprachunterstützung zusammen. Neuerdings gibt es eine andere Möglichkeit, dass ein Morph über ein "Vocabulary" (oder ist es ein "EToyVocabulary"?) irgendwie dem Viewer sagt ... und da versiegt meine Intuition. Ein Hinweis gibt es von Ned Konz in squeak-dev am 24.Juni 04. Ich verstehe den zweiten Teil aber nicht richtig. Zusammenfassung: Ich will einen Morph erfinden, der neue Einträge im Viewer macht, die man in "Kacheln" verwenden kann, um Programme zu schreiben. Ich möchte das in der / für die neuste Version schreiben, wenn #additionsToViewerCategories veraltet ist, will ich es überhaupt nicht verwenden. Was will ich damit? Mir ist immer noch nicht ganz klar, ob die Scripting-Umgebung in Squeak dem Einstein-Spruch folgt "Make it as simple as possible *but not simpler* . Mir ist nicht klar, wie ich beispielsweise eine Schleife programmieren lassen kann. Beispielsweise könnte ich die Schülerinnen Programme schreiben lassen, die Wertetabellen und Säulendiagramme von Funktionen anzeigen. HILFE! klaus |
Klaus,
ich glaube, was additionsToViewer etc. angeht, bist du auf der squeak-dev-Liste besser aufgehoben - du schreibst ja selbst, du willst einen Morph erfinden... Ich hab grad mal selbst experimentiert. Einer eigenen Morphklasse einen Slot hinzuzufügen, ist kein Problem, einer bestehenden Klasse eine neue Viewer-Kategorie, auch nicht, aber da dann einen Slot oder einen Befehl hineinzubekommen, geht nicht, jedenfalls nicht beim SketchMorph. Hm... > Das hängt mit der Sprachunterstützung zusammen. Inwiefern? Was weißt du noch zu dem Thema? Kann hier jemand mal den Begriff Vokabular/EToy-Vokabular etwas näher erläutern? Zu deiner letzten Mail: >- Wie bekomme ich die Mausposition in einem Script? Playfield hat in der Viewer-Kategorie playfield die aktuellen Mauskoordinaten. >- Wie kann ich ein Skript triggern, wenn das Objekt gedreht wird? Indem du in seinem Owner (einem Spielfeld/Playfield) einen Test "Objekts richtung ~= Objekts alteRichtung" einbaust? - wobei Objekts alteRichtung eine Instanzvariable von Objekt ist - Instanzvariablen sind auch der Schlüssel zur Schleifenprogrammierung. >- Wie verhindert man einen Resize? Im Menü aller Morphe findest du "be locked/geschützt" und "resist being picked up/verankert" >- Wie kann man einen eigenen Morph-Typ dem Objekt-Manager zufügen? http://minnow.cc.gatech.edu/squeak/2998: Add a class side method #descriptionForPartsBin (browse implementors). This method returns a description of how to create and present a new morph. If you want several different entries in the Objects Tool, you can use #supplementaryPartsDescriptions. Wirf auch einen Blick in die Kategorie Morphic-Demo. >- Was macht man genau mit einem Skriptfenster?* ich glaub, es unterscheidet sich vom Spielfeld vor allem dadurch, dass es eigene, *private* Stop-Step-Go buttons hat. So kannst du mehrere unabhängige Skriptingbereiche in einem Projekt oder zb GeeMailMorph haben. > - Wie sorgt man dafür, dass Größenänderungen an die Submorphs > weitergegeben werden? > - Umgekehrt: Wie sorgt man dafür, dass ein Resize im Submorph an den > Besitzer weitergegeben wird ODER Du musst wohl neue Morphklassen ableiten, die sich in ihrer Step-Methode entsprechend verhalten. Oder aber du befasst dich mit layoutPolicy/Tablelayouts (z.B. im Menü eines Rechtecks, gibt ein Tutorial dazu auf Squeakmap), vielleicht reicht das ja schon? >wie sorgt man dafür, dass man einen Submorph nicht selektieren kann. Schwierig - selektieren von Morphs explizit zu verbieten... ist irgendwie nicht squeaklike - ALLES in Squeak lässt sich selektieren, inspizieren, kopieren - >- Wenn ich Morphs zusammensetze: Welche Koordinate verwende ich? > Offensichtlich verwendet man in drawOn absolute Screenkoordinaten. > Wenn ich aber mit addMorph einen Morph hinzufüge, erscheint dieser > an einer 'position' relativ zur oberen linken Ecke des Morphs. Das scheint nur so. Wenn du deinem Morph *keine* layoutPolicy zuweist und ihn *vor* dem addMorph:xyz schon verschiebst, erscheint der neu hinzugefügte xyz an 0/0 auf dem Screen. Im Morph-Protokoll geometry findest du alles, was du für relative/globale Koordinaten brauchst. > - Wie kann ich eigenes Vokabular definieren? Ich will einen Morph > (z.B. "Koordinatensystem") definieren. Der soll "skalieren" u.ä. > "verstehen" Zuerst mal geht's doch darum, eine *Message* "skalieren: faktor" zu implementieren? Schon mal Diego Gomez' Plotmorph probiert (bekommst du über Weltmenü->Öffnen->SqueakMap-Packageloader) Was hast du eigentlich vor? Willst du mit EToy einen Graph-Editor bauen? KRASS... Mich würd auch interessieren, wo, mit welcher Altersgruppe etc. du Squeak einsetzt. Viele Grüße Andreas Klaus Füller schrieb: > Esther Mietzsch wrote: > >> Hallo Klaus, >> >> Am Sunday 21 November 2004 22:48 schrieb Klaus Füller: >> >>> Fragen zu EToys > > ... > >>> - Wie kann ich eigenes Vokabular definieren? Ich will einen Morph >>> (z.B. "Koordinatensystem") definieren. Der soll "skalieren" u.ä. >>> "verstehen" > > ... > (Bitte schaut noch einmal am Ende dieser Mail. Ich begründe dort noch > einmal, warum ich eigenes Vokabular definieren will...) > > Das ist die Kernfrage, ich kann sie nun genauer stellen: > > Eine Morph-Klasse kommuniziert mit dem EToy-System über die > Klassenmethode #additionsToViewerCategories. Diese Methode gibt eine > Liste von Einträgen mit, wie sie im "Viewer" erscheinen sollen. Das > verstehe ich. > > Allerdings gelingt es mit nicht, Änderungen an dieser Liste vorzunehmen. > Neueinträge erscheinen nicht im Viewer; Geänderte Einträge verschwinden > aus dem Viewer. Das hängt mit der Sprachunterstützung zusammen. > Neuerdings gibt es eine andere Möglichkeit, dass ein Morph über ein > "Vocabulary" (oder ist es ein "EToyVocabulary"?) irgendwie dem Viewer > sagt ... und da versiegt meine Intuition. > > Ein Hinweis gibt es von Ned Konz in squeak-dev am 24.Juni 04. Ich > verstehe den zweiten Teil aber nicht richtig. > > Zusammenfassung: Ich will einen Morph erfinden, der neue Einträge im > Viewer macht, die man in "Kacheln" verwenden kann, um Programme zu > schreiben. Ich möchte das in der / für die neuste Version schreiben, > wenn #additionsToViewerCategories veraltet ist, will ich es überhaupt > nicht verwenden. > > Was will ich damit? > > Mir ist immer noch nicht ganz klar, ob die Scripting-Umgebung in Squeak > dem Einstein-Spruch folgt "Make it as simple as possible *but not > simpler* . Mir ist nicht klar, wie ich beispielsweise eine Schleife > programmieren lassen kann. Beispielsweise könnte ich die Schülerinnen > Programme schreiben lassen, die Wertetabellen und Säulendiagramme von > Funktionen anzeigen. > > HILFE! > > klaus > > > |
Andreas Gerdes wrote:
> Klaus, > > ich glaube, was additionsToViewer etc. angeht, bist du auf der > squeak-dev-Liste besser aufgehoben - du schreibst ja selbst, du willst > einen Morph erfinden... > > Ich hab grad mal selbst experimentiert. Einer eigenen Morphklasse einen > Slot hinzuzufügen, ist kein Problem, einer bestehenden Klasse eine neue > Viewer-Kategorie, auch nicht, aber da dann einen Slot oder einen Befehl > hineinzubekommen, geht nicht, jedenfalls nicht beim SketchMorph. > Hm... > > > Das hängt mit der Sprachunterstützung zusammen. > > Inwiefern? Was weißt du noch zu dem Thema? > Kann hier jemand mal den Begriff Vokabular/EToy-Vokabular etwas näher > erläutern? http://lists.squeakfoundation.org/pipermail/squeak-dev/2002-June/040953.html > > Zu deiner letzten Mail: > > >- Wie bekomme ich die Mausposition in einem Script? > Playfield hat in der Viewer-Kategorie playfield die aktuellen > Mauskoordinaten. Klar! Das Playfield weiß, wo die Maus steht! ... > > > - Wie sorgt man dafür, dass Größenänderungen an die Submorphs > > weitergegeben werden? > > - Umgekehrt: Wie sorgt man dafür, dass ein Resize im Submorph an den > > Besitzer weitergegeben wird ODER > > Du musst wohl neue Morphklassen ableiten, die sich in ihrer Step-Methode > entsprechend verhalten. Das habe ich inzwischen gemacht. Ich veranlasse bei den Kindern einen entsprechenden resize > Oder aber du befasst dich mit layoutPolicy/Tablelayouts (z.B. im Menü > eines Rechtecks, gibt ein Tutorial dazu auf Squeakmap), vielleicht > reicht das ja schon? Das muss ich mir noch genauer anschauen. > >wie sorgt man dafür, dass man einen Submorph nicht selektieren kann. > > Schwierig - selektieren von Morphs explizit zu verbieten... ist > irgendwie nicht squeaklike - ALLES in Squeak lässt sich selektieren, > inspizieren, kopieren - Das muss ich berücksichtigen. Ich habe aber herausgefunden, dass ich bei dem eingebetteten Morph nur dafür sorgen muss, dass #containsPoint immer false zurückgibt. Ich brauche das für eine Physik-Simulation. Dort sind die Koordinatenachsen aneinander gekoppelt und man sollte eine Achse nicht isoliert drehen können. > > > >- Wenn ich Morphs zusammensetze: Welche Koordinate verwende ich? > > Offensichtlich verwendet man in drawOn absolute Screenkoordinaten. > > Wenn ich aber mit addMorph einen Morph hinzufüge, erscheint dieser > > an einer 'position' relativ zur oberen linken Ecke des Morphs. > > Das scheint nur so. Wenn du deinem Morph *keine* layoutPolicy zuweist > und ihn *vor* dem addMorph:xyz schon verschiebst, erscheint der neu > hinzugefügte xyz an 0/0 auf dem Screen. > Im Morph-Protokoll geometry findest du alles, was du für > relative/globale Koordinaten brauchst. > > > - Wie kann ich eigenes Vokabular definieren? Ich will einen Morph > > (z.B. "Koordinatensystem") definieren. Der soll "skalieren" u.ä. > > "verstehen" > > Zuerst mal geht's doch darum, eine *Message* "skalieren: faktor" zu > implementieren? Das ist ja kein Problem. Ich kann den Morph leicht schreiben. Aber wie "redet" der mit dem Player / mit dem Viewer? > > Schon mal Diego Gomez' Plotmorph probiert (bekommst du über > Weltmenü->Öffnen->SqueakMap-Packageloader) Danke für den Tipp > > Was hast du eigentlich vor? > Willst du mit EToy einen Graph-Editor bauen? KRASS... Eigentlich will ich Bausteine, die die Kinder zusammensetzen können, um beispielsweiese Säulendiagramme, "Tortendiagramme", ... zu konstruieren. Außerdem "riecht" Squeak danach, dass man hier eine gute Geometriesoftware zusammenschreiben könnte. Gerade eine Geometriesoftware darf nicht nur interaktiv sein. Die Schüler müssen auch eine Konstruktion eintippen können, die vom System dann ausgeführt wird. > Mich würd auch interessieren, wo, mit welcher Altersgruppe etc. du > Squeak einsetzt. Ich habe das bereits in der 12 eingesetzt. Da haben wir "normal" in einem Browser programmiert. Jetzt will ich es in der 7 einsetzen in einer Programmier-AG, in der viele Mädchen sind. Viele der amerikanischen Beispiele sind mir zu simpel / zu sehr auf Grundschulniveau. Ich fange (morgen oder am Mittwoch nächste Woche) mit EToys an und verwende eine Auto-Simulation o.ä. Aber die Lerngruppe ist (zwar chaotisch aber) sehr interessiert und die Kinder werden schnell versuchen, mathematische Themen auf Squeak zu übertragen (ich bin auch deren Mathematiklehrer). Das ist auch meine Absicht. Ich möchte, dass sie sich in einem "Mathe-Land" bewegen und intuitiv lernen können. Das bedeutet hier aber lernen auf höheren (PISA-) Niveaus. Es geht nicht um Rechentrainer o.ä.; es geht darum, Proportionalität oder Funktionen oder Statistik oder Geometrie zu "erfahren". Die Beispiele, die ich auf Squeakfoundation etc finde, überzeugen mich nicht immer. Sie enthalten vom Konzept her noch zu viel des gleichen (zeichne einen Sketch und lasse ihn rumlaufen). |
Hallo Klaus,
> > Was hast du eigentlich vor? > > Willst du mit EToy einen Graph-Editor bauen? KRASS... > Eigentlich will ich Bausteine, die die Kinder zusammensetzen > können, um beispielsweiese Säulendiagramme, > "Tortendiagramme", ... zu konstruieren. > Außerdem "riecht" Squeak danach, dass man hier eine gute > Geometriesoftware zusammenschreiben könnte. > > Gerade eine Geometriesoftware darf nicht nur interaktiv sein. > Die Schüler müssen auch eine Konstruktion eintippen können, > die vom System dann ausgeführt wird. Das klingt spannend - ich will mich an solche Dinge im nächsten Jahr wagen. In Sachen Geometriesoftware bin ich bisher von geonext (http://geonext.uni-bayreuth.de/) und Cinderella (http://www.cinderella.de) inspiriert und ehrlich gesagt auch verwöhnt, weil das wirklich gute Sachen sind. Mich würde interessieren, wie Du da rangehst - und sicher auch Rita Freudenberg, die so etwas in Schulen in Sachsen-Anhalt macht/plant. Gruss, Christian Grune |
Free forum by Nabble | Edit this page |