Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 皮肤部分的反面_Apache Flex_Flex4 - Fatal编程技术网

Apache flex 皮肤部分的反面

Apache flex 皮肤部分的反面,apache-flex,flex4,Apache Flex,Flex4,SkinParts是将事件处理程序和逻辑添加到皮肤中实例化的对象中的一种很好的方法,它远离了任何业务代码。但是,我经常发现自己想要做相反的事情,在父mxml文件中定义将在可重用、可蒙皮容器中使用的部分,这些文件将插入到蒙皮容器中 当您希望能够定义一个控件和一个可以在从外观外部插入不同控件的情况下重用的外观时,最佳做法是什么 编辑:一个更好的表达方式可能是,我想使用一个有点像SkinnableContainer的东西,但这并不局限于一个可以放置内容的区域。我发现你的问题有点不准确,所以我不完全确定

SkinParts是将事件处理程序和逻辑添加到皮肤中实例化的对象中的一种很好的方法,它远离了任何业务代码。但是,我经常发现自己想要做相反的事情,在父mxml文件中定义将在可重用、可蒙皮容器中使用的部分,这些文件将插入到蒙皮容器中

当您希望能够定义一个控件和一个可以在从外观外部插入不同控件的情况下重用的外观时,最佳做法是什么


编辑:一个更好的表达方式可能是,我想使用一个有点像SkinnableContainer的东西,但这并不局限于一个可以放置内容的区域。

我发现你的问题有点不准确,所以我不完全确定我是否理解你在寻找什么。但是,我要试着回答这个问题

SkinParts是添加活动的绝佳方式 对象的处理程序和逻辑 在皮肤中实例化,远离任何业务代码

我不会说SkinParts允许我们向对象添加事件处理程序或其他逻辑。尽管从开发的角度来看,似乎皮肤(扩展皮肤)和业务类(扩展SkinnableComponent)以及两个独立的实体;在运行时,它们实际上似乎被视为一个单独的实体

我没有深入研究实际的框架代码,但是从我收集的信息来看,皮肤是添加到stage的实际显示对象,并且您的业务类以某种方式被合并到其中。如果查看Flex Hero中引入的ActionScript外观,您会发现它们需要一个hostComponent属性,其类型应为业务类。我假设Flex编译器已经在Flex 4.0/4.1中使用HostComponent元数据在幕后完成了这项工作

然而,我经常发现自己想要 反其道而行之

什么的反面?如果您想将事件处理程序添加到皮肤内部的组件中,那么您没有理由不这样做,尽管Adobe在Spark体系结构中创建组件时并不是朝着这个方向推动的

如果您想创建自己的数据和功能的“离散包”,并且这些数据和功能可以很容易地重用,那么您可以这样做。任何Spark组件、Halo组件或非Flex ActionScript类都可以用来轻松地创建这些可重用对象,然后这些对象可以在另一个Spark或Halo组件中重用


我不完全确定这是否回答了这个问题。但是,如果您愿意详细说明,我们可以尽力帮助您。

我不知道您在做什么。。。有代码示例吗?