Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Switch语句和moviecsframe_Actionscript 3_Switch Statement - Fatal编程技术网

Actionscript 3 Switch语句和moviecsframe

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

我试图在as3中创建一个switch语句,它跟踪MovieClips currentFrame,并根据其到达的帧更改textFields内容

我想我已经用if和else语句很好地解决了这个问题,但是我想在case开关上集中注意力。下面是我的代码,虽然我希望得到一些更好的建议,因为我无法想象这是一种正确的方法

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;
}