adobe flex 在给定父对象的情况下创建子对象

adobe flex create child object given a parent object

我有以下 2 个 classes

class A {
    var one:int;
}
class B extends A {
    var two:int;
}

我现在有一个 class A 的对象,但需要创建 class B 的对象并设置其他参数。

Flex 是否允许在给定父对象的情况下创建子对象?

注意:A 中有很多参数,所以我不想每个都单独复制。

Flex 确实允许多个构造函数,但它会采取复制构造函数中每个参数的形式。

public class B extends A {
    var two:int;

    public function B(instanceA:A) {
        this.one = instanceA.one;
        //etc
    }
}

另一种方法是使用 ObjectUtil:

public class B extends A {
    var two:int;

    public function B(instanceA:A) {
        var data = ObjectUtil.getClassInfo(instanceA);

        for each (var prop in data.properties) {
            this[prop] = instanceA[prop];
        }
    }
}

n.b。检查 getClassInfoexcludesoptions 参数——如果存在会导致问题以这种方式处理的属性,您需要确保将它们排除在外。