Actionscript 3 Switch语句和moviecsframe
我试图在as3中创建一个switch语句,它跟踪MovieClips currentFrame,并根据其到达的帧更改textFields内容 我想我已经用if和else语句很好地解决了这个问题,但是我想在case开关上集中注意力。下面是我的代码,虽然我希望得到一些更好的建议,因为我无法想象这是一种正确的方法Actionscript 3 Switch语句和moviecsframe,actionscript-3,switch-statement,Actionscript 3,Switch Statement,我试图在as3中创建一个switch语句,它跟踪MovieClips currentFrame,并根据其到达的帧更改textFields内容 我想我已经用if和else语句很好地解决了这个问题,但是我想在case开关上集中注意力。下面是我的代码,虽然我希望得到一些更好的建议,因为我无法想象这是一种正确的方法 animation.addEventListener(Event.ENTER_FRAME, videoFrames); function videoFrames(evt:Event):voi
animation.addEventListener(Event.ENTER_FRAME, videoFrames);
function videoFrames(evt:Event):void{
trace (evt.target.currentFrame)
switch (evt.target.currentFrame){
case 50:
if(evt.target.currentFrame <= 50){
content_txt.htmlText = content1Text;
}
break;
case 51:
if(evt.target.currentFrame >= 51){
content_txt.htmlText = content2Text;
}
break;
default:
//trace("");
break;
}
}
所以现在当动画低于50时,我得到content1Text,当它超过50时,我得到content2Text等等,从技术上来说这就是我想要的。我的问题是,有没有更好的方法
非常感谢 还有其他方法可以消除使用Event.ENTER_FRAME的需要,其中一种方法涉及一个名为addFrameScript的方法,该方法在MovieClip到达某一帧时运行一个函数@dst是正确的,因为当前实现在到达第50帧或第51帧之前不会执行任何操作。另外,如果不需要您的语句,则它们所说的内容与您的开关/机箱所说的内容相同。以下是使用addFrameScript执行此操作的一种方法: 此addFrameScript获取第51帧和动画的第一帧,并运行下面的toggleContentText函数:
function toggleContentText():void {
content_txt.htmlText = content_txt.htmlText == content1Text ? content2Text : content1Text;
}
此函数只检查内容文本设置为哪个字符串,并相应地进行切换。这与使用if/else语句相同。这真的有效吗?我认为除了50和51之外,它在所有帧上都不会起任何作用。当你按直线穿过你的框架时,这不会有任何区别。您的if声明基本上是无用的,因为它们已经包含在案例中。有关switch语句中的范围,请参见@dst you's right,它只在达到50和51时才执行任何操作。谢谢你的链接。
function toggleContentText():void {
content_txt.htmlText = content_txt.htmlText == content1Text ? content2Text : content1Text;
}