Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:create:questions:assignment [25.02.2019 09:38] adminde:create:questions:assignment [29.09.2020 22:04] sophia.schauer
Zeile 92: Zeile 92:
 Die JavaScript-Funktion ''setCallbackSelect()'' (siehe oben) ist primär für die Filterführung ausgelegt. Daneben unterstützt die Zuordnungsaufgabe noch Ereignisse (Events), mit denen JavaScript direkt eingreifen kann. Die folgenden Ereignisse werden vom Container der Frage ausgelöst: Die JavaScript-Funktion ''setCallbackSelect()'' (siehe oben) ist primär für die Filterführung ausgelegt. Daneben unterstützt die Zuordnungsaufgabe noch Ereignisse (Events), mit denen JavaScript direkt eingreifen kann. Die folgenden Ereignisse werden vom Container der Frage ausgelöst:
  
-  * ''fixation'' -- Zwischen zwei Stimuli (Items) wird eine Pause gesetzt, welche z.B. ein Fixationskreuz anzeigt. Dieses Ereignis wird nur ausgelöst, wenn zwischen den Stimuli eine Pause eingestellt wurde. In der ''detail''-Eigenschaft des Ereignis stehen folgende Attribute zur Verfügung:+  * ''fixation'' -- Zwischen zwei Stimuli (Items) wird eine Pause gesetzt, welche z.B. ein Fixationskreuz anzeigt. Dieses Ereignis wird nur ausgelöst, wenn zwischen den Stimuli eine Pause eingestellt wurde. In der ''detail''-Eigenschaft des Ereignises stehen folgende Attribute zur Verfügung:
     * ''evt.detail.question'' -- Kennung der Frage     * ''evt.detail.question'' -- Kennung der Frage
     * ''evt.detail.item'' -- Kennung (ID) des Items, welches nach der Pause angezeigt wird     * ''evt.detail.item'' -- Kennung (ID) des Items, welches nach der Pause angezeigt wird
Zeile 111: Zeile 111:
     * ''evt.detail.item'' -- Kennung (ID) des Stimulus     * ''evt.detail.item'' -- Kennung (ID) des Stimulus
     * ''evt.detail.option'' -- Die ausgewählte Kategorie (beginnend mit 1)     * ''evt.detail.option'' -- Die ausgewählte Kategorie (beginnend mit 1)
 +
 +Mit der Funktion ''setPrimeTimes()'' kann die Darbietungsdauer für Primes (sofern diese für Stimuli/Items definiert wurden) individuell festgelegt werden.
 +
  
 ==== Beispiel: Audio abspielen ==== ==== Beispiel: Audio abspielen ====
Zeile 168: Zeile 171:
 </script> </script>
 </code> </code>
 +
 +
 +==== Zeiten für Primes variieren ====
 +
 +Das folgende JavaScript verändert die Darbietungsdauer für die Primes, welche in den Items 1, 2 und 3 definiert wurden. Die Zahl hinter der Item-Nummer gibt dabei die Anzeigedauer in Millisekunden (ms) an.
 +
 +<code html>
 +<script type="text/javascript">
 +window.addEventListener("load", function() {
 +    SoSciTools.questionnaire.AB01.setPrimeTimes({
 +        1: 2000,
 +        2: 500,
 +        3: 1000
 +    });
 +});
 +</code>
 +</script>
 +
 +Falls die Anzeigezeiten für die Primes dynamisch variiiert werden sollen, kann die Liste der Prime-Anzeigedauern auch im PHP-Code erstellt und anschließend mittels Platzhalter in den JavaScript-Code übernommen werden. Der JavaScript-Code würde dabei als Text (Darstellung: "HTML-Code") mit Platzhalter (''%primeTimes%'') im Fragenkatalog abgelegt.
 +
 +<code html>
 +<script type="text/javascript">
 +window.addEventListener("load", function() {
 +    SoSciTools.questionnaire.%question%.setPrimeTimes(%randomTimes%);
 +});
 +</script>
 +</code>
 +
 +Der PHP-Code könnte dann wie folgt aussehen. Er würde die zufällig gewählten Zeiten in den internen Variablen der Frage "AB03" speichern.
 +
 +<code php>
 +$times = [];
 +for ($i=1; $i<=20; $i++) {
 +  $randomTime = random(100, 1000);
 +  put(id('AB03', $i), $randomTime);
 +  $times[$i] = $randomTime;
 +}
 +
 +// Textbaustein AB02 einbinden und dabei
 +// die Platzhalter für Frage-Kennung und die Zeiten einsetzen
 +show('AB02', [
 +    '%question%' => 'AB01',
 +    '%randomTimes%' => json_encode($times)
 +]);
 +</code>
 +
  
  
de/create/questions/assignment.txt · Zuletzt geändert: 27.07.2022 14:35 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki