0

私は AIR を使用して BlackBerry PlayBook 用のアプリを開発しています。また、グラデーションのあるカスタム ボタンと、押されたときの別のグラデーションを作成する必要があります。テキストは、必要に応じて黒または白にする必要があります (アプリのさまざまな部分について私が決定しました)。

この種のボタンを実現する方法はありますか?

どんな助けでも大歓迎です!

4

3 に答える 3

1

良い...

  1. 描画 API を使用してボタンのグラデーションをプログラムで作成するか、各状態のビットマップを作成して埋め込むことができます。

  2. 次に、視覚的な変化を制御し、ボタンのカスタム イベントをディスパッチするマウス/タッチ イベントを持つ子として、グラデーション アセットと textField オブジェクトで構成されるカスタム ボタン クラスを作成できます。

  3. 最後に、カスタム ボタン イベントを作成できます。

于 2012-05-05T16:09:58.773 に答える
0

spark コンポーネントの buttons を使用している場合は、任意のスキン オブジェクトを渡すことができる SkinClass プロパティを使用する必要があります。このスキンでは、 up 、 down 、 over 、 disabled などの状態を設定できます。

// スキン クラスを作成するコード

<?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">
<!-- host component -->
<fx:Metadata>
    [HostComponent("ImageButton")]
</fx:Metadata>

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

<!-- SkinParts
name=labelDisplay, type=spark.core.IDisplayText, required=false
name=iconDisplay, type=spark.primitives.BitmapImage, required=false
-->
<s:BitmapImage source="@Embed('add_audio.png')"       includeIn="disabled" />
<s:BitmapImage source="@Embed('add_audio.png')"       includeIn="up" />
<s:BitmapImage source="@Embed(add_audio_press.png')"  includeIn="over"/>
<s:BitmapImage source="@Embed('add_audio_press.png')" includeIn="down"/>

// カスタム ボタン クラスを作成します

package

{ import spark.components.Button;

public class ImageButton extends Button
{
    public function ImageButton()
    {
        super();
        this.buttonMode=true;
    }
}

}

この 2 つのクラスを次のように使用します。

<local:ImageButton x="2" y="43" skinClass="skins.audio.Cut" />
于 2012-08-01T04:27:30.973 に答える