actionscript-3 - 将类作为构造函数的参数传递

标签 actionscript-3 class constructor arguments

我正在尝试将我的对象类作为构造函数参数传递。我有这样的东西:

package myclass {

import flash.display.MovieClip;
import flash.display.BitmapData;
import flash.display.Bitmap;

public class Example extends MovieClip {

    public var  _stageImg:Bitmap;
    public var  _stageData:BitmapData;
    public var  _stageClass:Class;

    private var _stage:Object;

    public function Example(stageClass:Class) {
        _stageClass = stageClass;

    }

    public function createStage():Object {
        _stageData      = new _stageClass(0,0);
        _stageImg       = new Bitmap(_stageData);
        _stage          = addChild(_stageImg);

        return _stage;
    }

}
}

现在,当我尝试创建示例时:

    import myclass.Example;
    var example:Example = new Example(myObjClass);

我收到消息,我没有传递任何变量(错误#1063)。这是为什么?这是什么问题?

最佳答案

您正在传递类的实例,而不是类本身的定义。

在 ActionScript 中,它有点笨拙,但您可以像这样获取实例的类定义:

//first get the fully qualified classname, i.e. including the package
var className:String = getQualifiedClassName(myObjInstance);
//then get the class definition for that name
var Klass:Class = getDefinitionByName(className) as Class;
//and finally pass it to your constructor
var example:Example = new Example(Klass);

(注意:我将变量命名为“Klass”,因为“Class”是保留关键字)

关于actionscript-3 - 将类作为构造函数的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7904072/

相关文章:

c++ - 什么时候应该使用友元类?

actionscript-3 - 从 AS2 到 AS3 _root 相当于什么?

actionscript-3 - AS3 : cast or "as"?

actionscript-3 - Actionscript 3 - 使用循环嵌入声音文件数组

c++ - 是否可以在一个对象中创建一个对象,该对象的构造函数是在 C++ 中从中创建它的对象

java - 将 XML 文件导入 Java 处理时出现 NullPointerException

actionscript-3 - 在 Spark (Flex) 中使选项卡闪烁

python - self 参数在功能上为什么不同?

javascript - TypeScript - 使用构造函数属性创建实例

c++ - 为什么我的类构造函数没有按预期工作?