1

いくつか入力が必要です。Flash Builder 内にカスタム ボタンを実装するための最良の (まあ、推奨される) 方法は何でしょうか?

カスタム ボタンとは、たとえば 5 階建ての建物を (3D ビューで) 表示する必要があるということです。ユーザーは各フロアをクリックして、現在選択されているフロアを表示するようにメイン ビューを更新できます。

前の例では、画像の下に 1 つの非表示レイヤーを追加しただけで、各ボタン (各フロア) に 1 つの単色が含まれています。画像をクリックすると、選択されている色をチェックする関数がトリガーされ、必要なアクションがトリガーされます。

これを行うより良い方法はありますか?

たぶん、メイン アプリと通信してフロア切り替えコマンドを送信する外部 SWF をインポートしますか? (インポートされた外部 SWF からメイン アプリに通信する方法を知っているわけではなく、その逆のみです)。

どんな入力でも素晴らしいでしょう =)

ありがとう!

4

3 に答える 3

3

編集

あなたの質問の後、私はボタンがどんな形でもよいことを示すために何かを素早く作りました。フロアを選択可能にしたい場合は、おそらくToggleButtonではなく が必要なButtonので、例を少し作り直しました。結果はあなたが説明したものです

ここに画像の説明を入力

Flex 4.0 のスキニング機能を使用してみませんか? 独自のルック/フィールでボタン コンポーネントの動作 (および状態) を取得します。

<s:ToggleButton skinClass="FloorButton" y="0"  />
<s:ToggleButton skinClass="FloorButton" y="25" />
<s:ToggleButton skinClass="FloorButton" y="50" />

FloorButtonいくつかの画像を使用してボタン スキン ( ) を定義します。

<?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"
                   alpha.disabledStates="0.5">

    <fx:Metadata>
    <![CDATA[ 
        [HostComponent("spark.components.ToggleButton")]
    ]]>
    </fx:Metadata>

    <s:states>
        <s:State name="up" />
        <s:State name="over" stateGroups="overStates" />
        <s:State name="down" stateGroups="downStates" />
        <s:State name="disabled" stateGroups="disabledStates" />
        <s:State name="upAndSelected" stateGroups="selectedStates, selectedUpStates" />
        <s:State name="overAndSelected" stateGroups="overStates, selectedStates" />
        <s:State name="downAndSelected" stateGroups="downStates, selectedStates" />
        <s:State name="disabledAndSelected" stateGroups="selectedUpStates, disabledStates, selectedStates" />
    </s:states>

    <s:Path data="M 0 0 L 20 20 L 40 0 L 40 20 L 20 40 L 0 20">
        <s:fill>
            <s:SolidColor color="#AAAAAA" color.selectedStates="#000000" color.over="#777777" />
        </s:fill>
    </s:Path>

</s:SparkButtonSkin>

もちろん、パスを透明な PNG に置き換えて、同様の効果を得ることができます。

于 2012-05-21T12:43:38.310 に答える
0

Flex 4 でボタンのスキニングを行う方法に関するこのチュートリアルでは、プロセスを段階的に説明します。

Flex 4 では、簡単に実装できる3D 効果も有効になります (質問で言及しました)。

于 2012-05-21T13:22:57.683 に答える
0

フレックスを使用している場合、フレックスコンポーネントを使用してスキンを作成しないのはなぜですか?

于 2012-05-21T12:40:03.347 に答える