我现在自己写了一个组件,命名为:ComSelUser.mxml, 现在我就想在我的一个弹出窗口里面动态显示,因为这个窗口可能显示的组件不确定,也有可能显示ComSelDep.mxml, 我能否根据组件名ComSelUser, ComSelDep把这个组件显示在VBox或Panle里面。
------解决方案--------------------
var cu:ComSelUser=new ComSelUser();
panle.addChild(cu);或者
vbox.addChild(cu);
------解决方案--------------------
------解决方案--------------------
做类型转换,以后就可以引用ComSelDep控件的属性了。
比如
var comObj:ComSelDep = this["ComSelDep"] as ComSelDep;
//去引用ComSelDep控件的属性,例如我的ComSelDep有如下字段<mx:TextInput id="txtInput" />我如何得到txtInput的text值
comObj.txtInput.text;
//加到VBox最后
vBox.addChild(comObj);
// 加到指定位置
vBox.addChildAt(comObj, index);
------解决方案--------------------
呵呵,看来咱们的有效沟通还是差啊。
你是不是想要类似java反射的效果?
知道class类名,获得他的实例比如下面的java代码:
Class clazz = Class.forName("xx.xx.ComSelDep");
clazz.newInstance();
类似这个的flex版本的代码?
------解决方案--------------------
flex的上述代码示例:
- JScript code
var cls:Class =getDefinitionByName("mx.controls::TextInput") as Class; var txtinput:TextInput =new cls() as TextInput; // 把上面的代码,改成自己的类的全路径 // var cls:Class =getDefinitionByName("com.xx.ComSelDep") as Class; // var txtinput:ComSelDep =new cls() as ComSelDep; txtinput.text='test'; co1.addChild(txtinput);
------解决方案--------------------
getDefinitionByName可以根据组件全路径生成CLASS,有了class后可以new这个class就是对象了,但这个方法之支持少数内部组件,很多组件或自定义组件,你必须要先“导入”那个类,不是import,简单的办法就是定义一个木偶变量;
例如你要生成一个ClassA,你需要先在组件里定义一个这样的变量:
private var classA:ClassA;这个classA可以不被任何东西赋值或调用都可以;
有了class后,new classA()就可以得到实例了;
------解决方案--------------------
或者做个工厂吧,去构造实例。
------解决方案--------------------
------解决方案--------------------