【问题标题】:AS2: Getting data from a dynamic text fieldAS2:从动态文本字段中获取数据
【发布时间】:2013-12-01 15:23:26
【问题描述】:

我正在尝试为我的学生做一个测验。我将通过投影仪使用它,学生们将举起他们的选择卡来回答问题。所以每一帧问题都有一个按钮,在学生后面显示正确答案。因此,我需要这些按钮从动态文本字段中的答案键中为剪辑的最后一帧中的每个答案获取正确答案。我尝试使用如下按钮操作定义实例名称并调用实例名称(q1、q2、q3 等):

if (q1.text == "A"){
   AnswerA.play();
}
if (q1.text == "B"){
   AnswerB.play();
}
if (q1.text == "C"){
   AnswerC.play();
}
if (q1.text == "D"){
   AnswerD.play();
}

永远不会显示正确答案。我也尝试以相同的方式使用文本字段的变量名,但它也不起作用。我无法从未访问的帧中获取值到时间线跨度动作层的第一帧。 我应该如何检索动态文本字段的数据以在 ActionScript 2 中使用它们?提前感谢您提供任何有用的想法。

【问题讨论】:

    标签: flash dynamic text actionscript-2 textfield


    【解决方案1】:

    您的问题是您尝试访问调用时不存在的对象。 Flash 中的时间轴框架结构用作您在可视界面中创建的对象的初始化器和析构器。 从程序执行的角度来看,您的 TextField 对象仅存在于您的最后一帧中。 所以你应该选择更高效的数据结构。 例如,它可能是Array。将代码放在第一帧中

    answersArray = ["A","B","C","D"];
    

    检查会是这样的

    if(answersArray[0]=="A"){
        AnswerA.play();
    }
    

    如果您确定需要动态文本字段而不是它们应该保留在所有帧中,但在屏幕之外的某个位置或 _alpha 设置为 0;

    如果问题在于访问 TF 中的文本,那么有两个属性负责此问题 - texthtmlText。 如果选中了 TF 属性中的 htmlText 复选框,请使用 htmlText 而不是 text

    【讨论】:

    • 感谢您的回答。我做了一些接近你建议的事情。正如您所提到的,我发现问题是由于它只能在进入该帧后才能加载变量。所以我在第一帧中定义了变量:var q1:String = "A"; var q2:String = "B"; var q2:String = "C"; ... 和一个switch 控制器,用于每个答案按钮检查答案。顺便说一句,我需要在剪辑的末尾有一个答案键来查看答案,所以我将每个问题的动态文本字段命名为 q1、q2、q3 等,以从第一帧中获取值。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2011-11-08
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    相关资源
    最近更新 更多