In TN8 we've introduced a way to inject custom "manipulatives" into an item. What's a manipulative? Technically, it's an object containing markup, script, and script libraries, used to create a dynamic element or "widget" in an item. From a practical standpoint, a manipulative will typically be an animation, a simulation, or some other type of component that a student can manipulate.
To create a manipulative in an item, you use a new type of <object>
that we've defined. An object of type text/plugin+xml
:
<object data="null" type="text/plugin+xml">
Inside this object tag you define <param>
tags to describe the markup
, script
and scriptlibs
parameters of the object. Here's an example of the
object tag used to create the tumbling tetronimo below.
<object data="null" type="text/plugin+xml"> <param name="markup" value="markup" valuetype="DATA"><![CDATA[ <div id="tetronimo_container" class="bordered" style="width:225px;height:200px;margin:8px auto 18px;"></div> ]]></param> <param name="script" value="script" valuetype="DATA"><![CDATA[ jQuery(function () { var paper = new Raphael(document.getElementById("tetronimo_container"), 225, 200); var tetronimo = paper.path("M 188 150 l 0 -50 l -50 0 l 0 -50 l -50 0 l 0 50 l -50 0 l 0 50 z"); tetronimo.attr({ "fill": "#526c7a", "gradient": "90-#526c7a-#64a0c1", "stroke": "#3b4449", "stroke-width": "10", "stroke-linejoin": "round", "transform": "r -90" }); tetronimo.animate({"transform": "r 360"}, 2000, "bounce"); }); ]]></param> <param name="scriptlibs" value="scriptlibs" valuetype="DATA"><![CDATA[ { "src":"public/javascripts/raphael-2.1.0.min.js","key":"raphael" } ]]></param> </object>
Get Responses: | [ Click Get Responses ] |
<?xml version="1.0" encoding="utf-8"?> <assessmentItem xmlns="http://www.imsglobal.org/xsd/imsqti_v2p1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsqti_v2p1 http://www.imsglobal.org/xsd/imsqti_v2p1.xsd" identifier="Order-vertical-1" title="Order - vertical" adaptive="false" timeDependent="false"> <responseDeclaration identifier="RESPONSE" cardinality="ordered" baseType="identifier"> <correctResponse> <value>DriverC</value> <value>DriverA</value> <value>DriverB</value> </correctResponse> </responseDeclaration> <outcomeDeclaration identifier="SCORE" cardinality="single" baseType="integer" /> <itemBody> <div class="row"> <div class="span6"> <h4 style="text-align:center;">Examine the Tumbling Tetronimo</h4> <object data="null" type="text/plugin+xml"> <param name="markup" value="markup" valuetype="DATA"><![CDATA[ <div id="tetronimo_container" class="bordered" style="width:225px;height:200px;margin:8px auto 18px;"></div> ]]></param> <param name="script" value="script" valuetype="DATA"><![CDATA[ jQuery(function () { var paper = new Raphael(document.getElementById("tetronimo_container"), 225, 200); var tetronimo = paper.path("M 188 150 l 0 -50 l -50 0 l 0 -50 l -50 0 l 0 50 l -50 0 l 0 50 z"); tetronimo.attr({ "fill": "#526c7a", "gradient": "90-#526c7a-#64a0c1", "stroke": "#3b4449", "stroke-width": "10", "stroke-linejoin": "round", "transform": "r -90" }); tetronimo.animate({"transform": "r 360"}, 2000, "bounce"); }); ]]></param> <param name="scriptlibs" value="scriptlibs" valuetype="DATA"><![CDATA[ { "src":"public/javascripts/raphael-2.1.0.min.js","key":"raphael" } ]]></param> </object> </div> <div class="span6"> <div class="well"> <p> The following F1 drivers finished on the podium in the first ever Grand Prix of Bahrain. Can you rearrange them into the correct finishing order? </p> <div class="pad8 whitebg"> <orderInteraction responseIdentifier="RESPONSE" class="dnd-vertical"> <simpleChoice identifier="DriverA">Rubens Barrichello</simpleChoice> <simpleChoice identifier="DriverB">Jenson Button</simpleChoice> <simpleChoice identifier="DriverC">Michael Schumacher</simpleChoice> </orderInteraction> </div> </div> </div> </div> </itemBody> <responseProcessing template="http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct" /> </assessmentItem>
The following F1 drivers finished on the podium in the first ever Grand Prix of Bahrain. Can you rearrange them into the correct finishing order?