Frage zur Konfiguration vom WSH Panel MOD

Begonnen von Spirit_of_the_ocean, 08. April 2009, 22:54:20

Vorheriges Thema - Nächstes Thema

tedgo

Hm, da kann ich nicht viel dazu sagen, weil ich Chronflow nicht benutze.
Hatte bislang aber nur wenige Crashs mit nicht veröffentlichten alpha-Versionen von WSH Panel mod, und das auch nur unter extremen Testbedingungen.
Die "Mängel" hat T.P Wang auch gleich für die veröffentlichten Versionen behoben.

Aber das Problem solltest du ihm vielleicht mal in seinem Thread auf hydrogenaudio mitteilen. Vielleicht hängt es ja doch irgendwie mit der Kombi WSH Panel mod/Chronflow zusammen. Obwohl ich die Schuld da eher bei Chronflow vermute.

Spirit_of_the_ocean

Ich hab jetzt schonw as schönes zusammen gebastelt. Aber oft weiß ich selber nicht was ich da tue.

tedgo

#32
Zitat von: Spirit_of_the_ocean in 18. April 2009, 16:56:21
Aber oft weiß ich selber nicht was ich da tue.

Das kenne ich... ;)
Es ist gar nicht so leicht, hinter das Prinzip zu kommen, wenn man durch andere Plugins die Nutzung (besser: den Missbrauch) von TitleFormatting gewöhnt ist.
Aber langsam steige ich dahinter :)
Das Problem ist nur, die Online-Tutorials die man zu JScript findet, sind oft nicht sonderlich hilfreich, da es in fast allen nur um Teilfunktionen innerhalb HTML/XML geht.
Wenn man aber mal das Prinzip verstanden und die dahinterstehende Logik begriffen hat, ist es gar nicht mehr so schwer.
Ich habe allerdings auch noch so manche Probleme mit einigen WSH Panel/foobar2000-spezifischen "Interfaces" und so manchen "Sonderwünschen", die ich in meine Scripts einbauen möchte...

TomPro

Hi, ich habe mich bis jetzt ein wenig als ;) Parasit hier eingenistet und von Euren Beispielen eine Menge gelernt und bin gerade dabei das gelernte in eine eigene WSH Panel Mod strotzende Ansicht zu verwurschteln. Da ich eigenlich das Programieren nie gelernt habe, ich aber einigermassen geschickt im enträtseln bin, sind mir (auch mit Hilfe einiger "Versuch und Irtum" Instanzen) viele Dinge klar geworden. DANKE.

Da ich schon eine gute Vorstellung habe wo ich hin will, weiß ich auch was mir noch alles an Wissen fehlt, aber das enträtseln macht mir halt spaß. Es wird sehr wahrscheinlich irgentwann der Punkt kommen wo mir aber auch das nicht mehr hilft und ich vielleicht um Rat bei komplexen Funtionsblöcken einholen muß, zunächst sind mir aber nur einige Notationsvariationen unklar über die ich gestolpert bin.

In dem Beispiel für die Buttons und Seekbar innerhalb eines Panels, welches ich aktuell (wiederstand ist zwecklos ;) ) assimiliere (V - Lebe lang und in Frieden) sind solche Zeilen um deren Erklärung ich bitten möchte:

this.img_normal = img_src && img_src.normal ? gdi.Image(img_src.normal) : null;
this.img_hover = img_src && img_src.hover ? gdi.Image(img_src.hover) : this.img_normal;
this.img_down = img_src && img_src.down ? gdi.Image(img_src.down) : this.img_hover;


Hier ist mir die Notation von "&&" klar (denke ich)
Wenn es das Objekt img_src gibt und gleichzeitig das Argument (?) .normal oder .hover ... dann weise dem Argument (oder doch Methode) .img_normal bzw den anderen die entsprechende Grafik mittels gdi.Image(...) zu, wenn nicht dann null oder eben so weiter.

Die logische UND Verknüpfung (&&) wird benutzt um eine Zuweisung für eine Variable, Objekt etc. zu steuern, aber es gibt eine Wirkung für die Ursache die mit && abgefragt wird

weiter unten in den Callbacks der Mousefunktionen heist es dann aber:

this.onClick = function () {
this.func && this.func(x,y);
}


oder aber z.B.

function on_mouse_move(x, y) {
var btn = buttonsTraceMouse(x, y);
if (btn != cur_btn) {
cur_btn && cur_btn.onMouseOut();
btn && btn.onMouseIn();
}
cur_btn = btn;
}


Hier giebt es auch eine UND Verknüpfung (&&), diesmal mit einer Funktion, aber wo ist die Zuweisung für die UND Abfrage (wenn es denn eine ist). Nach meinen bescheidenen Kenntnissen bedeutet doch:


true && true = true
true && false = false
false && true = false
false && false = false


und dieses Ergebniss kann ich nutzen um eine Aktion davon abhängig zu machen. Wo liegt also der der Nutzen einer && Verbindung wenn kein If oder = in der nähe ist. Bitte nicht lachen, wie gesagt bin ich keiner der das Programieren gelernt hat.

Bitte nicht böse sein, wenn das Thema hier ums Programieren im Allgemeinen und nicht dem WSH Panel im besonderen gilt aber hier bin ich nunmal auf diesen Umstand gestoßen und so glaube ich das ich hier eventuell Hilfe bekommen kann.

&& ( UND ;) )

Dies ist in diesem Forum mein erstes Posting, sonst bin ich ehr bei audiohq vertreten, also allen einen Dank die hier zur Vermehrung von Wwissen beitragen und von dem ich bis jetzt, und in Zukunft, partizipieren konnte. Sobalt der Samen des Wissens aufgegangen, und das gelernte in ein vorzeigbares Ergebniss erwachsen ist werde ich natürlich auch meinen Beitrag leisten und die Ernte wieder zur Verfügung zu stellen auf das der nächste Keim sprieße (keine Angst ich rede (schreibe) nicht immer so blumig, mir war gerade nur der Sinn danach :D)

Gruß TomPro


tedgo

In dem von dir genannten Fall ist das so, dass einmal cur_btn (also der aktuelle Button) aktiviert wird und gleichzeitig
cur_btn.onMouseOut() (also die Aktion des aktiven Buttons, in dem Fall "deaktiviere Tooltipp für den aktiven Button bei Verlassen des Buttons") ausgeführt werden soll.
Mit btn && btn.onMouseIn() wird angegeben, was geschehen soll, wenn die Maus auf einen Button zeigt (in dem Fall zeige Mousehover-Image und aktiviere den Tooltipp).
Deshalb - da zwei Sachen auf einmal geschehen sollen und das Panel ansonsten ja nicht weiß, wann welche Funktion (onMouseOut() oder onMouseIn()) ausgeführt werden soll - das &&.

Ich hoffe, das war halbwegs verständlich, ich versteh mich manchmal selbst nicht :D

TomPro

Danke erst einmal für die schnelle Antwort, jetzt muss ich erst mal wieder lernen und enträtseln. Hätte vielleicht doch beim Sudoku bleiben sollen ---- nein ein Scherz

Gruß TomPro

tedgo

#36
Na ja, meine Erklärung war eigentlich schlecht...

Eher so:
mit cur_btn wird zunächst mal cur_btn definiert (nicht aktiviert  ::)) und mit && cur_btn.onMouseOut() dann bestimmt, was geschehen soll.
So ist es eher richtig.
Und kürzer :D

fbuser

Sorry, tedgo, die erste Erkkärung war zwar verständlich, aber auch die zweite ist falsch.

Den Ausdruck btn && btn.onMouseIn(); könnte man auch so schreiben:
if(btn!=null) btn.onMouseIn();

Wenn nämlich btn==null würde der Aufruf von btn.irgendeinefunktion() zu einem Fehler führen.

Bei einem logischen && wird die rechte Seite nur dann ausgewertet, wenn die linke Seite den Wert true hat. Hat die linke Seite den Wert false spielt es keine Rolle, welchen Wert die rechte Seite hat, da das Ergebnis immer false ist.

Daher kann man eben auch btn && btn.onMouseIn(); verwenden, ohne dass eine Fehlermeldung erfolgt, falls btn den Wert null hat. Denn dann wird btn.onMouseIn(); nicht ausgeführt.

Der Wert null nimmt bei der Auswertung noch eine Sonderrolle ein, auf die ich hier aber nicht näher eingehe, da es am Ergebnis nichts ändert.

tedgo

Na ja, im Grunde meinte ich das ja mit meiner zweiten Erklärung.
cur_btn ("definiert" das "Vorhandensein" von cur_btn) && ("bestimmt" was dann geschehen soll) cur_btn.onMouseOut() (auszuführende Funktion).

Ich sag ja, mit Erklärungen hab ichs nicht so :)
Deine ist natürlich wesentlich besser.