通过另一个类访问由构造函数定义的变量

时间:2013-12-24 00:17:16

标签: actionscript-3 class variables flash-cs6

我有两个类,第一个叫做CoreModus。在CoreModus(这是一个非文档类)中,我使用构造函数CoreModus(modus);

声明一个名为modus的“全局”变量

CoreModus.as:

package myStudio.basic {
    public class CoreModus {
        public var modus:String;
        public function CoreModus(structure:String) {
            modus = structure;
        }
        public function setup():String {
            return modus;
        }
    }
}

第二个类叫做Animation,它是一个非文档类,我想访问变量modus,它在CoreModus构造函数中声明:即CoreModus(“非线性”);在这种情况下modus = non-linear

Animation.as:

package myStudio.basic {
    import fl.transitions.Tween
    public class Animation {
        public var anim:Tween;
        public function Animation() {}
        public function tryToRetrieveModus():void {
            var modo:CoreModus = new CoreModus();
            var modus:String = modo.getModus();
            trace("I'm trying to retrieve the modus " + modus);
        }
    }   
}

当然,因为CoreModus需要一个参数,我不能使用我在Animation.as中尝试的选项(制作CoreModus的实例)。

FLA文件,第1帧:

import myStudio.basic.CoreModus;
import myStudio.basic.Animation;

var modo:CoreModus = new CoreModus("non-linear");
var mov1:Animation = new Animation();

trace(modo.setup());
mov1.tryToRetrieveModus();

有没有其他方法可以访问此变量?

P.S。我在CoreModus()中省略了一堆不相关的行;构造函数。为了CPU,我不希望每次都处理这些代码。

1 个答案:

答案 0 :(得分:0)

要从CoreModus类实例访问变量,首先在某处创建类的实例。

然后,将实例引用传递给Animation类实例。之后,您可以随意使用CoreModus的公共变量。

以下是一个例子:

//creating the CoreModus class instance
var myCoreModus:CoreModus = new CoreModus("my string");

//creating the Animation class instance
var myAni:Animation = new Animation();
myAni.modo = myCoreModus; // make sure that modo is public instance variable

如果你只有一个CoreModus实例,你也可以让你的CoreModus成为单身,并拥有一个静态变量。