繁体   English   中英

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

[英]Accessing a variable defined by a constructor function through another class

我有两个类,第一个叫CoreModus。 在CoreModus(这是一个非文档类)中,我使用构造函数CoreModus(modus);声明了一个名为modus的“全局”变量CoreModus(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;
        }
    }
}

第二个类称为动画,它是一个非文档类,我想访问变量modus,该变量在CoreModus构造函数中声明:ie CoreModus(“ non-linear”); 在这种情况下, 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();

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

PS我在CoreModus()中省略了一堆无关的代码; 构造函数。 为了CPU的缘故,我不希望每次都处理该代码。

要从您的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为单例并具有静态变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM