首页 > 解决方案 > ActionScript 3.0 - 文本字段的 Else If 条件

问题描述

我需要做一个 If/Else 条件。

我用 Adob​​e Flash 制作了一个表单,在第一页,我需要制作一个登录表单。我想做输入文字,但输入文字必须填写。如果输入文本为空,如果必须填写表格,我想发出警报。在我的想法中,我有一个名为nama.text的输入文本,在输入文本的底部,我放置了一个名为next.bt. 然后,我将动态文本“alert.text”放在按钮底部。

我的问题:

我想,如果用户按下带有填充输入文本的按钮,用户将直接进入下一帧。但是,如果输入文本为空,我想发出警报“必须填写 Nama”并让用户留在此页面中,并且在填写 Nama.text 之前无法转到下一帧。我对我的英语感到很抱歉,但我希望这里的每个人都能理解我的问题。

标签: if-statementflashactionscript

解决方案


“我想,如果用户按下的按钮带有填充的输入文本,用户将直接转到下一帧。但是,如果输入文本为空,我想发出警报“必须填写Nama”并让用户留下在此页面中,并且在Nama.text填充之前无法转到下一帧”

(1) 永远不要使用.例如:句号)作为变量名的一部分。句号对 AS3 编译器意味着其他的东西。通常它的意思是“属于这个变量的属性”。也许重命名为txt_Nama

(2) 您可以查看AS3 手册中的Textfield options。其中之一是名为 的属性 .length。这会告诉您文本字段中存在多少个字符。

因此,在您处理Next按钮按下的单击功能中:

if (txt_Nama.length <= 1) //if smaller or equal to 1
{
    //if Smaller-than or Equal-to 1 then not enough chars typed
    showTheAlert(); //tell AS3 to do this function
}
else
{
    //if larger than 1 then something was typed
    mc_Pages.gotoAndStop(2); //tells content MovieClip go to its frame 2
}

然后创建一个单独的函数来处理警报的显示(不要将此函数放在另一个函数中)

function showTheAlert() :void
{
    trace("No name was typed. Try again...");

    //# Do something here like make some "warning" MClip visible
    //maybe... mc_Alert.addChild;
    //or... mc_Alert.visible = true;
} 

(3) 我建议您创建一个 MovieClip 对象来保存您的内容或页面。MClip 有自己的时间线,并会转到自己的帧,如舞台。如果您告诉 Stage 移动到另一帧,那么您的代码可能无法正常工作

someMC.gotoAndStop(5); //# Correct... tells MovieClip to move frames. Code works because and MovieClip are on same Stage frame.

gotoAndStop(5); //# Wrong... tells Stage to move frames. Code only works on other frame where it is typed.

推荐阅读