skip to main
|
skip to sidebar
ACTION1
No hay publicaciones.
No hay publicaciones.
Inicio
Suscribirse a:
Entradas (Atom)
1
/*--------------VERSION CONTROL INFORMATION---------------------- Learning Interaction Hot Objects Component Developed by Dan Carr Quality Assurance by Andrew Chemey Last Modified for Flash 2004: July 6, 2003 Copyright 2003 Macromedia Inc. All rights reserved. ------------------END VERSION CONTROL-------------------------- Section 1: Event Handling Functions 1-1: onHOinit() // Initialize stage graphcis and scripts 1-2: onHOReset() // Handles reset button events 1-3: onHOButton() // Handles control button events 1-4: evalHO() // Evaluates interaction results Section 2: Initialize Objects and Arrays from user parameters Section 3: Initialize Session Tracking and Graphic States 3-1: Initialize this session with the SessionArray 3-2: Initialize HotObjects properties with the host script 3-3: Initialize stage assets 3-5: Hide component assets at runtime */ // SECTION 1: EVENT HANDLING FUNCTIONS // 1-1: Initialize the stage assets function onHOinit(){ var router = _parent.SessionArray[_parent.session]; var len = router.hot_objects.length; for (var i=0; i < len; i++){ _parent[router.hot_objects[i]].onPress = function() { if(router.scoreFlag != true){ router.setComponentState(router.Assets.ControlButton, true); router.setComponentState(router.Assets.ResetButton, true); router.setFeedback(1); this.hilite = new Color(this); transform2 = new Object(); transform2.ra = 100; transform2.rb = 204; transform2.ga = 100; transform2.gb = 0; transform2.ba = 100; transform2.bb = 0; transform2.aa = 20; transform2.ab = 255; restore = new Object(); restore.ra = 100; restore.rb = 0; restore.ga = 100; restore.gb = 0; restore.ba = 100; restore.bb = 0; restore.aa = 100; restore.ab = 0; if (this.finished != true){ this.hilite.setTransform(transform2); this.finished = true; this.selected = true; } } } } } // 1-2: Handles reset button clicks function onHOReset(){ var router = _parent.SessionArray[_parent.session]; var len = router.hot_objects.length; for(var i=0; i < len; i++){ with(_parent[router.hot_objects[i]]){ hilite.setTransform(restore); selected = false; finished = false; } } router.resetFlag = false; router.setFeedback(0); router.setComponentLabel(router.Assets.ControlButton, router.label_state); router.setComponentState(router.Assets.ControlButton, false); //router.setComponentState(router.Assets.ResetButton, false); } // 1-3: Handles control button clicks function onHOButton(){ var router = _parent.SessionArray[_parent.session]; if(!router.buttonFlag || router.buttonFlag == false){ router.setComponentState(router.Assets.ResetButton, false); evalHO(); var result = (router.result == "C") ? 2 : 3; router.setFeedback(result); } if(router.result == "C"){ if(!router.scoreFlag || router.scoreFlag == false){ if (router.correct_array.length > 1) { router.correct_response = "{"+router.correct_array+"}"; } else { router.correct_response = router.correct_array; } if (router.answer_array.length > 1) { router.student_response = "{"+router.answer_array+"}"; } else { router.student_response = router.answer_array; } router.sessionStop(); router.submitScore(); router.scoreFlag = true; } router.setNavigation(); }else if (router.result == "W"){ if(router.numOfTries > 1){ if (!router.resetFlag || this.resetFlag == false){ router.resetFlag = true; router.setComponentState(router.Assets.ResetButton, true); router.setComponentState(router.Assets.ControlButton, false); router.numOfTries--; } } else { if(!router.scoreFlag || router.scoreFlag == false){ if (router.correct_array.length > 1) { router.correct_response = "{"+router.correct_array+"}"; } else { router.correct_response = router.correct_array; } if (router.answer_array.length > 1) { router.student_response = "{"+router.answer_array+"}"; } else { router.student_response = router.answer_array; } router.sessionStop(); router.submitScore(); router.scoreFlag = true; } router.setNavigation(); } } } // 1-4: Evaluate user input and return the result function evalHO(){ var router = _parent.SessionArray[_parent.session]; var len = router.correct_response.length; var evalObj = new Array(); var answer_format = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m"); router.answer_array = new Array(); router.correct_array = new Array(); var v=0; for(var i=0; i < len; i++){ if(_parent[router.hot_objects[i]].selected == true){ evalObj[i] = true; router.answer_array[v] = answer_format[i]; v++; } else { evalObj[i] = false; } } var w=0; for (var j=0; j < len; j++){ if (router.correct_response[j] == true){ router.correct_array[w] = answer_format[j]; w++; } } for (var n=0; n < len; n++){ if (router.correct_response[n] != evalObj[n]){ router.result = "W"; break; } else { if((n+1) == len){ router.result = "C"; for(var i=0; i < len; i++){ _parent[router.hot_objects[i]].finished = true; } } } } } // SECTION 2: INITIALIZE OBJECTS AND ARRAYS FROM USER PARAMETERS Correct_Response = new Array(); hot_objects = new Array(); var z = 0; for(var j=0; j < 8; j++){ if(this["hoName"+(j+1)] != ""){ hot_objects[z] = this["hoName"+(j+1)]; Correct_Response[z] = this["Correct_Response"+(j+1)]; if(_parent[hot_objects[z]]) z++; } } Feedback_List = new Array(); Feedback_List[0] = Initial_Feedback; Feedback_List[1] = Correct_Feedback; Feedback_List[2] = Incorrect_Feedback; Feedback_List[3] = Evaluate_Feedback; Feedback_List[4] = Tries_Feedback; Assets = new Object(); Assets.QuestionField = Assets1; Assets.FeedbackField = Assets2; Assets.ControlButton= Assets3; Assets.ResetButton = Assets4; ButtonLabels = new Array(); ButtonLabels[0] = undefined; ButtonLabels[1] = ButtonLabels1; ButtonLabels[2] = ButtonLabels2; ButtonLabels[3] = ButtonLabels3; ButtonLabels[4] = ButtonLabels4; function toBoolean( str ){ if(typeof(str) == "boolean"){ return str; }else if(str.toLowerCase() == "true"){ return true; }else{ return false; } } if(toBoolean( Feedback ) == false || typeof(Number(Num_Of_Tries)) != "number"){ Num_Of_Tries = 1; } // SECTION 3: INITIALIZE SESSION TRACKING AND GRAPHIC STATES /* 3-1: Create a SessionArray to hold this session instance. If the SessionArray already exists, then add this session instance to a new index. */ if(!_parent.SessionArray){ _parent.session = 0; _parent.SessionArray = new Array(); } else { _parent.session++; } _parent.SessionArray[_parent.session] = new LToolBox(); var router = _parent.SessionArray[_parent.session]; // 3-2: Initialize DragDrop properties with the host script router.assets_path = eval(this._parent); router.Assets = Assets; router.interaction_id = Interaction_ID; router.interaction_type = "C"; router.question = Question; router.hot_objects = hot_objects; router.correct_response = Correct_Response; router.tracking = Tracking; router.weighting = Weighting; router.objective_id = Objective_ID; router.navigation = Navigation; router.navLabel = Go_To_Label; router.navAction = Go_To_Action; router.buttonLabels = ButtonLabels; router.feedback = Feedback; router.numOfTries = Num_Of_Tries; router.feedback_list = Feedback_List; router.buttonFlag = false; router.resetFlag = false; router.scoreFlag = false; // 3-3: Initialize the stage assets router.setTextField(Assets.QuestionField, Question); if(toBoolean( Feedback ) == false){ router.setTextField(Assets.FeedbackField, ""); } router.initControlButton(onHOButton); router.setFeedback(0); router.setComponentLabel(Assets.ResetButton, ButtonLabels[4]); router.setComponentState(Assets.ResetButton,false); router.setComponentListener(Assets.ResetButton, onHOReset); onHOinit(); router.sessionStart(); // 3-4: Hide the component graphics at runtime this._visible = false;