0

Flex で再利用可能なダイアログ ボックスを実装しようとして苦労しています。

すべてのダイアログ ボックスは同じサイズになり、背景にはアーティストが描いた画像が使用されます。

タイトルとコンテンツ用のスペースが必要です。

すべてのダイアログ ボックスで、タイトルには同じ埋め込みフォントが使用され、コンテンツには別の埋め込みフォントが使用されます。

何らかの理由で、Flex/MXML/Skins のやり方について理解できません。

これが私が達成しようとしているものの例です: http://i.imgur.com/NaXIOlY.jpg

背景画像、特定のフォントと位置のタイトル、およびコンテンツの場所。

明確化のために編集: 申し訳ありませんが、私の質問はより明確ではありませんでした。ポップアップとカスタム コンポーネントの作成方法は知っています。私が理解できないのは、さまざまな内容のさまざまなダイアログを作成する方法ですが、すべて同じ背景を共有し、タイトルの場所、ボタンの領域などがあります。ただし、各ダイアログのコードを複製する必要があり、何かを変更したい場合は、他のすべてのダイアログにコピーする必要があります。

4

2 に答える 2

1

あなたの質問は非常に一般的であるため、何をする必要があるかについての全体像を示すために、再開された回答を次に示します。1 つのmxmlコンポーネントを作成し、Adobe Flash Builderのデザイン ビューを使用してレイアウトを構築します。動的な値の[Bindable]変数を追加します。つまり、次のようになります。

<mx:Script>
        <![CDATA[
            [Bindable]
            public var title:String;

        ]]>
    </mx:Script>

    <mx:Label id="titleLbl" text="{title}"/>

ポップアップを表示するには、以下の AS コードを使用します。

var popup:YourMXML = YourMXML(PopUpManager.createPopUp(this,YourMXML,true));
popup.title = "Your title";
PopUpManager.centerPopUp(popup);
于 2013-05-08T02:03:30.487 に答える
0

以下は、カスタム ダイアログを作成するためのコードですtext。両方のラベルをバインド可能にして、それぞれのコンポーネントが作成されているかどうかを気にすることなく、タイトルとメッセージに文字列テキストを割り当てることができるようにしました。

実際に何が起こっているかを理解するには、データ バインディングBindable メタデータ タグの詳細をご覧ください。

CustomDialog.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" backgroundImage="@Embed('y3jqqq5x.jpg')" backgroundSize="100%">
<mx:Script>
    <![CDATA[

        [Bindable]private var _title:String;
        [Bindable]private var _message:String;

        public function set title(value:String):void
        {
            _title = value;

        }

        public function set message(value:String):void
        {
            _message = value;
        }

    ]]>
</mx:Script>

    <mx:Label id="lblTitle" horizontalCenter="0" y="10" text="{_title}" fontSize="30"/>
    <mx:Label id="lblMsg" width="250" height="160" horizontalCenter="0" y="100" text="{_message}" fontSize="14"/>
</mx:Canvas>

以下の関数を使用して、AS3 コードでカスタム ダイアログを次のような場所に作成します。

private function showAlert():void
        {
            var popup:CustomDialog = new CustomDialog();
            popup.title = "Title Goes Here";
            popup.message = "Content goes here."
            PopUpManager.addPopUp(popup, Application.application as DisplayObject, true);
            PopUpManager.centerPopUp(popup);
        }
于 2013-05-08T07:06:02.443 に答える