0

这是一个脚本,它根据预定义的名称列表请求并验证用户名。

我从教程中复制了整个脚本,但结果什么都没有,我什至无法理解为什么没有错误!我通过首先复制脚本然后理解它来学习,但不幸的是结果是没有错误!我是编程新手,所以请尝试解释一下

第 1 帧中的脚本:

var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("")

一个名为 greeter 的动作脚本文件中的脚本:

package
{
public class Greeter
{
/**
* Defines the names that should receive a proper greeting.
*/
public static var validNames:Array = ["Sammy", "Frank", "Dean"];
/**
* Builds a greeting string using the given name.
*/
public function sayHello(userName:String = ""):String
{
var greeting:String;
if (userName == "")
{
greeting = "Hello. Please type your user name, and then press the Enter key.";
}
else if (validName(userName))
{
greeting = "Hello, " + userName + ".";
}
else
{
greeting = "Sorry, " + userName + ", you are not on the list.";
}
return greeting;
}
/**
* Checks whether a name is in the validNames list.
*/
public static function validName(inputName:String = ""):Boolean
{
if (validNames.indexOf(inputName) > -1)
{
return true;
}
else
{
return false;
}
}
}
}
4

1 回答 1

1

大概您正在参考 Adob​​e 的ActionScript 入门:创建基本应用程序

这个较旧的教程更适合 Flex 3,您将在其中实现前端演示以连接到Greeter类。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" 
    layout="vertical"
    creationComplete="initApp()">

    <mx:Script>
        <![CDATA[
            private var myGreeter:Greeter = new Greeter();

            public function initApp():void 
            {
                // says hello at the start, and asks for the user's name
                mainTxt.text = myGreeter.sayHello();
            }

        ]]>
    </mx:Script>

    <mx:TextArea id="mainTxt" width="400" backgroundColor="#DDDDDD" 
                 editable="false"/>

    <mx:HBox width="400">    
        <mx:Label text="User Name:"/>    
        <mx:TextInput id="userNameTxt" width="100%" 
                      enter="mainTxt.text=myGreeter.sayHello(userNameTxt.text);"/>
    </mx:HBox>

</mx:Application>

通过简单地粘贴Greeter该类,您将不会收到错误,因为该类的任何部分都没有执行。没有调用该类的任何内容。

这是一个相当糟糕的教程,再加上已经过时,建议在其他地方寻找教程和示例,例如:

于 2013-09-23T20:53:50.067 回答