home *** CD-ROM | disk | FTP | other *** search
/ FCE Gold Plus / GOLD.iso / pc / shell.swf / scripts / __Packages / com / comp / ComponentMCQ.as next >
Text File  |  2007-10-16  |  9KB  |  296 lines

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