kyo_CHEN01 2019-05-15 21:55 采纳率: 0%
浏览 465

flash的as3.0在if语句中使用currentFrame判断却没有反应

主场景里的代码:

if(jk.currentFrame>=20)
{
    //gotoAndPlay("playtwo");
    j_txt.text=String(jk.currentFrame)
    jk.gotoAndPlay(1);
}

关于jk的影片剪辑时间轴:第20帧添加了stop()图片说明

我想在主场景里通过判断jk是否完全播放来控制播放"playtwo",但是我发现他实现不了,就试着添加一个动态文本和控制jk跳转到第一帧来实验是否是if语句出错,然后fa'x都没法实现,可是我又找不到if语句到底错在哪里,为何永远判断不了jk.currentFrame>=20

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-09 14:15
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    你提供的代码似乎没有问题。currentFrame属性用于获取当前帧的索引,而gotoAndPlay方法用于从当前帧开始播放下一个帧。

    如果在if条件语句中的jk.currentFrame >= 20后直接调用gotoAndPlay方法,那么它将播放下一个帧,而不是根据currentFrame的值来决定何时播放。

    如果你想要让程序根据currentFrame的值来确定何时播放playTwo,你需要先检查currentFrame是否大于等于20,并且只有当满足这个条件时,才调用gotoAndPlay方法。

    这是修改后的代码:

    if (jk.currentFrame >= 20) {
        gotoAndPlay("playTwo");
    } else {
        j_txt.text = String(jk.currentFrame); // 或者其他操作
        jk.gotoAndPlay(1);
    }
    

    请注意,这段代码仍然不会工作,因为它仍然会播放playTwo直到currentFrame小于或等于20。如果你想让它只播放到currentFrame等于20,你可以稍微修改一下逻辑:

    if (jk.currentFrame <= 20) {
        gotoAndPlay("playTwo"); // 这样可以确保播放到最后一帧
    } else {
        j_txt.text = String(jk.currentFrame); // 或者其他操作
        jk.gotoAndPlay(1);
    }
    

    这样,程序只会播放到currentFrame等于20,之后就会停止播放并跳转到下一帧。

    评论

报告相同问题?