关于网友flex自定义组件问题的答复
留言内容: 是有关mxml的镶嵌(姑且这么称呼),我看到flex的例子里有一个flexstore,在flexstore.mxml里嵌入了Checkout.mxml、ProductDetail.mxml和CartView.mxml三个文件,我看了好几遍代码愣没发现有什么id或者文件名之类的东西可以作为嵌入的标志,只知道是在<mx:Canvas>里的,我照原样复制了代码,却不能达到同样的效果。
Checkout.mxml、ProductDetail.mxml和CartView.mxml是flex里的自定义组件,就自己定义功能特性的组件,相当于OO编程里的“类”设计,而把这三个组件嵌入在flexstore.mxml文件里相当于flexstore这个对象(即flexstore.mxml)使用了上面的三个组件类的对象实例,当然对象是在运行时刻生成的。
比如<mx:Canvas>使用的flex标准的Canvas类,其命名空间是mx,所以使用该类用<mx:Canvas>标记,如果有多个这类标记就可以使用id来区分引用。而自定义组件如Checkout.mxml,可以使用<Checkout/>标记,这个时候要注意要让flex运行库在运行时刻找到Checkout.mxml这个文件(或者类库,自定义组件可以是其它形式的.as,或者已经编译过的类库),可以把类库复制到flex的系统目录WEB-INF\flex\user_classes,或者与引用文件相同的目录(一般都这个方式),而且自定义组件(即自定义类)可以有命名空间,而<Checkout/>这个标记没有加命名空间,所以要在引用文件里加上命名空间路径,比如<mx:Application xmlns="*">,相当于import *;
上面的说法可能有点疑义,不知道是否可以满足你的要求!敬请留言,一并谢谢支持。
Checkout.mxml、ProductDetail.mxml和CartView.mxml是flex里的自定义组件,就自己定义功能特性的组件,相当于OO编程里的“类”设计,而把这三个组件嵌入在flexstore.mxml文件里相当于flexstore这个对象(即flexstore.mxml)使用了上面的三个组件类的对象实例,当然对象是在运行时刻生成的。
比如<mx:Canvas>使用的flex标准的Canvas类,其命名空间是mx,所以使用该类用<mx:Canvas>标记,如果有多个这类标记就可以使用id来区分引用。而自定义组件如Checkout.mxml,可以使用<Checkout/>标记,这个时候要注意要让flex运行库在运行时刻找到Checkout.mxml这个文件(或者类库,自定义组件可以是其它形式的.as,或者已经编译过的类库),可以把类库复制到flex的系统目录WEB-INF\flex\user_classes,或者与引用文件相同的目录(一般都这个方式),而且自定义组件(即自定义类)可以有命名空间,而<Checkout/>这个标记没有加命名空间,所以要在引用文件里加上命名空间路径,比如<mx:Application xmlns="*">,相当于import *;
上面的说法可能有点疑义,不知道是否可以满足你的要求!敬请留言,一并谢谢支持。