as3动态类在运行时转换

时间:2012-05-02 14:25:16

标签: actionscript-3 class dynamic runtime

这就是我得到的:

public var myDynamicClass:MovieClip;

我想在运行时将它转换为此类。

public class MyWishClass extends MovieClip{
    public var myId:String;
}

一个解决方案是做下一件事:

   myDynamicClass.myId = null as String;

问题在于我在下一行中变得虚假:

myDynamicClass instanceOf MyWishClass 

我该怎么办?

修改 基本上我在运行时更改动态类,通过添加属性,我想将它转换为已经获得这些属性的另一个类。

3 个答案:

答案 0 :(得分:1)

找到它,

答案是否定的:(这是不可能的......

我做的唯一工作就是创建新的MyWishClass并将myDynamicClass传递给他,所以他基本上是在扭曲他。

答案 1 :(得分:0)

不完全理解你的问题,但是......

你能不能这样做吗?

public var myDynamicClass:MyWishClass;
/* --- */
myDynamicClass = new MyWishClass();
myDynamicClass.myId = "some string";

答案 2 :(得分:0)

您正在将其键入为MovieClip,因此它将始终为MovieClip,除非您将其创建为MyWishClass或将其键入:

public class MyWishClass extends MovieClip{
    public var myId:String;
}

然后在其他地方:

public var myDynamicClass:MovieClip = new MyWishClass();

MyWishClass(myDynamicClass).myId = "test";

或者将其创建为:

public var myDynamicClass:MyWishClass = new MyWishClass();