私は AIR を使用して BlackBerry PlayBook 用のアプリを開発しています。また、グラデーションのあるカスタム ボタンと、押されたときの別のグラデーションを作成する必要があります。テキストは、必要に応じて黒または白にする必要があります (アプリのさまざまな部分について私が決定しました)。
この種のボタンを実現する方法はありますか?
どんな助けでも大歓迎です!
私は AIR を使用して BlackBerry PlayBook 用のアプリを開発しています。また、グラデーションのあるカスタム ボタンと、押されたときの別のグラデーションを作成する必要があります。テキストは、必要に応じて黒または白にする必要があります (アプリのさまざまな部分について私が決定しました)。
この種のボタンを実現する方法はありますか?
どんな助けでも大歓迎です!
良い...
描画 API を使用してボタンのグラデーションをプログラムで作成するか、各状態のビットマップを作成して埋め込むことができます。
次に、視覚的な変化を制御し、ボタンのカスタム イベントをディスパッチするマウス/タッチ イベントを持つ子として、グラデーション アセットと textField オブジェクトで構成されるカスタム ボタン クラスを作成できます。
最後に、カスタム ボタン イベントを作成できます。
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" />