0

首先,我不了解课程,如何“调用”或“启动”它们。我是阶级无知。

我有两个 .fla 文件。我的 .fla 文件之一包含 15+ 个 .as 文件;我们称它为一个 XML 编辑器。另一个 .fla 文件由 10+ 个 .as 文件组成;我们称它为接口。

xmleditor.swf 加载 interface.swf。在 xmleditor.swf 中,将出现一个登录屏幕,最终用户以“用户”或“管理员”身份登录。“user”或“admin”存储在名为“userType”的公共变量中。userType 变量是在名为 Login.as 的众多 xmleditor.fla .as 文件之一中创建的。

登录后,xmleditor 会加载 interface.swf。interface.fla 使用 10+ .as 文件。一个叫做 nodeNames。因为我需要在 nodeNames 中使用 if 语句。因为它是这样的:

if (Login.userType == "user"){
     trace("do something");
}

我有以下 FlashVars.as 文件,但我不知道要使其工作的步骤是什么。

package extras.utils {
    import flash.display.Sprite;
    import flash.display.LoaderInfo;
    /* In AS3, we need to have a display object on the stage to access FlashVars
         * this class can be used once, and then referenced from anywhere as 
         * FlashVars.data.variableName
        */  
    public class FlashVars extends Sprite {
        public static var data:Object;

        public function FlashVars() { }

        public function load():void { //Only needs to be called once
            data = this.root.loaderInfo.parameters;
        }       

    }
}

我应该使用这个 FlashVars 吗?如果是这样,如何?

或者有没有更简单的方法来访问变量?

4

1 回答 1

0

好吧,据我了解,您 Login.as 是一个类。然后你有两种访问 Login.userType 变量的方法:如果你想能够调用它 Login.userType,你需要它在你的类中是静态的

public static var userType:String

然后Login.userType,只要您导入 Login,就可以从应用程序中的任何位置访问它。

但是,在您的应用程序中拥有太多静态变量通常被认为是不好的做法,尤其是来自不同类的变量。因此,您可能希望将登录类的实例以及您需要的任何内容存储在应用程序某处的变量中

var myLogin = new Login();
myLogin.userType = 'value';

但请注意,这样每个new Login()人都会携带自己不同的 userType,因此您需要将 myLogin 传递给任何需要它的对象。

对象编程可能会令人困惑,但非常强大,我建议您阅读它(在书籍或网络上),因为这里无法解释整个事情。

玩得开心!

于 2010-07-25T10:24:52.713 回答