Actionscript组件事件

Actionscript组件事件,actionscript,components,Actionscript,Components,我有一个项目,我试图在ActionScript中使用多个组件。我有一个数字步进器、文本输入和几个按钮。问题是它们在这些组件中发送的事件是相似的(例如“单击”事件),我在尝试处理这一问题时遇到了大量的范围问题。我所做的是在.as文件中创建一个函数,该函数有一个switch语句来捕获多个“click”事件,但由于某些原因,数值步进器仍然不能很好地处理其他事件,并一直将实例值设置为“undefined”,可能是因为存在范围问题 无论如何,这里有一部分代码,我认为这是有问题的地方 (变量:加号和减号是按

我有一个项目,我试图在ActionScript中使用多个组件。我有一个数字步进器、文本输入和几个按钮。问题是它们在这些组件中发送的事件是相似的(例如“单击”事件),我在尝试处理这一问题时遇到了大量的范围问题。我所做的是在.as文件中创建一个函数,该函数有一个switch语句来捕获多个“click”事件,但由于某些原因,数值步进器仍然不能很好地处理其他事件,并一直将实例值设置为“undefined”,可能是因为存在范围问题

无论如何,这里有一部分代码,我认为这是有问题的地方

(变量:加号和减号是按钮对象,它们通过在称为步长的数字步进器上加上或减去值来增加/减少专用变量。)


“trace”语句的输出步长更改为未定义“好吧,我犯了我的第一个错误。。。数字步进器不会发送“单击”事件,而只是发送“更改”事件。修正了这个问题,但是现在按钮仍然抛出事件来改变步进器的值,这真的很奇怪。发现了另一个问题。。数字步进器在失去焦点时抛出一个值,将该值设置为最大允许值。奇怪但越来越近。
addEventListener
的第二个参数是函数引用。“this”是对类本身的引用,它是这些组件的容器对象。这就是AS2中的工作方式,这就是我在这里使用的。我已经大致了解到,由于某种原因,当numericStepper失去焦点时,它会同时触发两个事件,第一个是焦点输出事件,第二个是没有数据的更改事件。NS只是有点古怪。
stepSize_NS.addEventListener("click", this);
plus_Btn.addEventListener("click", this);
minus_Btn.addEventListener("click", this);

function click(evt:Object):Void{
   switch (evt.target){
      case minus_Btn:
         command -= stepSize_NS.value;
         break;
      case plus_Btn:
         command += stepSize_NS.value;
         break;
      case stepSize_NS:
         trace("Step Size changed to " + stepSize_NS.value);
         //eventually this will do something else whenever the stepper chngs
         break;
      default:
         break;
      }//end switch
}//end function