2011-07-16 6 views
1

Flex 4.5では、ダウン状態で、colorizeExclusions配列(現在、ボタン上のテキストラベルとハイライトを保護しています)を無視する点を除いて、素晴らしい動作をしていると思われるMXMLスパークボタンスキンを作成しました。 の違いは、アップ状態とダウン状態の違いは、私がダウン状態で内側のドロップシャドウを適用していることです。フィルタは、Flex 4.5のスキンでcolorizeExclusionsをブレークしますか?もしそうなら、回避策がありますか?

StackOverflowのは、私は新しいユーザーだから、私は、画像を掲載させませんので、私はいくつかの他の場所で掲載しました:

Up State

up state

Down State

down state

ハイライトとテキストが青色でどのように色付けされているかを確認し、二番目の写真に?それはちょうど普通のが間違っているです。

この内側の影に状態制限を設定しないと、同じ問題が表示されます。私のcolorizeExclusionsは無視されるため、状態やその他の状態固有のCSSとは関係がないように見えます(isnとにかく、この場合、いずれか)。

は、ここでボタンのスキンのコードです:

<?xml version="1.0" encoding="utf-8"?> 
<s:SparkButtonSkin xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:fb="http://ns.adobe.com/flashbuilder/2009" 
       xmlns:fxg="assets.fxg.*" 
       minWidth="18" minHeight="18" 
       alpha.disabled="0.5"> 

<fx:Metadata> 
    <![CDATA[ 
    /** 
    * @copy spark.skins.spark.ApplicationSkin#hostComponent 
    */ 
    [HostComponent("spark.components.Button")] 
    ]]> 
</fx:Metadata> 

<fx:Script fb:purpose="styling"> 
    <![CDATA[   
     import spark.components.Group; 
     /* Define the skin elements that should not be colorized. 
     For button, the graphics are colorized but the label is not. */ 
     static private const exclusions:Array = ["labelDisplay", "highlight"]; 

     /** 
     * @private 
     */  
     override public function get colorizeExclusions():Array {return exclusions;} 

     /** 
     * @private 
     */ 
     override protected function initializationComplete():void 
     { 
      useChromeColor = true; 
      super.initializationComplete(); 
     } 


    ]]>   
</fx:Script> 

<!-- states --> 
<s:states> 
    <s:State name="up" /> 
    <s:State name="over" /> 
    <s:State name="down" /> 
    <s:State name="disabled" /> 
</s:states> 

<s:Group left="0" right="0" top="0" bottom="0"> 
    <!-- Background --> 
    <s:Group id="background" left="0" right="0" top="0" bottom="0"> 
     <fxg:GlassButtonBack excludeFrom="over" left="0" right="0" top="0" bottom="0"/> 
     <fxg:GlassButtonBackBright includeIn="over" left="0" right="0" top="0" bottom="0"/> 
    </s:Group> 


    <!-- layer 8: text --> 
    <!--- @copy spark.components.supportClasses.ButtonBase#labelDisplay --> 

    <s:Label id="labelDisplay" left="16" right="16" top="8" bottom="8" 
      fontWeight="bold" horizontalCenter="0" maxDisplayedLines="1" textAlign="center" 
      verticalAlign="middle" verticalCenter="1"/> 

    <s:Rect id="highlight" left="3" right="3" top="3" height="40%" radiusX="6" radiusY="6"> 
     <s:fill> 
      <s:LinearGradient rotation="90"> 
       <s:entries> 
        <s:GradientEntry ratio="0" alpha="0.9" color="#FFFFFF" /> 
        <s:GradientEntry ratio="1" alpha="0" color="#FFFFFF" /> 
       </s:entries> 
      </s:LinearGradient> 
     </s:fill> 
    </s:Rect> 
    <s:filters> 
     <s:DropShadowFilter includeIn="down" inner="true" color="#000000" blurX="10" blurY="10" angle="90"/> 

    </s:filters> 

</s:Group> 

誰もが地球上で何がここで起こっている任意のアイデアを持っていますか?これはフレックスバグですか?回避策はありますか?私は何か愚かなことをしましたか?私は本当に迷っています。簡単な概要で

答えて

0

static private const exclusions:Array = ["labelDisplay", "highlight"]; 

私は、それが静的であるべきだと思うの除去しようとすると何が起こるか見ていません。

+0

spark.skins.spark.ButtonSkinでは静的です。また、静的なものを削除しようとしましたが、ちょうどその問題を修正しませんでした。 – Tess

+0

問題はあなたの背景領域にあります。そのセクションを削除する/コメントすると、問題は私がテストできる限り遠ざかります。あなたはfxpを投稿できますか? – Nate

+0

申し訳ありませんが、fxgタグ – Nate

関連する問題