Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Css 使用Flex4,如何制作我的外部主题,如何使用它?_Css_Apache Flex_Flex4_Themes - Fatal编程技术网

Css 使用Flex4,如何制作我的外部主题,如何使用它?

Css 使用Flex4,如何制作我的外部主题,如何使用它?,css,apache-flex,flex4,themes,Css,Apache Flex,Flex4,Themes,我制作了一个SWC项目(我的新主题),包含以下元素: src/views/MyViewSkin.mxml src/DefaultTheme.css 我制作了一个SWF项目(Flex应用程序),包含以下元素: src/views/MyView.as theme/DefaultTheme.swc//主题构建结果 在SWF项目中,我在mxmlc编译器中添加了以下信息:-theme-theme/DefaultTheme.swc 我的问题是:如何使用主机组件[xx]构建SWC项目(主题) MyVi

我制作了一个SWC项目(我的新主题),包含以下元素:

  • src/views/MyViewSkin.mxml
  • src/DefaultTheme.css
我制作了一个SWF项目(Flex应用程序),包含以下元素:

  • src/views/MyView.as
  • theme/DefaultTheme.swc//主题构建结果
在SWF项目中,我在mxmlc编译器中添加了以下信息:-theme-theme/DefaultTheme.swc

我的问题是:如何使用主机组件[xx]构建SWC项目(主题)

MyViewSkin:

<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx">
<!-- host component -->
<fx:Metadata>
    [HostComponent("view.MyView")] !!!!! This type is unknown by the compiler !!!!
</fx:Metadata>

<s:Label id="myLabel" fontSize="18" fontWeight="bold" color="#FF0000"/>

</s:Skin>

[HostComponent(“view.MyView”)!!!!!编译器未知此类型!!!!
你能帮我吗

多谢各位

问候


安东尼

我是这样解决的

所以我有我的主题:

SkinForX.mxml
然后我有了我的应用程序:

App.mxml
defaults.css
view
    ComponentX.mxml
在我的SkinForX.mxml中,我的HostComponent不是实际的组件,而是它所基于的Spark组件,在我的例子中,它是SkinnableComponent:

<fx:Metadata>
    [HostComponent("spark.components.supportClasses.SkinnableComponent")]
</fx:Metadata>
为了确保主题外观与您需要对ComponentX执行的任何操作兼容,您可以使用SkinPart表示法来指定特定类型的元素必须在外观中。例如:

[SkinPart(required="true")]
public var input:Label;
就这样。您仍然可以交换主题,只要主题的外观名称相同。否则,您必须交换CSS文件中的名称


这个解决方案没有能够将对象连接到主题中的皮肤那么干净,但我认为这无论如何都不可能。

嗨,迈克,是的,正确的元数据是views.MyView。但这不是我的问题所在。SWC项目中的主机组件未知(编译错误!)。所以,我的问题是:如何以最佳方式编写外部主题(SWC)?
[SkinPart(required="true")]
public var input:Label;