AddListener problem

FriedrichLaher shared this problem 1 year ago
New

für mein Prolem https://help.geogebra.org/t...


sollte sich eigentlich eine "um die Ecke" -Lösung realisieren lassen: die Objekte, die eigentlich ein Skipt tragen sollen werden zunächst alle mit nur mit einem "Prefixnamen" erzeugt, und von einem AddListener umbenannt, am einfachsten durch numerisches Suffix . Der Klicklistener führt dann für die das NamensPrefix tragenden Objekte die gewünschten Operationen aus . Es folgt der Code wie ich in mir für den AddListener vorstelle, plaziert im "bei Mauseklick" eines nur dafür benutzten Punktes, der nach dem Setup am besten nichtmehr angezeigt wird .

delete "renamer"; 
if (typeof zlr == "undefined") eval("zlr = 0");
toeval = "function renamer(old){\
          if ( old == 'linkeSpitze')\
             ggbApplet.renameObject(old,old + ++zlr)}";

if ( typeof renamer == "undefined") eval(toeval);
ggbApplet.registerAddListener("renamer");
Leider funtionierte das nur sporadisch im webbased ggb , in der Download 6 classic nie . Habe auch, erfolglos versucht den AddListener setTimout verzögt zu registrieren .

Comments (2)

photo
1

noch mit dem Schönheitsfehler, daß in der Algebraanzeige alles mit diesem Skript erzeugte doppelt AUFSCHEINT, als derselbe Name 2mal,

und daß man höllisch achtgeben muß daß auch "Javescript" eingestellt ist BEVOR man beginnt einzutippen oder zu pasten

klappte der folgebde code, in dem man sich wohl wieder auf ein "delete" beschränken kann ( half ja nichts gegen die Doppelproduktion ), sowohl local offline als auch webbased .

Elegantere Vorschläge willkommen.

delete "renamer";delete "renamer";
delete "renamer"; // wenn geändert Voriges löschen
if (typeof zlr == "undefined") eval("zlr = 0")
;
toeval = "function renamer(old){\
          if ( old == 'linkeSpitze')\
             ggbApplet.renameObject(old,old + ++zlr)}";

if ( typeof renamer == "undefined") eval(toeval);

ggbApplet.registerAddListener("renamer");

window. 
setTimeout(ggbApplet.evalCommand , 1000,"linkeSpitze = 5");
window. 
setTimeout(ggbApplet.evalCommand , 1000,"linkeSpitze = {1,2,3}");

photo
1

Hallo ...

ich habe wenig Erfahrung mit JavaScript und den Listenern. Daher kann ich vermutlich nicht helfen. Die andere Freaks sind wohl noch im Urlaub!?

Allerdings ... wenn ich mal so schaue, was du schon so alles gemacht hast, frage ich mich:

1.) Was willst du eigentlich machen? Da sieht ja echt kompliziert aus!? Vielleicht gibt es eine einfachere Lösung nur hast du dich an dem JavaScript festgebissen?

2.) Vielleicht solltest du im englischen Forum schreiben, weil da mehr Leute mitlesen!? Kannst ja http://www.deepl.com für die Übersetzung nutzen und nur noch einmal rüberschauen, ob alles richtig übersetzt wurde.

Wie gesagt keine Lösung, nur eine Anregung ;-)

Grüße, Birgit

© 2020 International GeoGebra Institute