0

フレックスモバイルアプリのステージに追加したボタンのセットがあります...「icon」パラメーターを使用してそれらのボタンに透明なPNGアイコンを設定していますが、の灰色のボックスを非表示にする方法があるかどうか疑問に思いました標準のボタン要素?ボタンがボタンに設定したアイコンとしてのみ表示されるようにするため...または、ボタンのスキンを作成してスタイルを作成するための唯一の方法です(まだ完全には把握していません)。

前もって感謝します。

4

1 に答える 1

3

これを行うには多くの方法があります。ButtonSkinFlextrasが言ったように、通常のSparkが描画するものをすべて削除することができます。ButtonSkinただし、クラスを見るBitmapImageと、ボタンがアイコンを表示するために使用するオブジェクトがないため、それほど単純ではありません。これBitmapImageは、実際にはButtonSkin(であるSparkButtonSkin)の基本クラスで定義されています。

幸いなことに、それを修正するのは簡単です。以下は、基本クラスを拡張し、BitmapImageを追加するスキンです。私がそれを追加し直す理由は

  • 基本クラスを単独で使用することはできません(必要な状態が定義されておらず、実行時にエラーがスローされます)
  • ボタンにインタラクティブ機能を追加することをお勧めします-マウスオーバー、マウスダウンなど。以下の簡単な例では、そのインタラクティブ機能はかなり安っぽいです。マウスオーバー、マウスで何が起こるかはあなたに任せます。ダウンなど...

伸びる肌SparkButtonSkin

<?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"
             minWidth="21" minHeight="21" 
             alpha.disabled="0.5">

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

    <s:BitmapImage id="iconDisplay" alpha=".75" alpha.over="1" alpha.down=".5" alpha.disabled=".25" />
</s:SparkButtonSkin>

これを回避するもう1つの方法は、ボタンをまったく使用しないことです。ボタンにBitmapImageオブジェクトを使用することで、単純なボタンとして動作するより軽量なバージョンを作成できます。インタラクティブ機能を追加する必要があります(マウスダウンに使用するアイコンを入れ替えるなど)。

<s:BitmapImage source="path/to/my/icon" click="clickHandler()" />
于 2013-03-08T03:58:07.980 に答える