home *** CD-ROM | disk | FTP | other *** search
/ FCE Gold Plus / GOLD.iso / pc / fscommand / linux / main.swf / scripts / __Packages / com / comp / ComponentMCQ.as next >
Encoding:
Text File  |  2007-09-06  |  9.1 KB  |  301 lines

  1. class com.comp.ComponentMCQ extends MovieClip
  2. {
  3.    var objController;
  4.    var c_mCurrentSelection;
  5.    var c_arrObjChildren;
  6.    var objCallBackFunc1;
  7.    var objCallBackFunc;
  8.    function ComponentMCQ()
  9.    {
  10.       super();
  11.    }
  12.    function init()
  13.    {
  14.       var _loc1_ = this;
  15.       _loc1_._parent.tracker.text = "init called";
  16.       _loc1_._parent.btnCheckAnswer._visible = false;
  17.       _loc1_._parent.mcPopup._visible = false;
  18.       _loc1_._parent.mcPopup.stop();
  19.       _loc1_._visible = false;
  20.       _loc1_.c_arrObjChildren = new Array();
  21.       _loc1_.c_mCurrentSelection = null;
  22.    }
  23.    function addChild(_objChild, _strChildID, _bValue)
  24.    {
  25.       var _loc2_ = this;
  26.       var _loc3_ = _objChild;
  27.       if(typeof _loc3_ == "movieclip")
  28.       {
  29.          var bExist = false;
  30.          var _loc1_ = 0;
  31.          while(_loc1_ < _loc2_.c_arrObjChildren.length)
  32.          {
  33.             if(_loc2_.c_arrObjChildren[_loc1_] == _loc3_)
  34.             {
  35.                bExist = true;
  36.                break;
  37.             }
  38.             _loc1_ = _loc1_ + 1;
  39.          }
  40.          if(!bExist)
  41.          {
  42.             _loc2_.addEventsToChild(_loc3_);
  43.             _loc3_.strID = _strChildID;
  44.             _loc3_.bValue = _bValue;
  45.             _loc2_.c_arrObjChildren.push(_loc3_);
  46.          }
  47.       }
  48.    }
  49.    function addEventsToChild(_objChild)
  50.    {
  51.       var _loc1_ = this;
  52.       var _loc2_ = _objChild;
  53.       _loc2_.objController = _loc1_;
  54.       _loc2_.onRollOver = function()
  55.       {
  56.          this.objController.showRollOver(this);
  57.       };
  58.       _loc2_.onRollOut = function()
  59.       {
  60.          this.objController.showRollOut(this);
  61.       };
  62.       _loc2_.onPress = _loc2_.onReleaseOutside = function()
  63.       {
  64.          this.objController.showPress(this);
  65.       };
  66.       _loc2_.onRelease = _loc2_.onReleaseOutside = function()
  67.       {
  68.          this.objController.showRelease(this);
  69.       };
  70.       _loc2_.stop();
  71.    }
  72.    function showRollOver(_objChild)
  73.    {
  74.       var _loc1_ = _objChild;
  75.       _loc1_.useHandCursor = false;
  76.       if(_loc1_ != this.c_mCurrentSelection)
  77.       {
  78.          _loc1_.gotoAndStop("over");
  79.       }
  80.    }
  81.    function showRollOut(_objChild)
  82.    {
  83.       var _loc1_ = this;
  84.       var _loc2_ = _objChild;
  85.       if(_loc2_ != _loc1_.c_mCurrentSelection)
  86.       {
  87.          if(!_loc1_.c_bFadeOthers || _loc1_.c_mCurrentSelection == null)
  88.          {
  89.             _loc2_.gotoAndStop("up");
  90.          }
  91.          else
  92.          {
  93.             _loc2_.gotoAndStop("fade");
  94.          }
  95.       }
  96.    }
  97.    function showPress(_objChild)
  98.    {
  99.       this._parent.track.text = "showPress called";
  100.       _objChild.gotoAndStop("down");
  101.       this._parent.btnCheckAnswer._visible = true;
  102.    }
  103.    function showRelease(_objChild)
  104.    {
  105.       var _loc1_ = this;
  106.       if(_loc1_.c_bIsToggle && _objChild == _loc1_.c_mCurrentSelection)
  107.       {
  108.          _loc1_._parent.btnCheckAnswer._visible = false;
  109.          var _loc2_ = 0;
  110.          while(_loc2_ < _loc1_.c_arrObjChildren.length)
  111.          {
  112.             var _loc3_ = _loc1_._name.substr(-1);
  113.             _loc1_._parent["mcFeedback_" + _loc3_ + "_" + (_loc2_ + 1)].gotoAndStop("blank");
  114.             _loc2_ = _loc2_ + 1;
  115.          }
  116.          if(_loc1_.c_bFadeOthers)
  117.          {
  118.             _loc2_ = 0;
  119.             while(_loc2_ < _loc1_.c_arrObjChildren.length)
  120.             {
  121.                if(_objChild != _loc1_.c_arrObjChildren[_loc2_])
  122.                {
  123.                   _loc1_.c_arrObjChildren[_loc2_].gotoAndStop("up");
  124.                }
  125.                _loc2_ = _loc2_ + 1;
  126.             }
  127.          }
  128.          _loc1_.objCallBackFunc1.call(_loc1_,_objChild.strID,_loc1_.c_mCurrentSelection.strID);
  129.       }
  130.       else
  131.       {
  132.          if(_loc1_.c_bFadeOthers)
  133.          {
  134.             _loc2_ = 0;
  135.             while(_loc2_ < _loc1_.c_arrObjChildren.length)
  136.             {
  137.                if(_objChild != _loc1_.c_arrObjChildren[_loc2_])
  138.                {
  139.                   _loc1_.c_arrObjChildren[_loc2_].gotoAndStop("fade");
  140.                }
  141.                _loc2_ = _loc2_ + 1;
  142.             }
  143.          }
  144.          else
  145.          {
  146.             _loc1_.c_mCurrentSelection.gotoAndStop("up");
  147.             _loc1_.c_mCurrentSelection.enabled = true;
  148.             _loc1_.c_mCurrentSelection.tabEnabled = true;
  149.             _loc2_ = 0;
  150.             while(_loc2_ < _loc1_.c_arrObjChildren.length)
  151.             {
  152.                _loc3_ = _loc1_._name.substr(-1);
  153.                _loc1_._parent["mcFeedback_" + _loc3_ + "_" + (_loc2_ + 1)].gotoAndStop("blank");
  154.                _loc2_ = _loc2_ + 1;
  155.             }
  156.          }
  157.          _objChild.gotoAndStop("fade");
  158.          _loc1_.objCallBackFunc.call(_loc1_,_objChild.strID,_loc1_.c_mCurrentSelection.strID);
  159.          _loc1_.c_mCurrentSelection = _objChild;
  160.       }
  161.       _loc1_.objTimelineRef.getAttempted(_loc1_);
  162.    }
  163.    function freeze(bStatus)
  164.    {
  165.       var _loc2_ = this;
  166.       var _loc3_ = bStatus;
  167.       var _loc1_ = 0;
  168.       while(_loc1_ < _loc2_.c_arrObjChildren.length)
  169.       {
  170.          _loc2_.c_arrObjChildren[_loc1_].enabled = !_loc3_;
  171.          _loc2_.c_arrObjChildren[_loc1_].tabEnabled = !_loc3_;
  172.          _loc1_ = _loc1_ + 1;
  173.       }
  174.       _loc2_._parent.btnCheckAnswer.enabled = !_loc3_;
  175.       _loc2_._parent.btnCheckAnswer.tabEnabled = !_loc3_;
  176.    }
  177.    function processFeedback(_objChild)
  178.    {
  179.       var _loc1_ = this;
  180.       var _componentID = _loc1_._name.substr(-1);
  181.       var _loc2_ = Number(_objChild);
  182.       _objChild = _loc1_.c_arrObjChildren[Number(_objChild) - 1];
  183.       if(_objChild.bValue)
  184.       {
  185.          _loc1_._parent["mcFeedback_" + _componentID + "_" + _loc2_].gotoAndStop("correct");
  186.       }
  187.       else
  188.       {
  189.          _loc1_._parent["mcFeedback_" + _componentID + "_" + _loc2_].gotoAndStop("incorrect");
  190.       }
  191.       var _loc3_ = _loc2_;
  192.       _loc1_._parent.mcPopup._visible = true;
  193.       _loc1_._parent.mcPopup.gotoAndStop("instruction" + _loc3_);
  194.       _loc1_._parent.mcPopup["txtMessage" + _loc3_].text = _loc1_._parent["message" + _loc3_];
  195.    }
  196.    function reattempt(_objChild)
  197.    {
  198.       var _loc2_ = this;
  199.       var _loc1_ = 0;
  200.       while(_loc1_ < _loc2_.c_arrObjChildren.length)
  201.       {
  202.          _loc2_.c_arrObjChildren[_loc1_].enabled = true;
  203.          _loc2_.c_arrObjChildren[_loc1_].tabEnabled = false;
  204.          _loc2_.c_arrObjChildren[_loc1_].gotoAndStop("up");
  205.          _loc1_ = _loc1_ + 1;
  206.       }
  207.       _loc2_.c_mCurrentSelection = null;
  208.    }
  209.    function showCorrect()
  210.    {
  211.       var _loc2_ = this;
  212.       var _loc1_ = 0;
  213.       while(_loc1_ < _loc2_.c_arrObjChildren.length)
  214.       {
  215.          _loc2_.c_arrObjChildren[_loc1_].enabled = false;
  216.          _loc2_.c_arrObjChildren[_loc1_].tabEnabled = false;
  217.          _loc2_.c_arrObjChildren[_loc1_].gotoAndStop("up");
  218.          if(_loc2_.c_arrObjChildren[_loc1_].bValue)
  219.          {
  220.             var _componentID = _loc2_._name.substr(-1);
  221.             var _loc3_ = Number(_loc2_.c_arrObjChildren[_loc1_].strID);
  222.             _loc2_._parent["mcFeedback_" + _componentID + "_" + _loc3_].gotoAndStop("correct");
  223.          }
  224.          _loc1_ = _loc1_ + 1;
  225.       }
  226.    }
  227.    function setState(_objState)
  228.    {
  229.       var _loc2_ = this;
  230.       var _componentID = _loc2_._name.substr(-1);
  231.       var _loc1_ = 0;
  232.       while(_loc1_ < _loc2_.c_arrObjChildren.length)
  233.       {
  234.          _loc2_.c_arrObjChildren[_loc1_].gotoAndStop("up");
  235.          _loc1_ = _loc1_ + 1;
  236.       }
  237.       var _loc3_ = _objState.selected;
  238.       _loc2_.c_arrObjChildren[_loc3_ - 1].gotoAndStop("down");
  239.    }
  240.    function getState()
  241.    {
  242.       var _loc1_ = new Object();
  243.       var _loc2_ = this.getSelect();
  244.       _loc1_.selected = _loc2_;
  245.       _loc1_.feedback = !this.c_arrObjChildren[_loc2_ - 1].bValue ? "incorrect" : "correct";
  246.       return _loc1_;
  247.    }
  248.    function get onDeSelection()
  249.    {
  250.       return "NULL";
  251.    }
  252.    function set onDeSelection(_objValue)
  253.    {
  254.       this.objCallBackFunc1 = _objValue;
  255.    }
  256.    function setSelect(_strID)
  257.    {
  258.       var _loc2_ = this;
  259.       var _loc3_ = _strID;
  260.       _loc2_.reset();
  261.       var _loc1_ = 0;
  262.       while(_loc1_ < _loc2_.c_arrObjChildren.length)
  263.       {
  264.          if(_loc2_.c_arrObjChildren[_loc1_].strID == _loc3_)
  265.          {
  266.             _loc2_.showPress(_loc2_.c_arrObjChildren[_loc1_]);
  267.             _loc2_.showRelease(_loc2_.c_arrObjChildren[_loc1_]);
  268.             break;
  269.          }
  270.          _loc1_ = _loc1_ + 1;
  271.       }
  272.    }
  273.    function getSelect()
  274.    {
  275.       return this.c_mCurrentSelection.strID;
  276.    }
  277.    function reset()
  278.    {
  279.       var _loc2_ = this;
  280.       var _loc3_ = _loc2_._name.substr(-1);
  281.       _loc2_.c_mCurrentSelection = null;
  282.       var _loc1_ = 0;
  283.       while(_loc1_ < _loc2_.c_arrObjChildren.length)
  284.       {
  285.          _loc2_.c_arrObjChildren[_loc1_].gotoAndStop("up");
  286.          _loc2_.c_arrObjChildren[_loc1_].enabled = true;
  287.          _loc2_.c_arrObjChildren[_loc1_].tabEnabled = true;
  288.          _loc2_._parent["mcFeedback_" + _loc3_ + "_" + (_loc1_ + 1)].gotoAndStop("blank");
  289.          _loc1_ = _loc1_ + 1;
  290.       }
  291.    }
  292.    function get onSelection()
  293.    {
  294.       return "NULL";
  295.    }
  296.    function set onSelection(_objValue)
  297.    {
  298.       this.objCallBackFunc = _objValue;
  299.    }
  300. }
  301.