访问另一个类中的变量?

访问另一个类中的变量?

问题描述:

首先我不懂班级,如何“打电话”或“发起”他们。我是阶级无知的。访问另一个类中的变量?

我有两个.fla文件。我的一个.fla文件包含15个以上的.as文件;我们将称这个XML编辑器。另一个.fla文件包含10个.as文件;我们将它称为接口。

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

登录后,xmleditor加载interface.swf。 interface.fla使用10个以上的.as文件。一个被称为nodeNames.as我需要一个if语句中nodeNames.as是这样的:

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吗?如果是这样,怎么样?

还是有更简单的方法来访问变量?

+0

为什么这么难完成? – Phil 2010-07-26 20:29:32

好吧,据我所知,你Login.as是一个类。然后,你必须访问Login.userType变量的方法有两种:如果你希望能够与 Login.userType称呼它,你需要它是静态在类

public static var userType:String 

它是那么接近使用Login.userType从您的应用程序的任何地方,只要您导入登录。

但是,在您的应用中使用太多静态变量通常被认为是不好的做法,尤其是来自不同的类。所以你可能需要有存储在一个变量的地方在你的应用程序登录的类的实例,以及任何你需要

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

但要知道,这样一来,每一个new Login()将携带它自己不同的用户类型,所以你会想将myLogin传递给任何需要它的对象。

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

玩得开心!

+0

根据我的Login.as文件,userType已经是一个公共静态变量。 Login.as通常被导入到我的xmleditor.fla中;但我需要在我的界面中使用该变量.fla 当我将Login.as导入到我的interface.fla中时,我得到各种编译错误...我假设因为Login.as所需的按钮只存在于xmleditor .fla而不是interface.fla,我需要访问Login.userType变量。 – Phil 2010-07-25 14:34:34

+0

从我的interface.swf我可以添加以下几行代码: trace(this.root.parent); //输出[object loader] \t \t \t \t \t trace(this.root.parent.parent); // [object xmleditor] – Phil 2010-07-25 15:15:27