2012-05-05 66 views
0

我正在使用AIR爲BlackBerry PlayBook開發應用程序,並且我需要使用漸變創建自定義按鈕,並在按下時使用不同的漸變。文本應根據需要爲黑色或白色(由我決定的應用程序的不同部分)。BlackBerry Air中的自定義按鈕?

那麼有什麼辦法可以實現這種按鈕?

任何幫助非常感謝!

+0

我不知道RIM收購了Adobe ?! :p – TheDarkIn1978

+0

@TheDarkIn 1978他們沒有,可以使用BB插件或RIM的WebWorks SDK在C/C++,Adobe Flash Builder中開發PlayBook應用程序。 – Roshnal

+0

@Roshnal不完全熟悉Playbook AIR SDK。你使用Flex嗎? – francis

回答

1

好...

  1. 你可以編程創建繪圖API按鈕漸變或創建和每個狀態嵌入位圖。

  2. 然後,您可以使用鼠標/觸摸事件創建一個由梯度資產和textField對象組成的自定義按鈕類,以控制視覺更改並分派按鈕自定義事件。

  3. 最後,您可以創建自定義按鈕事件。

+0

你能給我一個最簡單的方法的代碼示例?對不起,我完全不熟悉AIR中的BB開發。 – Roshnal

+0

這不是特定於PlayBook上的開發。它是基本的ActionScript編程。我建議你學習AS3。 – TheDarkIn1978

+0

我在考慮在PlayBook開發過程中逐漸學習AS3,並認爲它不會很難,因爲我已經有很多Java,Python和C++開發經驗。 – Roshnal

0

定製button skin,則需要使用skinClass屬性,在其中您可以通過任何的皮膚對象。在這個皮膚中,你可以設置狀態,如向上,向下,向上,禁用。

//代碼來創建一個皮膚類

<?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 

{ 進口spark.components.Button;

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

}

使用這兩個類是這樣的。

<local:ImageButton x="2" y="43" skinClass="skins.audio.Cut" />