Welcome to Dream.In.Code
Getting Help is Easy!

Join 118,309 Programmers for FREE! Ask your question and get quick answers from experts. There are 1,685 online right now! We've got more than 500 tutorials and 2,000 snippets. Join and find out why Dream.In.Code is the #1 programming help community on the internet! Registration is fast and FREE... Join Now!



Flash Match The Pair Quiz Template (Action Script 1.0)

 
Reply to this topicStart new topic

Flash Match The Pair Quiz Template (Action Script 1.0), An Assessment Template for eLearning Course using XML

kunalS
post 18 Jul, 2008 - 03:06 AM
Post #1


New D.I.C Head

*
Joined: 18 Jul, 2008
Posts: 5


My Contributions


Hi All,

I am posting a assessment template use for an eLearning Course. Please check that out and let me know if anyone have better suggestion in same format.

Note :- I had created this using Action Script 1.0 and Flash Player 6.

CODE

Code for XML :-

<data>

    <title><![CDATA[<b>Match The Pairs</b>]]></title>

    <question><![CDATA[Match each step of the code change process with its order of occurrence.]]></question>
    
    <instruction><![CDATA[<font color="#990000">Match each step description given below with its appropriate step number. Click <b>Check My Answer</b> when you are done.</font>]]></instruction>
    
    <column_titles>
            <title><![CDATA[<b>Step Description</b>]]></title>
            <right_title><![CDATA[<b>Step Number</b>]]></right_title>
    </column_titles>
    <left_column_content>
        <text value="7" color="0x009900"><![CDATA[STEP 1]]></text>
        <text value="5" color="0x663300"><![CDATA[STEP 2]]></text>
        <text value="8" color="0x996699"><![CDATA[STEP 3]]></text>
        <text value="6" color="0xFF6600"><![CDATA[STEP 4]]></text>
        <text value="4" color="0x0066ff"><![CDATA[STEP 5]]></text>
        <text value="2" color="0x0000ff"><![CDATA[STEP 6]]></text>
        <text value="3" color="0x990000"><![CDATA[STEP 7]]></text>
        <text value="1" color="0x006600"><![CDATA[STEP 8]]></text>
                
    </left_column_content>
    
    <right_column_content>
        <text value="1"><![CDATA[Step 1]]></text>
        <text value="2"><![CDATA[Step 2]]></text>
        <text value="3"><![CDATA[Step 3]]></text>
        <text value="4"><![CDATA[Step 4]]></text>
        <text value="5"><![CDATA[Step 5]]></text>
        <text value="6"><![CDATA[Step 6]]></text>
        <text value="7"><![CDATA[Step 7]]></text>
        <text value="8"><![CDATA[Step 8]]></text>
    </right_column_content>
    
    
    <feedback>
        <correct_feed><![CDATA[<b>Correct</b>.<br><br>All your answers are correct.]]></correct_feed>
        <incorrect_feed><![CDATA[<B>Incorrect</B>.<br><br>One or more of your answers are incorrect. Click Solution to view the answers.]]></incorrect_feed>
    </feedback>
    
    

</data>

Code in Flash File

1) XML Parsing :-

stop();
this._visible = false;
xmlObject = new XML();
xmlObject.ignoreWhite = true;
xmlObject.onLoad = fn_ParseData;
xmlObject.load("MTF.xml");

var pageTitle,correctFeed,incorrectFeed;
var leftContent = new Array();
var rightContent = new Array();


function fn_ParseData() {
    var firstcld = xmlObject.firstChild;
    fn_parse(firstcld);
}

function fn_parse(level2)
{

    for(var i=0;i<level2.childNodes.length;i++)
    {
        if(level2.childNodes[i].nodeName == "title")
        {
             var level3 =level2.childNodes[i];
             pageTitle = level3.childNodes[0].nodeValue;
        }
        else if(level2.childNodes[i].nodeName == "instruction")
        {
             var level3 =level2.childNodes[i];
             dtxt_instruction.htmlText = level3.childNodes[0].nodeValue;
            
        }
        else if(level2.childNodes[i].nodeName == "question")
        {
             var level3 =level2.childNodes[i];
             Question_txt.htmlText = level3.childNodes[0].nodeValue;
        }
        else if(level2.childNodes[i].nodeName == "left_column_content")
        {
             var level3 =level2.childNodes[i];
             for(var j=0;j<level3.childNodes.length;j++)
             {
                leftContent[j] = new Object();
                
                leftContent[j].value = level3.childNodes[j].attributes.value;
                leftContent[j].color = level3.childNodes[j].attributes.color;
                leftContent[j].text = level3.childNodes[j].childNodes[0].nodeValue;
             }
        }
        else if(level2.childNodes[i].nodeName == "right_column_content")
        {
             var level3 =level2.childNodes[i];
             for(var j=0;j<level3.childNodes.length;j++)
             {
                rightContent[j] = new Object();
                
                rightContent[j].value = level3.childNodes[j].attributes.value;
                rightContent[j].text = level3.childNodes[j].childNodes[0].nodeValue;
             }
        }
        else if(level2.childNodes[i].nodeName == "column_titles")
        {
             dtxt_leftTitle.htmlText  = level2.childNodes[i].childNodes[0].childNodes[0].nodeValue;
             dtxt_rightTitle.htmlText  = level2.childNodes[i].childNodes[1].childNodes[0].nodeValue;
        }
        else if(level2.childNodes[i].nodeName == "feedback")
        {
            correctFeed   = level2.childNodes[i].childNodes[0].childNodes[0].nodeValue;
            incorrectFeed = level2.childNodes[i].childNodes[1].childNodes[0].nodeValue;
        }
    }
    
dtxt_instruction.autoSize = true;
dtxt_instruction._y = Question_txt._y + Question_txt._height + 5;
mc_background._y = dtxt_instruction._y  -2;
mc_background._x = dtxt_instruction._x  -2;
mc_background._height = dtxt_instruction._height  +2;

dtxt_leftTitle._y = mc_background._y + mc_background._height+15;
dtxt_rightTitle._y = dtxt_leftTitle._y;    

play();
}

2) Functional Code :-

var lastLeftSelected = undefined, lastRightSelected = undefined;
var enableRight = false;
function fn_initialize() {
    var y_start = dtxt_leftTitle._y+dtxt_leftTitle._height + 5;
    var toAdd = y_start;
    var Gap = 5;
    for (var i = 0; i<leftContent.length; i++) {
        var tempStr = "mc_leftColumn"+i;
        mc_leftColumn.duplicateMovieClip(tempStr, 500+i);
        var tempMc = eval(tempStr);
        tempMc.number = leftContent[i].value;
        tempMc.color = leftContent[i].color;
        tempMc.refOfRightContent = null;
        tempMc._x = 49;
        tempMc._y = toAdd;
        tempMc.dtxt.autoSize = true;
        tempMc.dtxt.text = leftContent[i].text;
        toAdd = (tempMc._y+tempMc._height+Gap);
        tempMc.mc_radio.mc_dot._visible = false;
        tempMc.btn.onPress = fn_leftColumnSelected;
        createEmptyMovieClip("Scene"+i, 700+i);
        tempMc.scene = eval("Scene"+i);
    }
    var y_start = dtxt_leftTitle._y+25;
    var toAdd = y_start;
    for (var i = 0; i<rightContent.length; i++) {
        var tempStr = "mc_rightColumn"+i;
        mc_rightColumn.duplicateMovieClip(tempStr, 600+i);
        var tempMc = eval(tempStr);
        tempMc._x = 500;
        tempMc._y = toAdd;
        tempMc.dtxt.autoSize = true;
        tempMc.dtxt.text = rightContent[i].text;
        toAdd = (tempMc._y+tempMc._height+5);
        tempMc.number = rightContent[i].value;
        tempMc.mc_radio.mc_dot._visible = false;
        //tempMc.btn.onPress = fn_rightColumnSelected;
        tempMc.btn.enabled = false;
        tempMc.refOfLeftContent = null;
    }
    createEmptyMovieClip("forSwapDepths", 850);
    mcFeedback.swapDepths(forSwapDepths);
    done_reset._y = toAdd-5;
    done_reset._x = 760;
}
function fn_leftColumnSelected() {
    lastLeftSelected.mc_radio.mc_dot._visible = false;
    var parent = this._parent;
    parent.mc_radio.mc_dot._visible = true;
    lastLeftSelected = parent;
    if (enableRight == false) {
        enableRight = true;
        fn_enableRightButtons();
    }
    if (lastLeftSelected.refOfRightContent == lastRightSelected) {
        lastLeftSelected.scene._visible = false;
        lastLeftSelected.refOfRightContent.refOfLeftContent = null;
        lastLeftSelected.refOfRightContent = null;
    }
    fn_enableDisable();
}
function fn_rightColumnSelected() {
    lastRightSelected.mc_radio.mc_dot._visible = false;
    var parent = this._parent;
    parent.mc_radio.mc_dot._visible = true;
    lastRightSelected = parent;
    if (lastRightSelected.refOfLeftContent == null) {
        fn_drawLine();
        lastRightSelected.refOfLeftContent = lastLeftSelected;
        lastLeftSelected.refOfRightContent.refOfLeftContent = null;
        lastLeftSelected.refOfRightContent = lastRightSelected;
    } else if (lastRightSelected.refOfLeftContent == lastLeftSelected) {
        lastRightSelected.refOfLeftContent.scene._visible = false;
        lastRightSelected.refOfLeftContent.refOfRightContent = null;
        lastRightSelected.refOfLeftContent = null;
        trace("in this condition");
    }
    fn_enableDisable();
}
function fn_enableRightButtons() {
    for (var i = 0; i<rightContent.length; i++) {
        var tempStr = "mc_rightColumn"+i;
        var tempMc = eval(tempStr);
        tempMc.btn.enabled = true;
        tempMc.btn.onPress = fn_rightColumnSelected;
    }
}
function fn_validate() {
    var allCorrect = true;
    for (var i = 0; i<rightContent.length; i++) {
        var tempStr = "mc_leftColumn"+i;
        var tempMc = eval(tempStr);
        if (tempMc.number == tempMc.refOfRightContent.number) {
            tempMc.mc_radio.mc_remark.gotoAndStop("tick");
        } else {
            tempMc.mc_radio.mc_remark.gotoAndStop("cross");
            allCorrect = false;
        }
    }
    if (allCorrect == false) {
        mcFeedback.gotoAndStop("lbl_solution");
        mcFeedback.feedback_text.htmlText = incorrectFeed;
    } else {
        mcFeedback.gotoAndStop("lbl_close");
        mcFeedback.feedback_text.htmlText = correctFeed;
    }
    fn_disableAllButton();
}
function fn_disableAllButton() {
    done_reset.gotoAndStop(1);
    for (var i = 0; i<rightContent.length; i++) {
        var tempStr = "mc_rightColumn"+i;
        var tempMc = eval(tempStr);
        tempMc.btn.enabled = false;
    }
    for (var i = 0; i<leftContent.length; i++) {
        var tempStr = "mc_leftColumn"+i;
        var tempMc = eval(tempStr);
        tempMc.btn.enabled = false;
    }
}
function fn_drawLine() {
    temp = lastLeftSelected.scene;
    temp._visible = true;
    var_color = lastLeftSelected.color;
    temp.clear();
    temp.beginFill(var_color, 100);
    temp.lineStyle(0, var_color, 100);
    var point = new Object();
    point.x = lastLeftSelected.mc_radio.mc_dot._x;
    point.y = lastLeftSelected.mc_radio.mc_dot._y;
    lastLeftSelected.mc_radio.localToGlobal(point);
    temp._x = 0;
    //point.x;
    temp._y = 0;
    //point.y;
    temp.moveTo(point.x, point.y);
    point.x = lastRightSelected.mc_radio.mc_dot._x;
    point.y = lastRightSelected.mc_radio.mc_dot._y;
    lastRightSelected.mc_radio.localToGlobal(point);
    temp.lineTo(point.x, point.y);
    temp.lineTo(point.x, point.y+1);
    point.x = lastLeftSelected.mc_radio.mc_dot._x;
    point.y = lastLeftSelected.mc_radio.mc_dot._y;
    lastLeftSelected.mc_radio.localToGlobal(point);
    temp.lineTo(point.x, point.y+1);
    temp.lineTo(point.x, point.y);
    temp.endFill();
}
function fnShowAnswers() {
    for (var i = 0; i<rightContent.length; i++) {
        var tempStr = "mc_leftColumn"+i;
        var tempMc = eval(tempStr);
        tempMc.mc_radio.mc_remark.gotoAndStop(1);
        lastLeftSelected = tempMc;
        tempMc.number--;
        lastRightSelected = eval("mc_rightColumn"+tempMc.number);
        trace("lastLeftSelected   "+lastLeftSelected);
        fn_drawLine();
    }
}
function fn_enableDisable() {
    for (var i = 0; i<rightContent.length; i++) {
        var tempStr = "mc_rightColumn"+i;
        var tempMc = eval(tempStr);
        trace("i = "+i+" "+tempMc.refOfLeftContent);
        if (tempMc.refOfLeftContent == null) {
            break;
        }
    }
    if (i == rightContent.length) {
        done_reset.gotoAndStop(2);
        done_reset.btn_submit.onRelease = fn_validate;
    } else {
        done_reset.gotoAndStop(1);
    }
}

fn_initialize();
this._visible = true;



Please find source file for above code here Attached File  Match.zip ( 499.14k ) Number of downloads: 80


So, please go through this and let me know about the template. If anyone have new to share on this please reply back as it always good to learn new. I will be waiting for your response. Thanks in advance.
User is offlineProfile CardPM

Go to the top of the page


kunalS
post 21 Jul, 2008 - 01:42 AM
Post #2


New D.I.C Head

*
Joined: 18 Jul, 2008
Posts: 5


My Contributions


Hey Guys,

There is no reply from your side. Please revert back with something new. I am eagerly waiting for this.

Thanks in advance.
User is offlineProfile CardPM

Go to the top of the page

Fast ReplyReply to this topicStart new topic
Time is now: 10/10/08 11:43AM

Live Help!

Tutorials

Programming

Web Development

Reference Sheets

Code Snippets

Bye Bye Ads

Free DIC T-Shirt

T-Shirt Example

Related Sites

Monthly Drawing

Thumb Drive

Partners

Top Contributors

Top 10 Kudos This Month