我想知道如何以及如何在AS2/3中动态扩展一个类。
喜欢的东西:是否可以在AS2/3中动态扩展?
public class Main extends getDefinitionByName("com.parent") as Class{...}
我知道这个代码是错误的,但只是告诉你什么是我需要的。也许与原型?
我想知道如何以及如何在AS2/3中动态扩展一个类。
喜欢的东西:是否可以在AS2/3中动态扩展?
public class Main extends getDefinitionByName("com.parent") as Class{...}
我知道这个代码是错误的,但只是告诉你什么是我需要的。也许与原型?
在AS2,很容易:
trace("creating mc0");
this.attachMovie("libraryItemLinkage", "mc0", 0);
MovieClipPlus = function(){
trace("hello world.");
};
MovieClipPlus.prototype = new MovieClip();
Object.registerClass("libraryItemLinkage", MovieClipPlus);
trace("creating mc1");
this.attachMovie("libraryItemLinkage", "mc1", 1);
对于AS3,它不是那么简单。事实上,它非常复杂(而且速度很慢),所以更容易想出另一种方法来完成你所尝试的。
但是,如果你仍然有时间和精力,请看flash.utils.Proxy课程,这会给你一些新的想法。
此外,检查这些:
介绍给代理:
http://ltslashgt.com/2008/01/24/proxy-class-as3/
动态代理的创建,以AS3公共字节码:
http://www.as3commons.org/as3-commons-bytecode/proxy.html
在我的情况下,“MovieClip”是一个外部类。当然,我可以用getDefinitionByName(“MovieClip”)加载它,但如果“MovieClip”有静态字段会发生什么? – user2054758 2014-12-06 18:05:09
能否请您描述场景这会有用吗?你会失去你所有的静态类型。 – Marty 2014-12-03 22:15:38
当一个项目被分割成大量的swf文件,并且你想在不增加项目大小的情况下使用共享库时 – user2054758 2014-12-03 22:38:41
如果你只是想跨文件共享资源,你可能想看看[运行时共享库](http:///stackoverflow.com/questions/2070244/runtime-shared-libraries)。 – blvz 2014-12-03 23:12:00