使用我可以作为参数传递的背景填充颜色创建面板外观(Spark)

时间:2013-12-03 11:48:58

标签: actionscript-3 flex actionscript air

我正在尝试使用我可以作为参数传递的背景填充颜色创建一个Panel skin(Spark)。 (见粗体:)

<?xml version="1.0" encoding="utf-8"?>
<s:SparkSkin name="CustomPanelSkin"
               xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:fb="http://ns.adobe.com/flashbuilder/2009"
               blendMode="normal">

     <s:states>
         <s:State name="normal" />
         <s:State name="disabled" />
         <s:State name="normalWithControlBar" stateGroups="withControls" />
         <s:State name="disabledWithControlBar" stateGroups="withControls" />
     </s:states>

     <fx:Metadata> 
         [HostComponent("spark.components.Panel")]
     </fx:Metadata>

     <s:Group left="0" right="0" top="0" bottom="0">
         <s:Rect left="0" right="0" top="0" bottom="0" radiusX="12" radiusY="12">
               <s:fill>
                   <s:SolidColor color="#184c81" />
               </s:fill>
         </s:Rect>

         <s:Group id="contents" left="1" right="1" top="1" bottom="1">
               <s:layout>
                   <s:VerticalLayout gap="0" horizontalAlign="justify" />
               </s:layout>

               <s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0">
               </s:Group>
         </s:Group>
     </s:Group>
</s:SparkSkin>

根据我的阅读,我应该创建一个子类,但这个主题没有太多的材料。 我后来想在我的应用程序中使用的许多Panel控件中使用这个皮肤。

2 个答案:

答案 0 :(得分:0)

基本面板外观使用css样式实现背景颜色。您可以使用操作脚本进行设置:

panel.setStyle("backgroundColor", 0x184c81);


当您在主机组件中引用皮肤组件时,也可以控制皮肤组件。 阅读Implementing the partAdded() and partRemoved() methods for skinnable components for Spark components

答案 1 :(得分:0)

这很简单。创建一个面板外观并将其命名为“panelSkin.mxml”。在.as文件中使用以下语句

newPanelBlock.setStyle("skinClass",com.foldername.panelSkin);

newPanelBlock.setStyle(“backgroundColor”,0x184c81);