【问题标题】:Unable to stop at a specified frame in flash无法在 Flash 中的指定帧处停止
【发布时间】:2018-09-17 15:12:43
【问题描述】:

我在两个框架上有两张照片。有一个文本框,其中会有一些值,基于该值,单击按钮后将播放任何帧。但是无论每次播放第 3 帧时的值是多少。我无法在第 2 帧停止。

on(release){
    myNum=parseInt(textbox1.text);
if (myNum == 2) {
   gotoAndPlay(2);
}
stop();
}

我应该在这里停下来,因为我的情况在第 2 帧中

但它总是出现在第 3 帧中

【问题讨论】:

  • 输出 trace(textbox1);跟踪(文本框1.文本); trace(parseInt);myNum = parseInt(...) 之前我没有看到提供代码的问题,问题出在数据中。另外,请阅读调试是什么。
  • 请看我的文件。我添加了我的 .FLA 文件链接。这是我拼贴中的一个小项目。Flash file link download@Organis
  • 对不起,我不会。您需要学习如何自己解决这些问题,这就是调试。基本上,您将大量 trace(...) 放到有问题的地方,以找出哪些对象/数据不是您所期望的。

标签: flash actionscript-2 macromedia


【解决方案1】:

所以,调试。关键是要从字面上学习有关您正在处理的数据和对象的所有内容。沿着这些痕迹的某个地方,你会看到它不是你所期望的。下一步是找出原因。

稍作研究,您就会知道是什么导致您的脚本出现故障。可能是以下任何一种情况:

  • textbox1 不是 TextField 实例名而是文本变量名,AS1 里有这么奇怪的东西
  • 实例名称不是 textbox1,但可能是 TextBox1,您无法访问它,因为它区分大小写
  • textbox1.text 不可用,因为您不小心拥有具有相同实例名称的相同输入字段的两个副本
  • parseInt不是函数,我不记得AS1/2那么好,谁知道
  • parseInt 的结果不是你所期望的

所以:

on (release)
{
    // Check if button is working at all.
    trace("Release!");

    // Check if textbox1 is available.
    trace(textbox1);

    // Check text contents.
    trace("<" + textbox1.text + ">");

    // Check if parseInt is a valid function.
    trace(parseInt);

    myNum = parseInt(textbox1.text);

    // Check the result of parsing the text into integer.
    trace(myNum);

    // Check the condition.
    trace(myNum == 2);

    if (myNum == 2)
    {
        // Check if conditional clause works as expected.
        trace("Condition Worked!");

        gotoAndStop(2);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-08
    • 2013-07-19
    • 2016-01-03
    • 2013-08-07
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    相关资源
    最近更新 更多